Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> Date [in template "1315478#1315513#2234713" at line 256, column 35]
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #if (Date.dataInizio?? && Date.dataIn... [in template "1315478#1315513#2234713" at line 256, column 29]
---- 1<#include "_TEMPLATE_CONTEXT_/1315478/1331017/23609/1656602"> 2 3<#assign 4 articleId = .vars['reserved-article-id'].data 5 territorioCategories = getContentVocabularyCategories(articleId, "TERRITORIO", groupId) 6 sliderCategories = [] 7 slides = 0 8 showMap = true 9 hasSlides = false 10 hasGallery = false 11 hasAllegati = false 12 lat = 0 13 lng = 0 14 15 groupedCategories = getNavCircCategories(articleId, groupId) 16/> 17 18<#if hideMap?? && hideMap.getData() == "true"> 19 <#assign showMap = false> 20</#if> 21 22<#list territorioCategories as tCat> 23 <#if tCat.parentCategoryId != 0> 24 <#assign sliderCategories += [tCat.name]> 25 </#if> 26</#list> 27 28<#if geoRef?? && geoRef.getData()?has_content> 29 <#assign 30 geolocationJSONObject = jsonFactoryUtil.createJSONObject(geoRef.getData()) 31 lat = geolocationJSONObject.getDouble("latitude") 32 lng = geolocationJSONObject.getDouble("longitude") 33 /> 34</#if> 35 36<#if coordinateTestuali.getData()?has_content> 37 <#assign 38 lat = coordinateTestuali.getData()?keep_before(",")?number 39 lng = coordinateTestuali.getData()?keep_after(",")?number 40 /> 41</#if> 42 43<#list contacts.allegati.getSiblings() as a> 44 <#if a.allegato.getData()?has_content> 45 <#assign hasAllegati = true> 46 <#break> 47 </#if> 48</#list> 49 50<#if slideHeader?? && slideHeader.getSiblings()?has_content> 51 <#list slideHeader.getSiblings() as slide> 52 <#if slide.getData()?has_content> 53 <#assign 54 hasSlides = true 55 slides = slideHeader.getSiblings()?size 56 /> 57 <#break> 58 </#if> 59 </#list> 60</#if> 61 62<#if ImmagineGallery?? && ImmagineGallery.getSiblings()?has_content> 63 <#list ImmagineGallery.getSiblings() as item> 64 <#if item.getData()?has_content> 65 <#assign hasGallery = true> 66 <#break> 67 </#if> 68 </#list> 69</#if> 70 71<style> 72 .tw-bg-light{ 73 background-color: #f8f8f8 !important; 74 } 75 .no-shadow{ 76 box-shadow: none; 77 } 78</style> 79 80<!-- Modello evento --> 81 82<#if hasSlides> 83 <#assign marginTop = ""> 84<#else> 85 <#assign marginTop = "tw:mt-70"> 86</#if> 87 88<div id="${portletNamespace}" class="${marginTop}" v-cloak> 89 <#if hasSlides> 90 <section id="slideshow" class="diagonal-divider tw:h-partial-screen"> 91 <div class="swiper-container tw:h-full"> 92 <div class="swiper-wrapper"> 93 <#list slideHeader.getSiblings() as slide> 94 <div class="swiper-slide"> 95 <img data-src="${getPrefix(slide.getData(), 1920, 730)}" loading="lazy" class="lazyload tw:object-cover tw:h-full tw:w-full" alt="${slide.getAttribute('alt')}"/> 96 <div class="card-img-overlay tw:bg-dark tw:bg-opacity-40"></div> 97 98 <div class="carousel-caption tw:flex tw:text-left tw:transform lg:tw:top-2/4 lg:tw:-translate-y-2/4"> 99 <#if testoHeader?? && testoHeader.getData()?has_content> 100 <#assign locationClass = "tw:my-auto"> 101 <#else> 102 <#assign locationClass = "tw:mt-auto tw:mb-20"> 103 </#if> 104 105 <div class="tw:flex tw:flex-col ${locationClass}"> 106 <div class="hcm-bg-capable tw:text-white tw:font-heading tw:uppercase tw:text-2xl tw:mr-auto tw:p-4 tw:rounded-md lg:tw:text-4xl"> 107 <#if testoHeader?? && testoHeader.getData()?has_content> 108 <p>${testoHeader.getData()}</p> 109 <div class="dropdown-divider tw:border-green tw:border-t-3 tw:w-3/5 tw:mt-5 tw:mr-auto lg:tw:w-1/5 lg:tw:mt-10"></div> 110 </#if> 111 </div> 112 <#if sliderCategories?has_content> 113 <#assign cleanedCategories = cleanCategories(sliderCategories)> 114 115 <div class="tw:flex tw:mt-7"> 116 <i class="fas fa-map-marker-alt fa-2x tw:text-white"></i> 117 <p class="tw:text-white tw:uppercase tw:font-heading tw:font-medium tw:my-auto tw:ml-3"> 118 ${cleanedCategories?join(", ")} 119 </p> 120 </div> 121 </#if> 122 </div> 123 </div> 124 </div> 125 </#list> 126 </div> 127 </div> 128 </section> 129 </#if> 130 131 <#if themeDisplay.getLayout().getAncestors()?has_content> 132 <section id="breadcrumb" class="tw:font-heading tw:text-base tw:mt-4 <lg:tw:hidden"> 133 <div class="container tw:flex tw:flex-row tw:justify-between"> 134 <ol class="breadcrumb tw-space-x-2"> 135 <li class="breadcrumb-item"> 136 <a href="/" class="breadcrumb-link" title="Home"> 137 <span class="breadcrumb-text-truncate tw:text-dark tw:uppercase">Home</span> 138 </a> 139 </li> 140 141 <#list themeDisplay.getLayout().getAncestors()?reverse as ancestor> 142 <li class="breadcrumb-item"> 143 <a href="${ancestor.getFriendlyURL()}" class="breadcrumb-link" title="${escape(ancestor.getHTMLTitle(themeDisplay.getLocale()))}"> 144 <span class="breadcrumb-text-truncate tw:text-dark tw:uppercase">${escape(ancestor.getHTMLTitle(themeDisplay.getLocale()))}</span> 145 </a> 146 </li> 147 </#list> 148 149 <li class="breadcrumb-item active"> 150 <span class="tw:text-green tw:uppercase" title="${title.getData()?js_string}"> 151 ${title.getData()} 152 </span> 153 </li> 154 </ol> 155 156 <div class="tw:flex tw:align-center"> 157 <button type="button" @click="isFavorite(item.id) ? removeFavorite(item) : setFavorite(item);" class="btn btn-link tw:no-underline" :title="isFavorite(item.id) ? `${getLabel('rimuovi_preferiti', groupId)}` : `${getLabel('aggiungi_preferiti', groupId)}`"> 158 <i :class="(isFavorite(item.id) ? 'fas' : 'fal') + ' fa-heart fa-2x tw:text-green'"></i> 159 </button> 160 161 <div class="btn dropdown tw:px-0"> 162 <button type="button" class="btn btn-link dropdown-toggle tw:no-underline tw:text-green" data-toggle="dropdown"> 163 <i class="fas fa-share-alt fa-2x"></i> 164 </button> 165 <div class="dropdown-menu dropdown-menu-center"> 166 <button type="button" @click="customShare('facebook', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 167 <i class="fab fa-facebook-f fa-lg tw:text-green"></i> 168 <span class="tw:text-dark"> 169 Facebook 170 </span> 171 </button> 172 173 <button type="button" @click="customShare('twitter', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 174 <i class="fab fa-twitter fa-lg tw:text-green"></i> 175 <span class="tw:text-dark"> 176 Twitter 177 </span> 178 </button> 179 180 <button type="button" @click="customShare('pinterest', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 181 <i class="fab fa-pinterest fa-lg tw:text-green"></i> 182 <span class="tw:text-dark"> 183 Pinterest 184 </span> 185 </button> 186 187 <button type="button" @click="customShare('whatsapp', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 188 <i class="fab fa-whatsapp fa-lg tw:text-green"></i> 189 <span class="tw:text-dark"> 190 WhatsApp 191 </span> 192 </button> 193 194 <button type="button" @click="customShare('telegram', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 195 <i class="fab fa-telegram fa-lg tw:text-green"></i> 196 <span class="tw:text-dark"> 197 Telegram 198 </span> 199 </button> 200 201 <button type="button" @click="customShare('print', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 202 <i class="fas fa-print fa-lg tw:text-green"></i> 203 <span class="tw:text-dark"> 204 Print 205 </span> 206 </button> 207 208 <a :href="'mailto:inserisci indirizzo email?subject=' + item.contentJSON.title + '&body=${currentUrl} ' + item.contentJSON.description" class="dropdown-item tw:space-x-2"> 209 <i class="fas fa-envelope fa-lg tw:text-green"></i> 210 <span class="tw:text-dark"> 211 Email 212 </span> 213 </a> 214 215 <button type="button" @click="customShare('link', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 216 <i class="fas fa-link fa-lg tw:text-green"></i> 217 <span class="tw:text-dark"> 218 Link 219 </span> 220 </button> 221 </div> 222 </div> 223 </div> 224 </div> 225 </section> 226 </#if> 227 228 <section id="intro-description" class="tw:font-text tw:mt-5"> 229 <div class="container tw:flex tw:flex-row tw:space-x-2 tw:justify-between tw:border-t-2 tw:border-gray-50"> 230 <div class="tw:mt-10"> 231 <#if title?? && title.getData()?has_content> 232 <p class="tw:text-green tw:font-heading tw:font-extrabold tw:text-2xl tw:uppercase lg:tw:text-4xl">${title.getData()}</p> 233 </#if> 234 235 <#if subTitle?? && subTitle.getData()?has_content> 236 <p class="tw:text-dark tw:font-heading tw:font-light tw:text-2xl tw:uppercase lg:tw:text-4xl"> 237 ${subTitle.getData()} 238 </p> 239 </#if> 240 </div> 241 <div class="tw:flex tw:mt-9 lg:tw:hidden"> 242 <button type="button" @click="isFavorite(item.id) ? removeFavorite(item) : setFavorite(item);" class="btn btn-link tw:no-underline" :title="isFavorite(item.id) ? `${getLabel('rimuovi_preferiti', groupId)}` : `${getLabel('aggiungi_preferiti', groupId)}`"> 243 <i :class="(isFavorite(item.id) ? 'fas' : 'fal') + ' fa-heart fa-lg tw:text-green'"></i> 244 </button> 245 <button type="button" @click="share(item.contentJSON.title, item.contentJSON.description)" class="btn btn-link tw:no-underline"> 246 <i class="fas fa-share-alt fa-lg tw:text-green"></i> 247 </button> 248 </div> 249 </div> 250 251 <div class="container tw:mt-10"> 252 <div class="row"> 253 <div class="col-12"> 254 <div class="sheet tw-bg-light p-3"> 255 <div class="card-row tw:flex-col lg:tw:flex-row lg:tw:space-x-4"> 256 <#if (Date.dataInizio?? && Date.dataInizio.getData()?has_content) || (Date.dataFine?? && Date.dataFine.getData()?has_content)> 257 <div class="autofit-col"> 258 <div class="autofit-section tw:flex tw:flex-col lg:tw:flex-row lg:tw:space-x-4"> 259 <p class="tw:text-dark tw:font-bold tw:font-heading tw:text-lg lg:tw:text-2xl tw:uppercase">${getLabel("periodo")}:</p> 260 <p class="tw:text-dark tw:text-lg tw:my-auto"> 261 <#assign separatore = ""> 262 <#assign startDate = ""> 263 264 <#if Date.dataInizio?? && Date.dataInizio.getData()?has_content> 265 <#assign startDate = Date.dataInizio.getData()> 266 <#assign separatore = " - "> 267 ${getContentDate(startDate, "dd MMMM yyyy")} 268 </#if> 269 270 <#if Date.dataFine?? && Date.dataFine.getData()?has_content> 271 <#assign endDate = Date.dataFine.getData()> 272 <#if startDate != endDate> 273 ${separatore}${getContentDate(endDate, "dd MMMM yyyy")} 274 </#if> 275 </#if> 276 </p> 277 </div> 278 </div> 279 </#if> 280 281 <#if indirizzoEvento?? && indirizzoEvento.getData()?has_content> 282 <div class="autofit-col"> 283 <div class="autofit-section tw:flex tw:flex-col lg:tw:flex-row lg:tw:space-x-4"> 284 <p class="tw:text-dark tw:font-bold tw:font-heading tw:text-lg lg:tw:text-2xl tw:uppercase">${getLabel("località")}:</p> 285 <p class="tw:text-dark tw:text-lg tw:my-auto">${indirizzoEvento.getData()}</p> 286 </div> 287 </div> 288 </#if> 289 290 <div class="autofit-col autofit-col-expand"> 291 <div class="autofit-section tw:flex tw:mt-5 lg:tw:mt-0"> 292 <a href="#contact-form" class="smooth-scroll btn btn-link tw:bg-green tw:text-white tw:uppercase tw:font-bold tw:font-heading tw:rounded-md tw:py-3 tw:px-5 tw:mx-auto lg:tw:ml-auto"> 293 ${getLabel("richiedi_info")}: 294 </a> 295 </div> 296 </div> 297 </div> 298 </div> 299 </div> 300 301 <div class="col-12"> 302 <#if introDescription?? && introDescription.getData()?has_content> 303 <div class="tw:text-dark tw:font-light tw:mt-14"> 304 ${introDescription.getData()} 305 </div> 306 </#if> 307 308 <#-- 309 <button type="button" class="btn btn-link tw:underline tw:text-dark tw:font-bold tw:italic tw:px-0 tw:mt-4">${getLabel("leggi-tutto")}</button> 310 --> 311 </div> 312 </div> 313 </div> 314 </section> 315 316 <#if hasGallery> 317 <section id="gallery"> 318 <div class="container"> 319 <div class="swiper-container tw:pt-10"> 320 <#if (ImmagineGallery.getSiblings()?size > 1)> 321 <div class="swiper-button-prev tw:w-12 tw:h-12"> 322 <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 323 <span class="sticker-overlay"> 324 <i class="fas fa-chevron-left fa-2x text-white"></i> 325 </span> 326 </span> 327 </div> 328 <div class="swiper-button-next tw:w-12 tw:h-12"> 329 <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 330 <span class="sticker-overlay"> 331 <i class="fas fa-chevron-right fa-2x text-white"></i> 332 </span> 333 </span> 334 </div> 335 </#if> 336 337 <div class="swiper-wrapper"> 338 <#list ImmagineGallery.getSiblings() as pic> 339 <div class="swiper-slide"> 340 <a href="javascript:void(0);" class="card no-shadow tw:no-underline mb-0" data-toggle="modal" data-target="#lightbox-modal" data-slider="${pic?index}"> 341 <div class="aspect-ratio aspect-ratio-4-to-3 tw:rounded-md tw:shadow-2xl"> 342 <img data-src="${getPrefix(pic.getData(), 900, 675)}" loading="lazy" class="lazyload aspect-ratio-item-fluid tw:object-cover tw:w-full tw:h-full" alt="${pic.getAttribute('alt')!''}" /> 343 </div> 344 345 <#if pic.getAttribute("alt")?has_content> 346 <div class="card-body bg-transparent px-0 pb-0"> 347 <p class="text-dark small mb-0"> 348 ${pic.getAttribute('alt')!''} 349 </p> 350 </div> 351 </#if> 352 </a> 353 </div> 354 </#list> 355 </div> 356 </div> 357 </div> 358 </section> 359 360 <div id="lightbox-modal" tabindex="-1" role="dialog" class="modal fade"> 361 <div class="modal-dialog modal-full-screen tw:inset-0 tw:border-none tw:shadow-none"> 362 <div class="modal-content tw:bg-transparent"> 363 <div class="modal-body tw:overflow-hidden"> 364 <div class="tw:absolute tw:top-0 tw:right-0 tw:z-5"> 365 <button type="button" data-dismiss="modal" class="btn btn-monospaced btn-secondary m-3"> 366 <i class="fal fa-times fa-lg"></i> 367 </button> 368 </div> 369 370 <#-- lightbox --> 371 <div id="lightbox-swiper" class="swiper-container h-75 my-auto"> 372 <div class="swiper-button-prev tw:w-12 tw:h-12"> 373 <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 374 <span class="sticker-overlay"> 375 <i class="fas fa-chevron-left fa-2x tw:text-white"></i> 376 </span> 377 </span> 378 </div> 379 380 <div class="swiper-button-next tw:w-12 tw:h-12"> 381 <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 382 <span class="sticker-overlay"> 383 <i class="fas fa-chevron-right fa-2x tw:text-white"></i> 384 </span> 385 </span> 386 </div> 387 388 <div class="swiper-wrapper tw:h-full"> 389 <#list ImmagineGallery.getSiblings() as pic> 390 <div class="swiper-slide tw:h-full"> 391 <img data-src="${getPrefix(pic.getData(), 1920, '')}" loading="lazy" class="lazyload tw:h-full tw:object-contain tw:mx-auto" alt="${pic.getAttribute('alt')!''}"> 392 </div> 393 </#list> 394 </div> 395 </div> 396 397 <#-- thumbnails --> 398 <div id="thumbnail-swiper" class="swiper-container" thumbsSlider=""> 399 <div class="swiper-wrapper"> 400 <#list ImmagineGallery.getSiblings() as pic> 401 <div class="swiper-slide"> 402 <img data-src="${getPrefix(pic.getData(), 300, '')}" loading="lazy" class="lazyload tw:object-cover tw:cursor-pointer tw:h-full tw:w-full" alt="${pic.getAttribute('alt')!''}"> 403 </div> 404 </#list> 405 </div> 406 </div> 407 </div> 408 </div> 409 </div> 410 </div> 411 </#if> 412 413 <section id="${portletNamespace}" class="tw:font-text tw:mt-20"> 414 <#if showMap> 415 <div class="container"> 416 <div class="tw:mt-10"> 417 <p class="tw:inline tw:align-middle tw:text-dark tw:font-heading tw:font-light tw:text-2xl tw:uppercase lg:tw:text-4xl"> 418 ${getLabel("dove_si_svolge_evento1")} 419 <span class="tw:text-dark tw:font-heading tw:font-extrabold tw:text-2xl tw:uppercase lg:tw:text-4xl">${getLabel("dove_si_svolge_evento2")}</span> 420 </p> 421 </div> 422 </div> 423 424 <div class="container tw:mt-10 tw:rounded-md"> 425 <div id="suggesto-map" class="monochrome-map" style="height: 400px;"></div> 426 </div> 427 </#if> 428 429 <#if description?? && description.getData()?has_content> 430 <div class="container tw:mt-20"> 431 <div class="sheet tw-bg-light tw:space-y-4 p-3"> 432 <div class="card tw:bg-transparent tw:border-0 tw:shadow-none tw:my-5"> 433 <div class="card-body"> 434 <div class="tw:text-dark tw:text-lg tw:font-light"> 435 ${description.getData()} 436 </div> 437 </div> 438 </div> 439 </div> 440 </div> 441 </#if> 442 443 <#if hasAllegati> 444 <div class="container tw:mt-20"> 445 <div class="sheet tw-bg-light tw:space-y-4 p-3"> 446 <#list contacts.allegati.getSiblings() as item> 447 <div class="card tw:bg-transparent tw:border-0 tw:shadow-none tw:my-5"> 448 <div class="card-row"> 449 <div class="autofit-col"> 450 <div class="autofit-section"> 451 <i class="fas fa-download fa-lg tw:text-dark"></i> 452 </div> 453 </div> 454 <div class="autofit-col autofit-col-expand autofit-col-gutters"> 455 <div class="autofit-section"> 456 <a href="${item.getData()}" class="tw:text-dark tw:underline" download> 457 ${item.etichettaAllegato.getData()} 458 </a> 459 </div> 460 </div> 461 </div> 462 </div> 463 </#list> 464 </div> 465 </div> 466 </#if> 467 468 <div class="container tw:mt-20"> 469 <p class="tw:text-dark tw:font-bold tw:text-lg">${getLabel("informazioni")}:</p> 470 <#if contacts.contactName?? && contacts.contactName.getData()?has_content> 471 <p class="tw:text-dark tw:font-light tw:text-lg"> 472 ${contacts.contactName.getData()} 473 </p> 474 </#if> 475 476 <@indirizzo/> 477 478 <#if contacts.tel?? && contacts.tel.getSiblings()?has_content> 479 <#list contacts.tel.getSiblings() as phone> 480 <#if phone.getData()?has_content> 481 <p class="tw:text-dark tw:font-light tw:text-lg tw:mt-5"> 482 <a href="tel:${phone.getData()}" class="tw:text-dark tw:underline">${phone.getData()}</a> 483 </p> 484 </#if> 485 </#list> 486 </#if> 487 488 <#if contacts.email?? && contacts.email.getData()?has_content> 489 <p class="tw:text-dark tw:font-light tw:text-lg tw:mt-5"> 490 <a href="mailto:${contacts.email.getData()}" class="tw:text-dark tw:underline" target="_blank">${contacts.email.getData()}</a> 491 </p> 492 </#if> 493 <#if contacts.email2?? && contacts.email2.getData()?has_content> 494 <p class="tw:text-dark tw:font-light tw:text-lg tw:mt-5"> 495 <a href="mailto:${contacts.email2.getData()}" class="tw:text-dark tw:underline" target="_blank">${contacts.email2.getData()}</a> 496 </p> 497 </#if> 498 499 <#if contacts.webSite?? && contacts.webSite.getData()?has_content> 500 <p class="tw:text-dark tw:font-light tw:text-lg tw:mt-5"> 501 <a href="${contacts.webSite.getData()}" class="tw:text-dark tw:underline" target="_blank">${contacts.webSite.getData()}</a> 502 </p> 503 </#if> 504 505 <#if contacts.facebook?? && contacts.facebook.getData()?has_content> 506 <a href="${contacts.facebook.getData()}" class="btn btn-monospaced tw:bg-green tw:rounded-md tw:w-8 tw:h-8 tw:text-white tw:no-underline tw:mt-5" target="_blank"> 507 <i class="fab fa-facebook-f fa-lg"></i> 508 </a> 509 </#if> 510 511 <#if contacts.instagram?? && contacts.instagram.getData()?has_content> 512 <a href="${contacts.instagram.getData()}" class="btn btn-monospaced tw:bg-green tw:rounded-md tw:w-8 tw:h-8 tw:text-white tw:no-underline tw:mt-5" target="_blank"> 513 <i class="fab fa-instagram fa-lg"></i> 514 </a> 515 </#if> 516 517 <#if contacts.altreInfo?? && contacts.altreInfo.getData()?has_content> 518 <div class="tw:text-dark tw:font-light tw:text-lg mt-5"> 519 ${contacts.altreInfo.getData()} 520 </div> 521 </#if> 522 </div> 523 524 <#-- OLD CONTACTS 525 <div class="container tw:mt-20"> 526 <p class="tw:text-dark tw:font-bold tw:text-lg">${getLabel("informazioni")}:</p> 527 <#if contacts.contactName?? && contacts.contactName.getData()?has_content> 528 <p class="tw:text-dark tw:font-light tw:text-lg"> 529 ${contacts.contactName.getData()} 530 </p> 531 </#if> 532 533 <#if contacts.email?? && contacts.email.getData()?has_content> 534 <p class="tw:text-dark tw:font-light tw:text-lg tw:mt-5"> 535 <a href="mailto:${contacts.email.getData()}" class="tw:text-dark tw:underline">${contacts.email.getData()}</a> 536 </p> 537 </#if> 538 539 <#if contacts.tel?? && contacts.tel.getSiblings()?has_content> 540 <#list contacts.tel.getSiblings() as phone> 541 <#if phone.getData()?has_content> 542 <p class="tw:text-dark tw:font-light tw:text-lg tw:mt-5"> 543 <a href="tel:${phone.getData()}" class="tw:text-dark tw:underline">${phone.getData()}</a> 544 </p> 545 </#if> 546 </#list> 547 </#if> 548 549 <#if contacts.webSite?? && contacts.webSite.getData()?has_content> 550 <p class="tw:text-dark tw:font-light tw:text-lg tw:mt-5"> 551 <a href="${contacts.webSite.getData()}" class="tw:text-dark tw:underline" target="_blank">${contacts.webSite.getData()}</a> 552 </p> 553 </#if> 554 555 <#if contacts.facebook?? && contacts.facebook.getData()?has_content> 556 <a href="${contacts.facebook.getData()}" class="btn btn-monospaced tw:bg-green tw:rounded-md tw:w-8 tw:h-8 tw:text-white tw:no-underline tw:mt-5" target="_blank"> 557 <i class="fab fa-facebook-f fa-lg"></i> 558 </a> 559 </#if> 560 561 <#if contacts.instagram?? && contacts.instagram.getData()?has_content> 562 <a href="${contacts.instagram.getData()}" class="btn btn-monospaced tw:bg-green tw:rounded-md tw:w-8 tw:h-8 tw:text-white tw:no-underline tw:mt-5" target="_blank"> 563 <i class="fab fa-instagram fa-lg"></i> 564 </a> 565 </#if> 566 </div> 567 --> 568 </section> 569 <#assign hasDownloads = false> 570 <#if downloads?? && downloads.getSiblings()?has_content> 571 <#list downloads.getSiblings() as item> 572 <#if item.downloadUrl.getData()?has_content> 573 <#assign hasDownloads = true> 574 575 <#break> 576 </#if> 577 </#list> 578 </#if> 579 580 581 <#if hasDownloads > 582 <section id="downloads" > 583 <div class="container tw:mt-20"> 584 <div class="sheet tw-bg-light tw:space-y-4 p-3"> 585 <#list downloads.getSiblings() as item> 586 <#-- #assign doc = getFileFromUuid(createObject(item.downloadUrl.data).uuid, groupId) --> 587 588 <div class="card tw:bg-transparent tw:border-0 tw:shadow-none"> 589 <div class="card-row"> 590 <div class="autofit-col"> 591 <div class="autofit-section"> 592 <i class="fal fa-file-pdf fa-lg tw:text-dark"></i> 593 </div> 594 </div> 595 <div class="autofit-col autofit-col-expand autofit-col-gutters"> 596 <div class="autofit-section"> 597 <a href="${item.downloadUrl.getData()}" class="tw:text-dark tw:font-bold" download> 598 <#-- ${doc.fileName} --> 599 ${item.downloadText.getData()} 600 601 <span class="tw:font-light muted tw:ml-2">(scarica qui)</span> 602 </a> 603 </div> 604 </div> 605 </div> 606 </div> 607 </#list> 608 </div> 609 </div> 610 </section> 611 </#if> 612 613</div> 614 615<#macro indirizzo> 616 <#assign 617 street_number1Sz="" 618 localitaSz="" 619 comuneSz="" 620 countrySz="" 621 zipCodeSz="" 622 thereAreAddress="false" 623 /> 624 625 <#if contacts.street_number1?? && contacts.street_number1.getData()?has_content> 626 <#assign street_number1Sz=contacts.street_number1.getData()> 627 <#assign thereAreAddress="true"> 628 </#if> 629 <#if contacts.localita?? && contacts.localita.getData()?has_content> 630 <#assign localitaSz=contacts.localita.getData()> 631 <#assign thereAreAddress="true"> 632 </#if> 633 <#if contacts.comune?? && contacts.comune.getData()?has_content> 634 <#assign comuneSz=contacts.comune.getData()> 635 <#assign thereAreAddress="true"> 636 </#if> 637 <#if contacts.country?? && contacts.country.getData()?has_content> 638 <#assign countrySz=contacts.country.getData()> 639 <#assign thereAreAddress="true"> 640 </#if> 641 <#if contacts.zipCode?? && contacts.zipCode.getData()?has_content> 642 <#assign zipCodeSz=contacts.zipCode.getData()> 643 <#assign thereAreAddress="true"> 644 </#if> 645 646 <#assign acapo="false"> 647 <#if thereAreAddress == "true"> 648 <p class="tw:text-dark tw:font-light tw:text-lg tw:mt-5"> 649 <#if street_number1Sz != ""> 650 <#if acapo == "true"><br/></#if> 651 ${street_number1Sz} 652 <#assign acapo="true"> 653 </#if> 654 <#if localitaSz != ""> 655 <#if acapo == "true"><br/></#if> 656 ${localitaSz} 657 <#assign acapo="true"> 658 </#if> 659 660 <#if zipCodeSz != "" || comuneSz != "" || countrySz != ""> 661 <#if acapo == "true"><br/></#if> 662 ${zipCodeSz} ${comuneSz} ${countrySz} 663 <#assign acapo="true"> 664 </#if> 665 </p> 666 </#if> 667 668 669</#macro> 670 671<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/components/securityV2.js"></script> 672 673<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/components/initVueApp.js"></script> 674<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/mixins/js/favorites.js"></script> 675<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/mixins/js/share.js"></script> 676 677<script> 678 var ${portletNamespace}_custom_hook = { 679 data: { 680 debugMode: true, 681 item: { 682 id: "${articleId}", 683 contentJSON: { 684 title: "${title.getData()?js_string}", 685 description: "${introDescription.getData()?js_string}", 686 geoRef: '${geoRef.getData()}', 687 previewPicture: "${previewPicture.getData()}", 688 viewUrl: window.location.href 689 } 690 }, 691 regionLat: "44.3921388", 692 regionLng: "7.5211695", 693 map: null, 694 slider: null, 695 gallery: null, 696 thumbnails: null, 697 lightbox: null, 698 docs: [], 699 }, 700 mounted(){ 701 var that = this; 702 703 if(${showMap?c}){ 704 this.buildMap(); 705 } 706 707 if(${hasSlides?c}){ 708 this.initSlider(); 709 } 710 711 if(${hasGallery?c}){ 712 this.initGallery(); 713 714 $("#lightbox-modal").on("shown.bs.modal", function(e){ 715 that.lightbox.update(); 716 that.thumbnails.update(); 717 that.lightbox.slideTo($(e.relatedTarget).data("slider")); 718 that.lightbox.update(); 719 }); 720 721 $("#lightbox-modal .swiper-wrapper").on("click", function(e){ 722 if($(e.target).attr("class").includes("swiper-slide")){ 723 $("#lightbox-modal").modal("hide"); 724 } 725 }); 726 } 727 }, 728 methods: { 729 buildMap: function(){ 730 var layers = [], 731 markers = [], 732 map = new SuggestoMap("suggesto-map"); 733 734 var marker = { 735 group: "1", 736 latlng: [parseFloat(${lat}), parseFloat(${lng})], 737 value: "", 738 type: "svgNumIcon", 739 size: "10", 740 color: "#7eba27", 741 html: "" 742 }; 743 744 markers.push(marker); 745 746 var mapData = { 747 tilelayer: "osm", 748 gestureHandling: true, 749 fitBounds: false, 750 mapcenter: [parseFloat(${lat}), parseFloat(${lng})], 751 zoom: 14, 752 markersFilter: "*", 753 markers: markers, 754 layers: layers 755 }; 756 757 console.log("mapData is: ", mapData); 758 759 map.sm.createMap(mapData); 760 761 this.map = map; 762 }, 763 initSlider: function(){ 764 this.slider = new Swiper("#slideshow .swiper-container", { 765 loop: ${(slides > 0)?c}, 766 effect: "fade", 767 speed: 3000, 768 allowTouchMove: false, 769 autoplay: { 770 delay: 3000, 771 disableOnInteraction: false, 772 }, 773 fadeEffect: { 774 crossFade: true, 775 }, 776 }); 777 }, 778 initGallery: function(){ 779 this.gallery = new Swiper("#gallery .swiper-container", { 780 slidesPerView: 1, 781 spaceBetween: 25, 782 centerSlides: true, 783 centerInsufficientSlides: true, 784 navigation: { 785 prevEl: ".btn-prev", 786 nextEl: ".btn-next", 787 }, 788 breakpoints: { 789 768: { 790 slidesPerView: 2, 791 spaceBetween: 25, 792 }, 793 992: { 794 slidesPerView: 3, 795 spaceBetween: 25, 796 }, 797 }, 798 }); 799 800 this.thumbnails = new Swiper("#thumbnail-swiper", { 801 spaceBetween: 10, 802 slidesPerView: 2, 803 centerInsufficientSlides: true, 804 freeMode: true, 805 watchSlidesVisibility: true, 806 watchSlidesProgress: true, 807 breakpoints: { 808 768: { 809 slidesPerView: 3 810 }, 811 992: { 812 slidesPerView: 4 813 }, 814 1200: { 815 slidesPerView: 5 816 } 817 }, 818 }); 819 820 this.lightbox = new Swiper("#lightbox-swiper", { 821 spaceBetween: 10, 822 autoHeight: true, 823 observer: true, 824 observeSlideChildren: true, 825 keyboard: { 826 enabled: true 827 }, 828 navigation: { 829 nextEl: ".swiper-button-next", 830 prevEl: ".swiper-button-prev" 831 }, 832 thumbs: { 833 swiper: this.thumbnails 834 } 835 }); 836 }, 837 customShare: function(type, title, description, image = ""){ 838 if(type == "facebook"){ 839 var winHeight = 450, 840 winWidth = 600, 841 winTop = window.screen.height / 2 - winHeight / 2, 842 winLeft = window.screen.width / 2 - winWidth / 2, 843 params = "scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=" + winWidth + ",height=" + winHeight + ",left=" + winLeft + ",top=" + winTop, 844 link = "http://www.facebook.com/sharer.php?s=100&p[title]=" + encodeURIComponent(title) + "&p[summary]=" + encodeURIComponent(description) + "&p[url]=" + window.location.href + "&p[images][0]=" + image; 845 846 window.open(link, "Facebook", params); 847 } 848 849 if(type == "twitter"){ 850 var link = "https://twitter.com/intent/tweet?text=" + encodeURIComponent(title) + "&url=" + encodeURIComponent(window.location.href); 851 852 window.open(link, "_blank").focus(); 853 } 854 855 if(type == "pinterest"){ 856 var link = "https://pinterest.com/pin/create/button/?url=" + encodeURIComponent(window.location.href) + "&description=" + encodeURIComponent(title); 857 858 window.open(link, "_blank").focus(); 859 } 860 861 if(type == "whatsapp"){ 862 var link = "https://wa.me?text=" + encodeURIComponent(title + ": " + window.location.href); 863 864 window.open(link, "_blank").focus(); 865 } 866 867 if(type == "telegram"){ 868 var link = "https://t.me/share/url?url=" + window.location.href + "&text=" + encodeURIComponent(title); 869 870 window.open(link, "_blank").focus(); 871 } 872 873 if(type == "print"){ 874 window.print(); 875 } 876 877 if(type == "link"){ 878 this.legacyShare(); 879 } 880 } 881 } 882 } 883 884 document.addEventListener("DOMContentLoaded", function(){ 885 var app = initVueApp( 886 "#${portletNamespace}", 887 "${portletNamespace}", 888 [d40_favorites, d40_share, ${portletNamespace}_custom_hook] 889 ); 890 }); 891 892 var groupedCategories = '${groupedCategories?js_string}'; 893 var contentCoords = [${lat}, ${lng}]; 894 console.log("espongo " + groupedCategories); 895 896 <#if contacts.email?? && contacts.email.getData()?has_content> 897 var eventEmail = "${contacts.email.getData()}"; 898 <#else> 899 var eventEmail = "iatcuneo@visitcuneese.it"; 900 </#if> 901</script> 902 903<#function cleanCategories categories> 904 <#assign 905 url = themeDisplay.getURLCurrent() 906 fixedCats = [] 907 /> 908 909 <#if url?contains("fiera-del-porro-cervere")> 910 <#list categories as cat> 911 <#if cat?lower_case != "fossano"> 912 <#assign fixedCats += [cat]> 913 </#if> 914 </#list> 915 916 <#return fixedCats> 917 </#if> 918 919 <#return categories> 920</#function> esempi di as xml: xml serveResource con templateId (chiave)
esempi di as json: json serveResource con templateId (chiave)
esempi di as json e siteId: json serveResource con siteid
Cosa
fare
Nessun risultato trovato
Nessun risultato trovato
Esperienze
Nessun risultato trovato
Nessun risultato trovato
Nessun risultato trovato
Dove
dormire
Nessun risultato trovato
Nessun risultato trovato
Offerte
Nessun risultato trovato
Nessun risultato trovato
Info
Nessun risultato trovato
Nessun risultato trovato
Richiedi informazioni su questo evento
Il messaggio è stato inviato correttamente.
L'invio del messaggio non è andato a buon fine. Per favore riprova.
Letta l'informativa sul trattamento dei dati personali, acconsento: