Destinations - Grand Fiesta Americana
An error occurred while processing the template.
Template inclusion failed (for parameter value "/classic-theme_SERVLET_CONTEXT_/templates/utils/dictionary.ftl"):
Unable to find FreeMarker template with ID classic-theme_SERVLET_CONTEXT_/templates/utils/dictionary.ftl
----
FTL stack trace ("~" means nesting-related):
- Failed at: #include "${fullTemplatesPath}/utils/... [in template "20115#20151#DESTINATIONS-MODULE-TEMPLATE-1.0.0" at line 1, column 1]
---- 1<#include "${fullTemplatesPath}/utils/dictionary.ftl"> 2<#include "${fullTemplatesPath}/utils/api-destinations.ftl"> 3<#include "${fullTemplatesPath}/utils/media-links.ftl"> 4<#include "${fullTemplatesPath}/utils/json.ftl"> 5<#include "${fullTemplatesPath}/utils/url.ftl"> 6<#assign destinations = geDestinationsByBrand(BrandCode.getData()) > 7 8 9<#assign _BEACHES = {"es_ES": "Playas", "en_US": "Beaches"} > 10<#assign _BEACH = {"es_ES": "Playa", "en_US": "Beach"} > 11<#assign _CITIES = {"es_ES": "Ciudades", "en_US": "Cities"} > 12<#assign _CITY = {"es_ES": "Ciudad", "en_US": "City"} > 13<#assign _FARMS = {"es_ES": "Haciendas", "en_US": "Haciendas"} > 14 15<#assign tags = {} > 16<#list destinations as destination > 17 <#if destination.metaTags??> 18 <#list toArray(destination.metaTags) as tag> 19 <#if tag?is_string > 20 <#if tags[tag]??> 21 <#assign tags = tags + { tag: tags[tag] + [destination] } > 22 <#else> 23 <#assign tags = tags + { tag: [destination] } > 24 </#if> 25 </#if> 26 </#list> 27 </#if> 28</#list> 29 30<#assign cities = [] > 31<#assign beaches = [] > 32<#assign farms = [] > 33<#list destinations as destination > 34 <#if destination.metaTags??> 35 <#list toArray(destination.metaTags) as tag> 36 <#if tag?is_string > 37 <#if tag == _BEACHES[locale] > 38 <#assign beaches = beaches + [destination] > 39 </#if> 40 <#if tag == _CITIES[locale] > 41 <#assign cities = cities + [destination] > 42 </#if> 43 <#if tag == _FARMS[locale] > 44 <#assign farms = farms + [destination] > 45 </#if> 46 </#if> 47 </#list> 48 </#if> 49</#list> 50<#assign orderedDestinations = [ 51 { 52 "tag": _CITY[locale], 53 "destinations": cities 54 }, 55 { 56 "tag": _BEACH[locale], 57 "destinations": beaches 58 }, 59 { 60 "tag": "Hacienda", 61 "destinations": farms 62 } 63]> 64 65 66<!-- partial: component/block/destination-module/destination-module.hbs --> 67<div class="destination-module is-hidden" data-component="destination-module" data-scroll-component> 68 69 <!-- partial: component/block/destination-module/module/drag-hero/drag-hero.hbs --> 70 <section class="drag-hero is-hidden" data-component="drag-hero" data-scroll-component> 71 72 73 <#if (VideoFile.getData()?has_content) > 74 <div class="video-wrapper main-visual"> 75 <video autoplay loop muted src="${VideoFile.getData()}" class="visual"></video> 76 </div> 77 <#else> 78 <!-- partial: component/general/picture/picture.hbs --> 79 <picture class="main-visual" data-component="picture"> 80 <source media="(min-width: 1440px)" srcset="${Landing.MainVisual.getData()}"> 81 <img class="visual" src="${Landing.MainVisual.MainVisualSmall.getData()}" alt="${Landing.MainVisual.MainVisualAltText.getData()}"> 82 </picture> 83 <!-- / component/general/picture/picture.hbs --> 84 </#if> 85 <div class="drag-hero-wrapper" data-transition-item> 86 <div class="drag-hero-content"> 87 <div class="title-wrapper"> 88 <span class="sub-title" data-sub-title data-transition-item>${Landing.SubTitle.getData()}</span> 89 <h2 class="heading-2 title" data-main-title data-transition-item>${Landing.MainTitle.getData()}</h2> 90 </div> 91 <div class="drag-interaction" data-transition-item-w> 92 <div class="drag-wrapper" data-drag-wrapper> 93 <div class="drag-track"> 94 <span class="drag-knob" data-drag-knob> 95 96<!-- partial: component/general/icon/icon.hbs --> 97<span class="icon " data-component="icon" data-icon="drag-hero-knob"></span> 98 <!-- / component/general/icon/icon.hbs --> 99 </span> 100 <span class="drag-line" data-drag-line> 101 102<!-- partial: component/general/drag-line/drag-line.hbs --> 103<svg data-component="drag-line" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 230"> 104 <rect class="drag-line-part" x="74" y="228" width="1" height="2.5" /> 105 <rect class="drag-line-part" x="74" y="221" width="1" height="3" /> 106 <rect class="drag-line-part" x="74" y="214" width="1" height="3" /> 107 <rect class="drag-line-part" x="74" y="207" width="1" height="3" /> 108 <rect class="drag-line-part" x="74" y="200" width="1" height="3" /> 109 <rect class="drag-line-part" x="74" y="193" width="1" height="3" /> 110 <rect class="drag-line-part" x="74" y="186" width="1" height="3" /> 111 <rect class="drag-line-part" x="74" y="179" width="1" height="3" /> 112 <rect class="drag-line-part" x="74" y="172" width="1" height="3" /> 113 <rect class="drag-line-part" x="74" y="165" width="1" height="3" /> 114 <rect class="drag-line-part" x="74" y="158" width="1" height="3" /> 115 <rect class="drag-line-part" x="74" y="151" width="1" height="3" /> 116 <rect class="drag-line-part" x="74" y="144" width="1" height="3" /> 117 <rect class="drag-line-part" x="74" y="137" width="1" height="3" /> 118 <rect class="drag-line-part" x="74" y="130" width="1" height="3" /> 119 <rect class="drag-line-part" x="74" y="123" width="1" height="3" /> 120 <rect class="drag-line-part" x="74" y="116" width="1" height="3" /> 121 <rect class="drag-line-part" x="74" y="109" width="1" height="3" /> 122 <rect class="drag-line-part" x="74" y="102" width="1" height="3" /> 123 <rect class="drag-line-part" x="74" y="95" width="1" height="3" /> 124 <rect class="drag-line-part" x="74" y="88" width="1" height="3" /> 125 <rect class="drag-line-part" x="74" y="81" width="1" height="3" /> 126 <rect class="drag-line-part" x="74" y="74" width="1" height="3" /> 127</svg> 128 <!-- / component/general/drag-line/drag-line.hbs --> 129 </span> 130 <span class="drag-end" data-drag-end> 131 132<!-- partial: component/general/icon/icon.hbs --> 133<span class="icon " data-component="icon" data-icon="drag-hero-end"></span> 134 <!-- / component/general/icon/icon.hbs --> 135 </span> 136 </div> 137 </div> 138 <div class="drag-label" data-drag-label data-transition-item> 139 <span class="copy-label touch">${Landing.HelpText.getData()}</span> 140 <span class="copy-label no-touch">${Landing.HelpText.getData()}</span> 141 </div> 142 </div> 143 </div> 144 </div> 145 </section> 146 <!-- / component/block/destination-module/module/drag-hero/drag-hero.hbs --> 147 <div class="reveal-content-wrapper" data-reveal-content> 148 149 <!-- partial: component/block/destination-search/destination-search.hbs --> 150 <div class="destination-search is-hidden" data-component="destination-search" data-scroll-component > 151 <div class="tabs" data-tabs> 152 153 <!-- partial: component/block/sticky-tab-header/sticky-tab-header.hbs --> 154 <div class="sticky-tab-header is-hidden" data-component="sticky-tab-header" data-scroll-component> 155 <div class="content-wrapper"> 156 <div class="title-wrapper"> 157 <h3 class="title" data-title> 158 ${Tabs.Title.getData()} 159 </h3> 160 </div> 161 <div class="tabs-list-wrapper" data-tabs-header> 162 <div class="drag-wrapper" data-drag-wrapper> 163 <ul class="tabs-list" data-tabs-list> 164 <li class="tabs-item" data-tab-nav-item> 165 <span data-tab-label>${Tabs.TypeTabLabel.getData()}</span> 166 </li> 167 <li class="tabs-item" data-tab-nav-item> 168 <span data-tab-label>${Tabs.NameTabLabel.getData()}</span> 169 </li> 170 <!--<li class="tabs-item" data-tab-nav-item> 171 <span data-tab-label>${Tabs.LocationTabLabel.getData()}</span> 172 </li>--> 173 </ul> 174 <span class="underline" data-active-indicator></span> 175 </div> 176 </div> 177 </div> 178 </div> 179 <!-- / component/block/sticky-tab-header/sticky-tab-header.hbs --> 180 181 <div class="tab-content-container" data-tab-content-container> 182 <div class="tab-content bar" data-tab-content> 183 184 <!-- partial: component/block/holiday-type-carousels/holiday-type-carousels.hbs --> 185 <section class="holiday-type-carousels is-hidden" data-component="holiday-type-carousels" data-scroll-component> 186 <div class="content-spacing"> 187 188 189 <#list orderedDestinations as destinations> 190 <!-- partial: component/block/holiday-type-carousel/holiday-type-carousel.hbs --> 191 <section class="holiday-type-carousel is-hidden" data-component="holiday-type-carousel" data-scroll-component> 192 <div class="content-wrapper"> 193 <div class="carousel-title"> 194 ${destinations.tag} 195 </div> 196 </div> 197 198 <div class="carousel-container" data-transition-item> 199 <div class="content-wrapper"> 200 <div data-wrapper-wrapper> 201 202 <div class="carousel-wrapper" data-carousel-wrapper> 203 <div class="carousel" data-carousel> 204 <ul class="carousel-items-list"> 205 206 <#list destinations.destinations?sort_by("name") as destination> 207 208 <li class="carousel-item" data-carousel-item> 209 <div class="carousel-content"> 210 <a href="${getDestinationBaseUrl()}${destination.friendlyUrlDestination}"> 211 <img class="visual" src="${getDestinationPreviewImage(destination.mediaLinks)}" alt="${destination.name}"> 212 <div class="title-wrapper"> 213 <div class="title"> 214 ${destination.name} 215 </div> 216 </div> 217 </a> 218 </div> 219 </li> 220 221 </#list> 222 223 </ul> 224 </div> 225 </div> 226 </div> 227 </div> 228 229 <div class="carousel-control-wrapper"> 230 <button class="carousel-control-button previous" data-carousel-previous data-button> 231 <div class="icon-wrapper"> 232 233 <!-- partial: component/general/icon/icon.hbs --> 234 <span class="icon " data-component="icon" data-icon="chevron-right"></span> 235 <!-- / component/general/icon/icon.hbs --> 236 </div> 237 </button> 238 239 <button class="carousel-control-button next" data-carousel-next data-button> 240 <div class="icon-wrapper"> 241 242 <!-- partial: component/general/icon/icon.hbs --> 243 <span class="icon " data-component="icon" data-icon="chevron-right"></span> 244 <!-- / component/general/icon/icon.hbs --> 245 </div> 246 </button> 247 </div> 248 </div> 249 </section> 250 <!-- / component/block/holiday-type-carousel/holiday-type-carousel.hbs --> 251 </#list> 252 253 </div> 254 </section> 255 <!-- / component/block/holiday-type-carousels/holiday-type-carousels.hbs --> 256 </div> 257 258 <div class="tab-content" data-tab-content> 259 260 <!-- partial: component/block/filterable-list/filterable-list.hbs --> 261 <section class="filterable-list is-hidden" data-component="filterable-list" data-scroll-component> 262 <div class="content-wrapper"> 263 <form> 264 <input class="filter-input" type="text" placeholder="${NameTab.Placeholder.getData()}"> 265 </form> 266 <ul class="filter-list"> 267 268 <#list destinations?sort_by("name") as destination> 269 <li class="list-item"> 270 <a href="${getDestinationBaseUrl()}${destination.friendlyUrlDestination}" class="link"> 271 <div class="copy">${destination.name}</div> 272 <div class="icon-wrapper"> 273 <!-- partial: component/general/icon/icon.hbs --> 274 <span class="icon " data-component="icon" data-icon="chevron-right"></span> 275 <!-- / component/general/icon/icon.hbs --> 276 </div> 277 </a> 278 </li> 279 </#list> 280 281 </ul> 282 283 </div> 284 </section> 285 <!-- / component/block/filterable-list/filterable-list.hbs --> 286 </div> 287 288 289 </div> 290 </div> 291 </div> 292 <!-- / component/block/destination-search/destination-search.hbs --> 293 </div> 294</div> 295<!-- / component/block/destination-module/destination-module.hbs -->