An error occurred while processing the template.
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
Request information about this event
The message was sent successfully.
The message was not sent. Please try again.
Having read the personal data processing notice, I agree: