ArticleDetails

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> ExpItem  [in template "1315478#1315513#1688004" at line 20, column 6]

----
Tip: If the failing expression is known to 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 ExpItem.baseArticleItem.geoRef?? ...  [in template "1315478#1315513#1688004" at line 20, column 1]
----
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    hasSlides = false 
9    hasGallery = false 
10    hasDownloads = false 
11    lat = 0 
12    lng = 0 
13     
14    groupedCategories = getNavCircCategories(articleId, groupId) 
15/> 
16 
17<#-- MASONRY  --> 
18<script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.js"></script> 
19 
20<#if ExpItem.baseArticleItem.geoRef?? && ExpItem.baseArticleItem.geoRef.getData()?has_content> 
21    <#assign 
22        geolocationJSONObject = jsonFactoryUtil.createJSONObject(ExpItem.baseArticleItem.geoRef.getData()) 
23        lat = geolocationJSONObject.getDouble("latitude") 
24        lng = geolocationJSONObject.getDouble("longitude") 
25    /> 
26</#if> 
27 
28<#if ExpItem.baseArticleItem.coordinateTestuali.getData()?has_content> 
29    <#assign 
30        lat = ExpItem.baseArticleItem.coordinateTestuali.getData()?keep_before(",")?number 
31        lng = ExpItem.baseArticleItem.coordinateTestuali.getData()?keep_after(",")?number 
32    /> 
33</#if> 
34 
35<#list territorioCategories as tCat> 
36    <#if tCat.parentCategoryId != 0> 
37        <#assign sliderCategories += [tCat.name]> 
38    </#if> 
39</#list> 
40 
41<#if ExpItem.baseArticleItem.slideHeader?? && ExpItem.baseArticleItem.slideHeader.getSiblings()?has_content> 
42    <#list ExpItem.baseArticleItem.slideHeader.getSiblings() as slide> 
43        <#if slide.getData()?has_content> 
44            <#assign 
45                hasSlides = true 
46                slides = ExpItem.baseArticleItem.slideHeader.getSiblings()?size 
47            /> 
48            <#break> 
49        </#if> 
50    </#list> 
51</#if> 
52 
53<#if ExpItem.baseArticleItem.ImmagineGallery?? && ExpItem.baseArticleItem.ImmagineGallery.getSiblings()?has_content> 
54    <#list ExpItem.baseArticleItem.ImmagineGallery.getSiblings() as item> 
55        <#if item.getData()?has_content> 
56            <#assign hasGallery = true> 
57            <#break> 
58        </#if> 
59    </#list> 
60</#if> 
61 
62<!-- Modello esperienza --> 
63 
64<div id="${portletNamespace}" v-cloak> 
65     
66    <#if themeDisplay.getLayout().getAncestors()?has_content> 
67        <section id="breadcrumb" class="mt-4"> 
68            <div class="container-fluid custom-container d-flex align-items-center"> 
69                <ol class="breadcrumb"> 
70                    <li class="breadcrumb-item"> 
71                        <a href="/" class="breadcrumb-link" title="Home"> 
72                            <span class="breadcrumb-text-truncate tw:text-dark tw:uppercase">Home</span> 
73                        </a> 
74                    </li> 
75                     
76                    <#list themeDisplay.getLayout().getAncestors()?reverse as ancestor> 
77                        <li class="breadcrumb-item"> 
78                            <a href="${ancestor.getFriendlyURL()}" class="breadcrumb-link" title="${escape(ancestor.getHTMLTitle(themeDisplay.getLocale()))}"> 
79                                <span class="breadcrumb-text-truncate tw:text-dark tw:uppercase">${escape(ancestor.getHTMLTitle(themeDisplay.getLocale()))}</span> 
80                            </a> 
81                        </li> 
82                    </#list> 
83                     
84                    <li class="breadcrumb-item active"> 
85                        <span class="tw:text-green tw:uppercase" title="${ExpItem.baseArticleItem.title.getData()?js_string}"> 
86                            ${ExpItem.baseArticleItem.title.getData()} 
87                        </span> 
88                    </li> 
89                </ol> 
90                 
91                <div class="d-flex align-items-center ml-auto"> 
92                    <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)}`"> 
93                        <i :class="(isFavorite(item.id) ? 'fas' : 'fal') + ' fa-heart fa-2x tw:text-green'"></i> 
94                    </button> 
95                     
96                    <div class="btn dropdown tw:px-0"> 
97                        <button type="button" class="btn btn-link dropdown-toggle tw:no-underline tw:text-green" data-toggle="dropdown"> 
98                            <i class="fas fa-share-alt fa-2x"></i> 
99                        </button> 
100                        <div class="dropdown-menu dropdown-menu-center"> 
101                            <button type="button" @click="customShare('facebook', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
102                                <i class="fab fa-facebook-f fa-lg tw:text-green"></i> 
103                                <span class="tw:text-dark"> 
104                                    Facebook 
105                                </span> 
106                            </button> 
107                             
108                            <button type="button" @click="customShare('twitter', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
109                                <i class="fab fa-twitter fa-lg tw:text-green"></i> 
110                                <span class="tw:text-dark"> 
111                                    Twitter 
112                                </span> 
113                            </button> 
114                             
115                            <button type="button" @click="customShare('pinterest', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
116                                <i class="fab fa-pinterest fa-lg tw:text-green"></i> 
117                                <span class="tw:text-dark"> 
118                                    Pinterest 
119                                </span> 
120                            </button> 
121                             
122                            <button type="button" @click="customShare('whatsapp', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
123                                <i class="fab fa-whatsapp fa-lg tw:text-green"></i> 
124                                <span class="tw:text-dark"> 
125                                    WhatsApp 
126                                </span> 
127                            </button> 
128                             
129                            <button type="button" @click="customShare('telegram', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
130                                <i class="fab fa-telegram fa-lg tw:text-green"></i> 
131                                <span class="tw:text-dark"> 
132                                    Telegram 
133                                </span> 
134                            </button> 
135                             
136                            <button type="button" @click="customShare('print', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
137                                <i class="fas fa-print fa-lg tw:text-green"></i> 
138                                <span class="tw:text-dark"> 
139                                    Print 
140                                </span> 
141                            </button> 
142                             
143                            <a :href="'mailto:inserisci indirizzo email?subject=' + item.contentJSON.title + '&body=${currentUrl} ' + item.contentJSON.description" class="dropdown-item tw:space-x-2"> 
144                                <i class="fas fa-envelope fa-lg tw:text-green"></i> 
145                                <span class="tw:text-dark"> 
146                                    Email 
147                                </span> 
148                            </a> 
149                             
150                            <button type="button" @click="customShare('link', item.contentJSON.title, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
151                                <i class="fas fa-link fa-lg tw:text-green"></i> 
152                                <span class="tw:text-dark"> 
153                                    Link 
154                                </span> 
155                            </button> 
156                        </div> 
157                    </div> 
158                </div> 
159            </div> 
160        </section> 
161    </#if> 
162		 
163		<section id="slideshow" class="container-fluid custom-container"> 
164        <div class="swiper-container"> 
165            <div class="swiper-wrapper"> 
166                <#if hasSlides> 
167                    <#list ExpItem.baseArticleItem.slideHeader.getSiblings() as slide> 
168                        <div class="swiper-slide"> 
169                            <img data-src="${getPrefix(slide.getData(), 1920, 730)}" loading="lazy" class="lazyload" alt="${slide.getAttribute('alt')}"/> 
170                            <div class="card-img-overlay bg-dark"></div> 
171                             
172                            <div class="carousel-caption d-flex"> 
173                                <#if testoHeader?? && testoHeader.getData()?has_content> 
174                                    <#assign locationClass = "my-auto"> 
175                                <#else> 
176                                    <#assign locationClass = "mt-auto mb-20"> 
177                                </#if> 
178                                 
179                                <div class="d-flex flex-column ${locationClass}"> 
180                                    <div class="hcm-bg-capabletext-white text-uppercase mr-auto p-4"> 
181                                        <#if testoHeader?? && testoHeader.getData()?has_content> 
182                                            <p>${testoHeader.getData()}</p> 
183                                            <div class="dropdown-divider mt-5 mr-auto mt-lg-10"></div> 
184                                        </#if> 
185                                    </div> 
186                                     
187                                    <#if ExpItem.baseArticleItem.sliderCategories?has_content> 
188                                        <div class="d-flex mt-7"> 
189                                            <i class="fas fa-map-marker-alt fa-2x text-white"></i> 
190                                            <p class="text-white text-uppercase my-auto ml-3"> 
191                                                ${sliderCategories?join(", ")} 
192                                            </p> 
193                                        </div> 
194                                    </#if> 
195                                </div> 
196                            </div> 
197                        </div> 
198                    </#list> 
199                <#else> 
200                    <div class="swiper-slide"> 
201                        <img data-src="https://via.placeholder.com/1920x730" loading="lazy" class="lazyload" alt=""/> 
202                        <div class="card-img-overlay bg-dark"></div> 
203     
204                        <div class="carousel-captiond-flex text-left"> 
205                            <#if testoHeader?? && testoHeader.getData()?has_content> 
206                                <#assign locationClass = "tw:my-auto"> 
207                            <#else> 
208                                <#assign locationClass = "tw:mt-auto tw:mb-20"> 
209                            </#if> 
210                                 
211                            <div class="tw:flex tw:flex-col ${locationClass}"> 
212                                <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"> 
213                                    <#if testoHeader?? && testoHeader.getData()?has_content> 
214                                        <p>${testoHeader.getData()}</p> 
215                                        <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> 
216                                    </#if> 
217                                </div> 
218     
219                                <#if territorioCategories?has_content> 
220                                    <div class="tw:flex tw:mt-7"> 
221                                        <i class="fas fa-map-marker-alt fa-2x tw:text-white"></i> 
222                                        <p class="tw:text-white tw:uppercase tw:font-heading tw:font-medium tw:my-auto tw:ml-3"> 
223                                            <#list territorioCategories as cat> 
224                                                <#if cat.parentCategoryId != 0> 
225                                                    ${cat.name} 
226     
227                                                    <#if cat?has_next>,</#if> 
228                                                </#if> 
229                                            </#list> 
230                                        </p> 
231                                    </div> 
232                                </#if> 
233                            </div> 
234                        </div> 
235                    </div> 
236                </#if> 
237            </div> 
238        </div> 
239    </section> 
240     
241    <section id="intro-description" class="mt-5"> 
242        <div class="container-fluid custom-container"> 
243            <div class="tw:mt-10"> 
244                <#if ExpItem.baseArticleItem.title?? && ExpItem.baseArticleItem.title.getData()?has_content> 
245                    <h1>${ExpItem.baseArticleItem.title.getData()}<h1> 
246                </#if> 
247                 
248                <#if ExpItem.baseArticleItem.subTitle?? && ExpItem.baseArticleItem.subTitle.getData()?has_content> 
249                    <h3>${ExpItem.baseArticleItem.subTitle.getData()}</h3> 
250                </#if>   
251            </div> 
252            <div class="tw:flex tw:mt-9 lg:tw:hidden"> 
253                <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)}`"> 
254                    <i :class="(isFavorite(item.id) ? 'fas' : 'fal') + ' fa-heart fa-lg tw:text-green'"></i> 
255                </button> 
256                <button type="button" @click="share(item.contentJSON.title, item.contentJSON.description)" class="btn btn-link tw:no-underline"> 
257                    <i class="fas fa-share-alt fa-lg tw:text-green"></i> 
258                </button> 
259            </div> 
260        </div> 
261     
262        <div class="container-fluid custom-container d-flex"> 
263            <div class="row w-100"> 
264								<#if (ExpItem.baseArticleItem.contactFields.singleContact.getData())??> 
265								    <#assign col_b_contact = "col-12 col-lg-7" /> 
266										<#assign col_contact = "" /> 
267								<#else> 
268								    <#assign col_b_contact = "col-12 col-lg-7" /> 
269										<#assign col_contact = "d-none" /> 
270								</#if> 
271						 
272                <div class="col-12 col-lg-7 ${col_b_contact}"> 
273                    <#if ExpItem.baseArticleItem.introDescription?? && ExpItem.baseArticleItem.introDescription.getData()?has_content> 
274                        <div class="mt-4"> 
275                            ${ExpItem.baseArticleItem.introDescription.getData()} 
276                        </div> 
277                         
278                    </#if> 
279 
280                </div> 
281                <div class="col-12 col-lg-5 ${col_contact}"> 
282                		<@contatti/>  
283                </div> 
284            </div> 
285        </div> 
286    </section> 
287     
288    <section id="hightlights" class="mt-4"> 
289        <div class="container-fluid custom-container"> 
290            <div class="tw:mt-10"> 
291                <#if titoloInEvidenza?? && titoloInEvidenza.getData()?has_content> 
292                    <p class="text-dark text-uppercase">${titoloInEvidenza.getData()}</p> 
293                </#if> 
294                 
295                <#if sottotitoloInEvidenza?? && sottotitoloInEvidenza.getData()?has_content> 
296                    <p class="text-dark text-uppercase">${sottotitoloInEvidenza.getData()}</p> 
297                </#if> 
298            </div> 
299            <div class="row my-5"> 
300                <div class="col-12 col-lg-8"> 
301                    <#if EvImage.immagineInEvidenza?? && EvImage.immagineInEvidenza.getData()?has_content> 
302                        <div class="aspect-ratio aspect-ratio-16-to-9"> 
303                            <img data-src="${getPrefix(EvImage.immagineInEvidenza.getData(), 1280, 720)}" loading="lazy" class="lazyload aspect-ratio-item-fluid rounded-border" alt="${EvImage.immagineInEvidenza.getAttribute('alt')}" /> 
304                        </div> 
305                    </#if> 
306                </div> 
307                <div class="col-12 col-lg-4"> 
308                    <div class="card hcm-bg-capable tw:bg-green rounded-border tw:border-none tw:h-full tw:p-4 tw:mb-0"> 
309                        <p class="tw:text-white tw:font-heading tw:font-bold tw:text-xl tw:uppercase lg:tw:text-2xl">${getLabel('da-non-perdere')}</p> 
310                        <div class="tw:divide-y-2 tw:divide-gray-50 tw:mt-8 lg:tw:mt-10"> 
311                             
312                            <#if EvImage.EvImageField??> 
313                                <#if EvImage.EvImageField.testoCosaVedere?? && EvImage.EvImageField.testoCosaVedere.getData()?has_content> 
314                                    <div class="tw:text-white">${EvImage.EvImageField.testoCosaVedere.getData()}</div> 
315                                </#if> 
316                                 
317                                <#if EvImage.EvImageField.campoPuntato?? && EvImage.EvImageField.campoPuntato.getSiblings()?has_content> 
318                                    <div class="tw:space-y-4 tw:mt-4 tw:pt-4"> 
319                                        <#list EvImage.EvImageField.campoPuntato.getSiblings() as item> 
320                                            <div class="card-row tw:space-x-4"> 
321                                                <div class="autofit-col"> 
322                                                    <i class="fas fa-arrow-circle-right fa-2x tw:text-white"></i> 
323                                                </div> 
324                                                <div class="autofit-col autofit-col-expand"> 
325                                                    <div class="autofit-section"> 
326                                                        <div class="tw:text-white"> 
327                                                            ${item.getData()} 
328                                                        </div> 
329                                                    </div> 
330                                                </div> 
331                                            </div> 
332                                        </#list> 
333                                    </div> 
334                                </#if>    
335                            </#if> 
336                        </div> 
337                    </div> 
338                </div> 
339            </div> 
340        </div> 
341    </section> 
342 
343    <#if ExpItem.baseArticleItem.descriptionFieldSet.description?? && ExpItem.baseArticleItem.descriptionFieldSet.description.getData()?has_content> 
344    <section id="description" class="mt-4"> 
345        <div class="container-fluid custom-container"> 
346 
347            <div class="mt-5"> 
348                <div class="tw:flow-root">                 
349                    <#if ExpItem.baseArticleItem.descriptionFieldSet.descriptionFieldSetFieldSet.ImmagineMain?? && ExpItem.baseArticleItem.descriptionFieldSet.descriptionFieldSetFieldSet.ImmagineMain.getData()?has_content> 
350                        <div class="tw:w-full lg:tw:float-left lg:tw:w-5/12 lg:pr-5"> 
351                            <div class="aspect-ratio aspect-ratio-4-to-3"> 
352                                <img data-src="${getPrefix(ExpItem.baseArticleItem.descriptionFieldSet.descriptionFieldSetFieldSet.ImmagineMain.getData(), 900, 675)}" loading="lazy" class="lazyload aspect-ratio-item-fluid tw:object-cover tw:w-full tw:h-full rounded-border" alt="${ExpItem.baseArticleItem.descriptionFieldSet.descriptionFieldSetFieldSet.ImmagineMain.getAttribute('alt')}" /> 
353                            </div> 
354                        </div> 
355                    </#if> 
356     
357                    <div class="mt-4 mt-lg-0"> 
358                        ${ExpItem.baseArticleItem.descriptionFieldSet.description.getData()} 
359                    </div> 
360                </div> 
361            </div> 
362        </div> 
363    </section> 
364    </#if> 
365     
366    <#if hasGallery> 
367        <section id="gallery" class="mt-4"> 
368            <div class="container-fluid custom-container"> 
369						    <div class="gallery-grid grid"> 
370                    <#list ExpItem.baseArticleItem.ImmagineGallery.getSiblings()  as pic> 
371                        <div class="grid-item"> 
372                            <a href="javascript:void(0);" data-toggle="modal" data-target="#lightbox-modal" data-slider="${pic?index}"> 
373														<img src="${getKitPrefix(pic.getData(), 'tr:w-900,fo-center')}" alt="${pic.getAttribute('alt')!''}"  /> 
374                            </a> 
375                        </div> 
376                    </#list> 
377                 </div> 
378            </div> 
379             
380            <div id="lightbox-modal" tabindex="-1" role="dialog" class="modal fade"> 
381                <div class="modal-dialog modal-full-screen tw:inset-0 tw:border-none tw:shadow-none"> 
382                    <div class="modal-content tw:bg-transparent"> 
383                        <div class="modal-body tw:overflow-hidden"> 
384                            <div class="tw:absolute tw:top-0 tw:right-0 tw:z-5"> 
385                                <button type="button" data-dismiss="modal" class="btn btn-monospaced btn-secondary m-3"> 
386                                    <i class="fal fa-times fa-lg"></i> 
387                                </button> 
388                            </div> 
389                             
390                            <#-- lightbox --> 
391            				<div id="lightbox-swiper" class="swiper-container h-75 my-auto"> 
392            				    <div class="swiper-button-prev tw:w-12 tw:h-12"> 
393                                    <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 
394                                        <span class="sticker-overlay"> 
395                                            <i class="fas fa-chevron-left fa-2x tw:text-white"></i> 
396                                        </span> 
397                                    </span> 
398                                </div> 
399                                 
400                                <div class="swiper-button-next tw:w-12 tw:h-12"> 
401                                    <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 
402                                        <span class="sticker-overlay"> 
403                                            <i class="fas fa-chevron-right fa-2x tw:text-white"></i> 
404                                        </span> 
405                                    </span> 
406                                </div> 
407                                 
408                                <div class="swiper-wrapper tw:h-full"> 
409                                    <#list ExpItem.baseArticleItem.ImmagineGallery.getSiblings() as pic> 
410                                        <div class="swiper-slide tw:h-full"> 
411                                            <img data-src="${getPrefix(pic.getData(), 1920, '')}" loading="lazy" class="lazyload tw:h-full tw:object-contain tw:mx-auto" alt="${pic.getAttribute('alt')!''}"> 
412                                        </div> 
413                                    </#list> 
414                                </div> 
415                            </div> 
416                             
417                            <#-- thumbnails --> 
418            				<div id="thumbnail-swiper" class="swiper-container" thumbsSlider=""> 
419                                <div class="swiper-wrapper"> 
420                                    <#list ExpItem.baseArticleItem.ImmagineGallery.getSiblings() as pic> 
421                                        <div class="swiper-slide"> 
422                                            <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')!''}"> 
423                                        </div> 
424                                    </#list> 
425                                </div> 
426                            </div> 
427                        </div> 
428                    </div> 
429                </div> 
430            </div> 
431        </section> 
432    </#if> 
433		 
434    <#if EmbedCodes.CodiceEmbedAudioAltro?? && EmbedCodes.CodiceEmbedAudioAltro.data?has_content> 
435        <section id="embeds" class="tw:font-text tw:mt-20"> 
436            <div class="container"> 
437                <div class="row"> 
438                    <#list EmbedCodes.CodiceEmbedAudioAltro.getSiblings() as embed> 
439                        <div class="col-12 col-lg-6"> 
440                            <div class="card tw:border-0 tw:shadow-none tw:rounded-md"> 
441                                <div class="embed-responsive embed-responsive-16by9 tw:rounded-md"> 
442                                    ${embed.getData()} 
443                                </div> 
444                                <!-- div class="card-body tw:px-0"> 
445                                    <div class="tw:flex tw:space-x-4"> 
446                                        <div class="btn btn-link tw:bg-dark tw:text-white tw:uppercase tw:font-heading tw:tracking-tighter tw:text-slim tw:cursor-default tw:rounded-0">tag 1</div> 
447                                        <div class="btn btn-link tw:bg-dark tw:text-white tw:uppercase tw:font-heading tw:tracking-tighter tw:text-slim tw:cursor-default tw:rounded-0">tag 2</div> 
448                                    </div> 
449                                </div --> 
450                                <#if (embed.titoloEmbedAudio?? && embed.titoloEmbedAudio.getData()?has_content) || (embed.descrizioneEmbedAudio?? && embed.descrizioneEmbedAudio.getData()?has_content)> 
451                                <div class="card-body tw:px-0"> 
452                                    <#if embed.titoloEmbedAudio?? && embed.titoloEmbedAudio.getData()?has_content > 
453                                    <p class="tw:text-dark tw:uppercase tw:font-heading tw:font-bold tw:text-xl lg:tw:text-2xl mb-4">${embed.titoloEmbedAudio.getData()}</p> 
454                                    </#if> 
455                                    <#if embed.descrizioneEmbedAudio?? && embed.descrizioneEmbedAudio.getData()?has_content> 
456                                    <p class="tw:text-dark tw:font-light">${embed.descrizioneEmbedAudio.getData()}</p> 
457                                    </#if> 
458                                </div> 
459                                </#if> 
460                            </div> 
461                        </div> 
462                    </#list> 
463                </div> 
464            </div> 
465        </section> 
466    </#if> 
467 
468    <#if EmbedVids.embed_video?? && EmbedVids.embed_video.data?has_content> 
469        <section id="videos" class="tw:font-text tw:mt-20"> 
470            <div class="container"> 
471                <div class="row"> 
472                    <#list EmbedVids.embed_video.getSiblings() as video> 
473                        <div class="col-12 col-lg-6"> 
474                            <div class="card tw:border-0 tw:shadow-none tw:rounded-md"> 
475                                <div class="embed-responsive embed-responsive-16by9 tw:rounded-md"> 
476                                    <iframe class="embed-responsive-item" src="${video.getData()}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe> 
477                                </div> 
478                                <!-- div class="card-body tw:px-0"> 
479                                    <div class="tw:flex tw:space-x-4"> 
480                                        <div class="btn btn-link tw:bg-dark tw:text-white tw:uppercase tw:font-heading tw:tracking-tighter tw:text-slim tw:cursor-default tw:rounded-0">tag 1</div> 
481                                        <div class="btn btn-link tw:bg-dark tw:text-white tw:uppercase tw:font-heading tw:tracking-tighter tw:text-slim tw:cursor-default tw:rounded-0">tag 2</div> 
482                                    </div> 
483                                </div --> 
484                                <#if (video.titoloEmbedVideo?? && video.titoloEmbedVideo.getData()?has_content) || (video.descrizioneEmbedVideo?? && video.descrizioneEmbedVideo.getData()?has_content)> 
485                                <div class="card-body tw:px-0"> 
486                                    <#if video.titoloEmbedVideo?? && video.titoloEmbedVideo.getData()?has_content > 
487                                    <p class="tw:text-dark tw:uppercase tw:font-heading tw:font-bold tw:text-xl lg:tw:text-2xl mb-4">${video.titoloEmbedVideo.getData()}</p> 
488                                    </#if> 
489                                    <#if video.descrizioneEmbedVideo?? && video.descrizioneEmbedVideo.getData()?has_content> 
490                                    <p class="tw:text-dark tw:font-light">${video.titoloEmbedVideo.getData()}</p> 
491                                    </#if> 
492                                </div> 
493                                </#if> 
494                            </div> 
495                        </div> 
496                    </#list> 
497                </div> 
498            </div> 
499        </section> 
500    </#if> 
501     
502     
503    <#if downloads??> 
504    <section id="downloads" > 
505        <#list downloads.getSiblings() as item> 
506            <#if item.downloadUrl.getData()?has_content> 
507                <#assign hasDownloads = true> 
508                <#break> 
509            </#if> 
510        </#list> 
511    </#if> 
512     
513    <#if hasDownloads> 
514        <div class="container tw:mt-20"> 
515            <div class="sheet tw-bg-light tw:space-y-4 p-3"> 
516                <#list downloads.getSiblings() as item> 
517                    <#-- #assign doc = getFileFromUuid(createObject(item.downloadUrl.data).uuid, groupId) --> 
518                     
519                    <div class="card tw:bg-transparent tw:border-0 tw:shadow-none"> 
520                        <div class="card-row"> 
521                            <div class="autofit-col"> 
522                                <div class="autofit-section"> 
523                                    <i class="fal fa-file-pdf fa-lg tw:text-dark"></i> 
524                                </div> 
525                            </div> 
526                            <div class="autofit-col autofit-col-expand autofit-col-gutters"> 
527                                <div class="autofit-section"> 
528                                    <a href="${item.downloadUrl.getData()}" class="tw:text-dark tw:font-bold" download> 
529                                        <#-- ${doc.fileName} --> 
530                                        ${item.downloadText.getData()} 
531                                         
532                                        <span class="tw:font-light muted tw:ml-2">(scarica qui)</span> 
533                                    </a> 
534                                </div> 
535                            </div> 
536                        </div> 
537                    </div> 
538                </#list> 
539            </div> 
540        </div> 
541    </section> 
542    </#if> 
543     
544     
545    <#macro contatti> 
546    <#assign  
547            contactNameSz="" 
548            street_number1Sz="" 
549            localitaSz="" 
550            comuneSz="" 
551            countrySz="" 
552            zipCodeSz="" 
553            telSz="" 
554            emailSz="" 
555            email2Sz="" 
556            webSiteSz="" 
557            facebookSz="" 
558            instagramSz="" 
559            thereAreContcats="false" 
560    /> 
561		 
562    <#if (ExpItem.baseArticleItem.contactFields.singleContact.getData())??> 
563        <#assign contacts = ExpItem.baseArticleItem.contactFields.singleContact /> 
564		</#if> 
565		 
566		<#if contacts??> 
567				<#if contacts.contactName?? && contacts.contactName.getData()?has_content> 
568						<#assign contactNameSz=contacts.contactName.getData()> 
569						<#assign thereAreContcats="true"> 
570				</#if> 
571				<#if contacts.street_number1?? && contacts.street_number1.getData()?has_content> 
572						<#assign street_number1Sz=contacts.street_number1.getData()> 
573						<#assign thereAreContcats="true"> 
574				</#if> 
575				<#if contacts.localita?? && contacts.localita.getData()?has_content> 
576						<#assign localitaSz=contacts.localita.getData()> 
577						<#assign thereAreContcats="true"> 
578				</#if> 
579				<#if contacts.comune?? && contacts.comune.getData()?has_content> 
580						<#assign comuneSz=contacts.comune.getData()> 
581						<#assign thereAreContcats="true"> 
582				</#if> 
583				<#if contacts.country?? && contacts.country.getData()?has_content> 
584						<#assign countrySz=contacts.country.getData()> 
585						<#assign thereAreContcats="true"> 
586				</#if> 
587				<#if contacts.zipCode?? && contacts.zipCode.getData()?has_content> 
588						<#assign zipCodeSz=contacts.zipCode.getData()> 
589						<#assign thereAreContcats="true"> 
590				</#if> 
591				<#if contacts.tel?? && contacts.tel.getData()?has_content> 
592						<#assign telSz=contacts.tel.getData()> 
593						<#assign thereAreContcats="true"> 
594				</#if> 
595				<#if contacts.email?? && contacts.email.getData()?has_content> 
596						<#assign emailSz=contacts.email.getData()> 
597						<#assign thereAreContcats="true"> 
598				</#if> 
599				<#if contacts.email2?? && contacts.email2.getData()?has_content> 
600						<#assign email2Sz=contacts.email2.getData()> 
601						<#assign thereAreContcats="true"> 
602				</#if> 
603				<#if contacts.webSite?? && contacts.webSite.getData()?has_content> 
604						<#assign webSiteSz=contacts.webSite.getData()> 
605						<#assign thereAreContcats="true"> 
606				</#if> 
607				<#if contacts.facebook?? && contacts.facebook.getData()?has_content> 
608						<#assign facebookSz=contacts.facebook.getData()> 
609						<#assign thereAreContcats="true"> 
610				</#if> 
611				<#if contacts.instagram?? && contacts.instagram.getData()?has_content> 
612						<#assign instagramSz=contacts.instagram.getData()> 
613						<#assign thereAreContcats="true"> 
614				</#if> 
615		</#if> 
616     
617    <#assign acapo="false"> 
618    <#if thereAreContcats == "true"> 
619    <div class="tw:text-dark tw:font-light tw:mt-8">         
620            <#if contactNameSz != ""> 
621                ${contactNameSz} 
622                <#assign acapo="true"> 
623            </#if> 
624            <#if street_number1Sz != ""> 
625                <#if acapo == "true"><br/></#if> 
626                ${street_number1Sz} 
627                <#assign acapo="true"> 
628            </#if> 
629            <#if localitaSz  != ""> 
630                <#if acapo == "true"><br/></#if> 
631                ${localitaSz} 
632                <#assign acapo="true"> 
633            </#if> 
634     
635            <#if zipCodeSz != "" || comuneSz != "" || countrySz != ""> 
636                <#if acapo == "true"><br/></#if> 
637                ${zipCodeSz} ${comuneSz} ${countrySz} 
638                <#assign acapo="true"> 
639            </#if> 
640            
641            <#if telSz != ""> 
642                <#if acapo == "true"><br/></#if> 
643                ${getLabel('tel')}: ${telSz} 
644                <#assign acapo="true"> 
645            </#if> 
646            <#if emailSz != ""> 
647                <#if acapo == "true"><br/></#if> 
648                ${getLabel('email')}: <a href="mailto:${emailSz}" >${emailSz}</a> 
649                <#if email2Sz != ""> 
650                    <a href="mailto:${email2Sz}" style="margin-left: 20px;">${email2Sz}</a> 
651                 </#if> 
652                <#assign acapo="true"> 
653            </#if> 
654     
655            <#if webSiteSz != "" || facebookSz != "" || instagramSz != ""> 
656                <#if acapo == "true"><br/></#if> 
657                <#if webSiteSz != ""> 
658                    <a href="${webSiteSz}" title="${webSiteSz}" alt="${webSiteSz}" target="_blank">${getLabel('sito-web')}</a>      
659                </#if> 
660                <#if facebookSz != "">   
661                    <a href="${facebookSz}" title="${facebookSz}" alt="${facebookSz}" target="_blank"><i class="fab fa-facebook-f" style="margin-left: 20px;"></i></a>      
662                </#if> 
663                <#if instagramSz != "">  
664                    <a href="${instagramSz}" title="${instagramSz}" alt="${instagramSz}" target="_blank"><i class="fab fa-instagram" style="margin-left: 20px;"></i></a>  
665                </#if> 
666     
667            </#if> 
668                   
669    </div> 
670    </#if> 
671     
672     
673    </#macro> 
674</div> 
675 
676<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/components/securityV2.js"></script> 
677 
678<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/components/initVueApp.js"></script> 
679<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/mixins/js/favorites.js"></script> 
680<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/mixins/js/share.js"></script> 
681 
682<script> 
683    var ${portletNamespace}_custom_hook = { 
684        data: { 
685            slider: null, 
686            gallery: null, 
687            thumbnails: null, 
688            lightbox: null, 
689            item: { 
690                id: "${articleId}", 
691                contentJSON: { 
692                    title: "${ExpItem.baseArticleItem.title.getData()?js_string}", 
693                    description: "${ExpItem.baseArticleItem.introDescription.getData()?js_string}", 
694                    geoRef: '${ExpItem.baseArticleItem.geoRef.getData()}', 
695                    previewPicture: "${themeDisplay.getPortalURL()}${ExpItem.baseArticleItem.previewPicture.getData()}", 
696                    viewUrl: window.location.href 
697
698
699        }, 
700        mounted(){ 
701            var that = this; 
702             
703            if(${hasSlides?c}){ 
704                this.initSlider(); 
705
706             
707            if(${hasGallery?c}){ 
708                this.initGallery(); 
709             
710                $("#lightbox-modal").on("shown.bs.modal", function(e){ 
711                    that.lightbox.update(); 
712                    that.thumbnails.update(); 
713                    that.lightbox.slideTo($(e.relatedTarget).data("slider")); 
714                    that.lightbox.update(); 
715                }); 
716                 
717                $("#lightbox-modal .swiper-wrapper").on("click", function(e){ 
718                    if($(e.target).attr("class").includes("swiper-slide")){ 
719                        $("#lightbox-modal").modal("hide"); 
720
721                }); 
722
723        }, 
724        methods: { 
725            initSlider: function(){ 
726                this.slider = new Swiper("#slideshow .swiper-container", { 
727        			loop: ${(slides > 1)?c}, 
728        			effect: "fade", 
729        			speed: 3000, 
730        			allowTouchMove: false, 
731        			autoplay: { 
732        				delay: 3000, 
733        				disableOnInteraction: false, 
734        			}, 
735        			fadeEffect: { 
736        				crossFade: true, 
737        			}, 
738        		}); 
739            }, 
740            initGallery: function(){ 
741                this.gallery = new Swiper("#gallery .swiper-container", { 
742        			slidesPerView: 1, 
743        			spaceBetween: 25, 
744        			centerSlides: true, 
745        			centerInsufficientSlides: true, 
746        			navigation: { 
747        				prevEl: ".btn-prev", 
748        				nextEl: ".btn-next", 
749        			}, 
750        			breakpoints: { 
751        				768: { 
752        					slidesPerView: 2, 
753        					spaceBetween: 25, 
754        				}, 
755        				992: { 
756        					slidesPerView: 3, 
757        					spaceBetween: 25, 
758        				}, 
759        			}, 
760        		}); 
761        		 
762        		this.thumbnails = new Swiper("#thumbnail-swiper", { 
763                    spaceBetween: 10, 
764                    slidesPerView: 2, 
765                    centerInsufficientSlides: true, 
766                    freeMode: true, 
767                    watchSlidesVisibility: true, 
768                    watchSlidesProgress: true, 
769        			breakpoints: { 
770        				768: { 
771        					slidesPerView: 3 
772        				}, 
773        				992: { 
774        					slidesPerView: 4 
775        				}, 
776        				1200: { 
777        					slidesPerView: 5 
778
779        			}, 
780                }); 
781                 
782                this.lightbox = new Swiper("#lightbox-swiper", { 
783        		    spaceBetween: 10, 
784                    autoHeight: true, 
785                    observer: true, 
786                    observeSlideChildren: true, 
787                    keyboard: { 
788                        enabled: true 
789                    }, 
790                    navigation: { 
791                        nextEl: ".swiper-button-next", 
792                        prevEl: ".swiper-button-prev" 
793                    }, 
794                    thumbs: { 
795                        swiper: this.thumbnails 
796
797                }); 
798            }, 
799            customShare: function(type, title, description, image = ""){ 
800                if(type == "facebook"){ 
801                    var winHeight = 450, 
802                        winWidth = 600, 
803                        winTop = window.screen.height / 2 - winHeight / 2, 
804                        winLeft = window.screen.width / 2 - winWidth / 2, 
805                        params = "scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=" + winWidth + ",height=" + winHeight + ",left=" + winLeft + ",top=" + winTop, 
806                        linkOld = "http://www.facebook.com/sharer.php?s=100&p[title]=" + encodeURIComponent(title) + "&p[summary]=" + encodeURIComponent(description) + "&p[url]=" + window.location.href + "&p[picture]=" + image, 
807                        link = "https://www.facebook.com/sharer/sharer.php?u=" + window.location.href + "&picture=" + image + "&p[images][0]=" + image + "&title=" + encodeURIComponent(title) + "&description=" + encodeURIComponent(description); 
808     
809                    window.open(link, "Facebook", params); 
810
811                 
812                if(type == "twitter"){ 
813                    var link = "https://twitter.com/intent/tweet?text=" + encodeURIComponent(title) + "&url=" + encodeURIComponent(window.location.href); 
814                     
815                    window.open(link, "_blank").focus(); 
816
817                 
818                if(type == "pinterest"){ 
819                    var link = "https://pinterest.com/pin/create/button/?url=" + encodeURIComponent(window.location.href) + "&description=" + encodeURIComponent(title); 
820                     
821                    window.open(link, "_blank").focus(); 
822
823                 
824                if(type == "whatsapp"){ 
825                    var link = "https://wa.me?text=" + encodeURIComponent(title + ": " + window.location.href); 
826                     
827                    window.open(link, "_blank").focus(); 
828
829                 
830                if(type == "telegram"){ 
831                    var link = "https://t.me/share/url?url=" + window.location.href + "&text=" + encodeURIComponent(title); 
832                     
833                    window.open(link, "_blank").focus(); 
834
835                 
836                if(type == "print"){ 
837                    window.print(); 
838
839                 
840                if(type == "link"){ 
841                    this.legacyShare(); 
842
843
844
845    }; 
846             
847    document.addEventListener("DOMContentLoaded", function(){ 
848		var app = initVueApp( 
849            "#${portletNamespace}", 
850            "${portletNamespace}", 
851            [d40_favorites, d40_share, ${portletNamespace}_custom_hook] 
852        ); 
853    }); 
854     
855    var groupedCategories = '${groupedCategories?js_string}'; 
856    var contentCoords = [${lat}, ${lng}]; 
857    console.log("espongo " + groupedCategories); 
858</script> 

Aggregatore Risorse

it_IT

Cosa

fare

Nessun risultato trovato

it_IT

Esperienze

Nessun risultato trovato

it_IT

Dove

dormire

Nessun risultato trovato

it_IT

Offerte

Nessun risultato trovato

it_IT

Info

Nessun risultato trovato