Itinerary Templates define what text and images will be displayed in the itinerary as well as how it will be displayed in terms of things like font type, size, colors, etc… 

Each departure allows you to select a different Itinerary Template for each of the four different “versions” of the itinerary that you may require. Based on our research we have identified the following four versions:


  • Outline Itinerary:
    This is generally a very high-level itinerary that doesn’t include much in terms of descriptions or images. Its purpose is to provide the client or travel agent with a quick outline of an itinerary before time is spent on putting together a detailed quote. It may also be sent to a vendor as a basis for them to provide you with a quote for a collection of services.
  • Proposal Itinerary:
    This is your selling tool. It tells the client or agent what is or isn’t included, your terms and what is unique about your organization. This if often the most image rich of all the itinerary versions, but it may not, for example, include detail on where each meal will be.
  • Final Itinerary:
    This version provides the client with all the details they need prior to departing. For example, it may include the address and contact details for each hotel featured in the itinerary as well as notes about specific recommendations.
  • Operational Itinerary:
    This version is for the guide or guides and may include items that aren’t included in the client version and may include operational comments


Your system has four sample proposal itineraries pre-loaded that you can use for initial testing. Each is set up to illustrate a different concept of how the itinerary details are laid out, particularly as it relates to the use of images.

 


HTML (Hyper Text Markup Language) is the “language” used in creating Itinerary Templates. We chose HTML for three main reasons: (1) it provides a very wide range of control of look and feel, (2) it moves the system in the direction of being able to deliver an online/interactive itinerary with things like links to other websites and the ability to incorporate interactive maps, and (3) it is widely used and known which will allow your organizations to eventually manage and maintain your own itinerary templates.



Our sample templates make extensive use of CSS (Cascading Style Sheets) which allow you to quickly and easily change the style (font, font size, margins etc..) of different blocks in the itinerary by making the change in one place and having is “cascade” through the rest of the template. It is even possible to have the template reference an external CSS file that is hosted on your website giving even more centralized and direct control over styling across multiple templates. There are hundreds of great resources on the web for learning all the ins and outs of HTML and CSS, but www.HTMLhelp.com and www.w3schools.com/html/ are two very popular ones.



Adjusting Styling
One of the simple things that can be changed for you during the beta test is the styling that has been defined in the CSS of the template. The simplest way for PEAK 15 customers to play around with different styling options is to use the following procedure:
First, find the sample template that most closely resembles what you envision your itinerary being. Second, create at least one full departure with all the different types of costs that you typically work with and all the itinerary details. Using the sample template, preview that departure. From the preview page, right click and use the option to view the source code of the generated HMTL. Cut and paste that HTML into an HTML editor of your choice and then begin adjusting the CSS settings and use your HTML editor to preview what the result might look like. When you are satisfied with your CSS changes, send the updated CSS to PEAK 15 Support and ask them to create a new template with that CSS. If you choose, you can instead ask that the template is updated to reference an external CSS file, which will then allow you to make changes without needing PEAK 15 Support to make the change for you.



Adding Additional Fields
In addition to standard HTML, each Itinerary Template contains a number of different “placeholders” which are used by the template engine to determine what information to insert into the preview. Every placeholder must be designated by an opening curly brace “{“ and a closing curly brace “}”. There are X types of placeholders:


Simple placeholders represent specific fields in PEAK 15 and use the field name directly. Currently, you can use simple placeholders for any of the following record types:
 

  • Trip (p15_trips)
  • Departure (p15_tripdepartures)
  • Payment Schedule (p15_paymentschedules) – this will be the payment schedule linked to the departure
  • Costs (p15_costs)
  • Company (p15_company) – this is always the company linked to the vendor on the cost
  • Prices (p15_tripprices)


For example, if you wanted to include the Trip Type of the Trip as part of your introduction text you would use the placeholder

{p15_trips.p15_triptypeid}


Simple placeholders can also be used to include custom fields that have created for you on the support record types.



Complex placeholders don’t use the specific field name of a field in PEAK 15. In some cases, they are “shortcuts” to commonly used fields. For example, because almost every itinerary will include the trip name you can use the complex placeholder 

{tripname}

instead of having to use the simple placeholder 

{p15_tripdepartures.p15_tripid} or {p15_trips.p15_tripname}

In other cases, complex placeholders represent more than one field with special logic applied. For example, you can use the complex placeholder

{departuredates}

rather than the simple placeholders of 

{p15_tripdeparures.p15_startdate} and {p15_tripdepartures.p15_enddate}


Using the complex placeholder will return both the start date and end date and automatically condense the text returned if for example, the start dates and end dates are in the same month or the same year. If your start date were January 1st and end date January 10th, for example, it would return “January 1st – 10th 2013”.


NOTE: Please see the Appendix for a list of all currently supported complex placeholders


Section placeholders define the beginning or end of a section that will contain repeating data. The Itinerary System currently supports two types of repeating data – (1) costs, which are used to create the itinerary details and (2) prices, which are used to create the pricing details.
To denote the beginning of a section that should repeat for each day, use
 

{departureday.begin}

and then close it with 

{departureday.end}

 

Within the departure day section, you must also indicate where you want to include repeating information as a result of there being multiple costs on a single day using the 

{repeater.begin} and {repeater.end}

placeholders. Without these repeater placeholders, the system will only display the first cost in the day based on the earliest start time.

To denote the beginning of a section that will contain pricing information, use 

{pricing.begin} 

and then close it with 

{pricing.end}


Filtering placeholders define the subset of records that should be included within a section. For costs, filters are based on the Category Type attribute of the linked Cost Category. Those values are null (or a Blank selection), accommodations, activities, meals, transfers, and other. For example, to create a section that will only display information for Accommodation costs, you can use 

{accommodation.begin} and {accommodation.end}

To filter on multiple types you simply separate them with the “&” symbol such as 

{meals&activities&transfers.begin} and {meals&activities&transfers.end}


For prices, filters are based on the Sub Item Type attribute of the linked Price Category. Those values are null (or a Blank selection), addon, cancellationfee, discount, singlesupplement and other. For example, since “Standard” prices have a blank Sub Item Type, using:

{pricecategory.null.begin} and {pricecategory.null.end} 

would filter for only those prices. 


NOTE: Prices do not currently support filtering on multiple types the same way costs do.



An Example of Combining Placeholders
To illustrate how all these different types of placeholders work together please review the following HTML:



<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Your Title</title>
</head>
<body>
{departureday.begin} //denotes that what follows should be repeated for each day
<p>Day {day} : {destinations} ({meals})</p>
{meals&activities&transfers.begin} //denotes that what follows should only include costs with a Cost Category type of Meal or Activity or Transfer
{repeater.begin} //denotes that what follows should be repeated for each cost returned
<p>{p15_description1}</p> //because this already in a costs repeater section it is not necessary to specify p15_costs as the entity
{repeater.end} //ends the repeating of the cost information
{meals&activities&transfers.end} //ends the filter on costs
{departureday.end} //ends the section that repeats for each day
</body>
</html>


This template would result in a preview like this:



Date Formatting
If a simple or complex placeholder is date related, you can control the formatting of the date by appending any combination of following date formatting options after the placeholder:
Here is the key to the date formatting commands:



day of month, 1-31
dd day of month, 01-31
ddd abbreviated weekday ("Mon")
dddd full weekday (“Monday”)
M month, 1-12
MM month, 01-12
MMM abbreviated month (“Jan”)
MMMM full month (“January”)
yyear, 0-99
yy year, 00-99
yyyy year, 2013



For example, the complex placeholder 

{departuredates:MMMM d, yyyy}

 might return January 1st –10th, 2018 or January 30th – February 1st, 2018 or December 30th 2018 – January 1st, 2019.


Number Formatting
If a simple or complex placeholder is number related, you can control the formatting of the number by appending standard formatting options after the placeholder. 


Please visit the following resource for formatting options:


http://msdn.microsoft.com/en-us/library/241ad66z(v=vs.71).aspx


For example, if the number is a monetary value such as a price amount, the complex placeholder 

{amount:C}

would add the correct currency symbol and number of decimal places for that currency such as $100.00. On the other hand, you could also put the currency code in the template like USD 

{amount:D} 

which might return USD 100


Images
There are two ways to include images in your itineraries:

  • Static Images are images that are referenced directly in the HTML of your template using the standard HTML <img> tag. To work, the location of these images must be accessible on a public website.


NOTE: It is possible to control the sizing of static images in HTML using the height and width elements inside your img tag. However, when exporting to word your images will render in their full size, so we recommend sizing your images to the exact dimensions you want them to appear. This will also help keep the size of the PDF file to a minimum when exporting to send as an email attachment.


Dynamic Images are images that are loaded in PEAK 15 as files and related to your itinerary in some way. Currently, the system supports relating images based on the primary destination of the trip and by linking an image directly to a cost. The complex placeholder for the destination image is;

{destinationimage.file} 

In addition; 

{destinationimage.name} or {destinationimage.description} 

can be used to caption your images in your itinerary. For cost images, the placeholder is;

{image.file}

with name and description also available. You can also specify placement for a particular category type image by appending a category type such as:

{accommodation.image.file}


NOTE: In both cases, you must upload your image as a file in PEAK 15 not as a note as was done in the past.
With all types of images, you will want to standardize on image sizes in order to have greater predictability in the preview of the itinerary. Please see Appendix 4 for image sizing for best practices.



Pagebreaks

{pagebreak}

placeholder allows you to identify breaks when exporting to word or PDF. NOTE: If using HTML tables, you can only use pagebreaks outside of the table tags. For example, this won’t work:



<table>
<tr>
<td>
<h1 align="center">
{tripname}</h1>
</td>
</tr>
<tr>
<td>
<h2 align="center">
{departuredates:MMMM d, yyyy}</h2>
</td>
</tr>
<tr>
<td>
{destinationimage.file}
</td>
</tr>
{pagebreak} {departureday.begin}
<tr>
<td>
Day {day} : {date:dddd, MMMM d} - {destinations} - ({meals})
</td> ...


But this will:


<table>
<tr>
<td>
<h1 align="center">
{tripname}</h1>
</td>
</tr>
<tr>
<td>
<h2 align="center">
{departuredates:MMMM d, yyyy}</h2>
</td>
</tr>
<tr>
<td>
{destinationimage.file}
</td>
</tr>
</table>
{pagebreak} {departureday.begin}
<table>
<tr>
<td>
Day {day} : {date:dddd, MMMM d} - {destinations} - ({meals})
</td> ...