Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> immagine_banner  [in template "20099#20135#33907" at line 78, column 22]

----
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: #assign urlBanner = immagine_banner.g...  [in template "20099#20135#33907" at line 78, column 1]
----
1<#--EVENTO 09022024--> 
2<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")> 
3 
4<#assign eventoStructureKey = structureService.getStructureEventoKey()> 
5<#assign eventoStructureId = structureService.getStructureEventoId()> 
6 
7<#assign attrattoreStructureKey = structureService.getStructureAttrattoreKey()> 
8<#assign attrattoreStructureId = structureService.getStructureAttrattoreId()> 
9 
10<#assign elasticService = serviceLocator.findService("it.inera.elastic.service.ElasticService")> 
11<#assign journalArticleId = .vars['reserved-article-id'].data/> 
12 
13<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
14<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
15<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
16<#assign journalArticleConverter = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")> 
17 
18<#assign vocabularyIdUmbria = structureService.getVocabularyIdByVocabularyName("Vocabolario Umbria") > 
19<#assign vocabularyIdEventi = structureService.getVocabularyIdByVocabularyName("Eventi") > 
20 
21 
22<#if coordinate_principali.getData()?has_content && coordinate_principali.getData()?trim?length gt 0 > 
23	<#assign coordinatePrincipaliJson = coordinate_principali.getData()?eval > 
24	<#if coordinatePrincipaliJson.latitude?has_content && coordinatePrincipaliJson.latitude?trim?length gt 0 > 
25		<#assign latitude = coordinatePrincipaliJson.latitude?c > 
26	</#if> 
27	<#if coordinatePrincipaliJson.longitude?has_content && coordinatePrincipaliJson.longitude?trim?length gt 0 > 
28		<#assign longitude = coordinatePrincipaliJson.longitude?c > 
29	</#if> 
30<#else> 
31	<#assign latitude = "" > 
32	<#assign longitude = "" > 
33</#if> 
34 
35<#assign currentArticle = journalArticleLocalService.getArticle(groupId, journalArticleId) /> 
36 
37<#-- GESTIONE ASSET LINGUA DI DEFAULT --> 
38<#assign currentObjectDefaultLanguage = journalArticleConverter.getEvento(currentArticle, localeUtil.getDefault())> 
39 
40<#assign titolo1 = "" /> 
41 
42<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("titolo_fascia_1")?has_content> 
43	<#assign titolo1_custom_field = currentArticle.getExpandoBridge().getAttribute("titolo_fascia_1") /> 
44	<#list titolo1_custom_field?keys as key> 
45		<#if key == locale> 
46			<#assign titolo1 = titolo1_custom_field?values[key_index] /> 
47		</#if> 
48	</#list> 
49</#if> 
50 
51<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
52<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
53<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
54 
55<#assign categoryList = assetCategoryLocalService.getAssetEntryAssetCategories(currentArticleAssetEntryId) > 
56 
57<#assign categoryListIds = [] > 
58 
59<#list categoryList as category> 
60	<#assign categoryListIds = categoryListIds + [category.getCategoryId()]> 
61</#list> 
62 
63<#assign attrattoresByCoord = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, latitude, longitude, distanza.getData(), attrattoreStructureKey, attrattoreStructureId?c, locale, "6", null , null, journalArticleId, null, null, null) /> 
64 
65<#assign dateToday = .now?long /> 
66<#assign next15Days = dateToday + (15 * 24 * 60 * 60 * 1000) /> 
67 
68<#assign startDate = dateToday?number_to_date?string("yyyyMMdd") + "0000000"> 
69<#assign endDate = next15Days?number_to_date?string("yyyyMMdd") + "0000000" > 
70 
71<#assign eventsrelated = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, eventoStructureKey, eventoStructureId?c, locale, "6", null , categoryListIds, journalArticleId, startDate, endDate, true) /> 
72 
73<#assign widthBannerImg = propsUtil.get("image.scale.fullpage") /> 
74<#assign widthSliderImg = propsUtil.get("image.slider.testobarra.height") /> 
75<#assign widthRelatedImg = propsUtil.get("image.proplista.height") /> 
76<#assign widthCardImg = propsUtil.get("image.scale.allpage") /> 
77 
78<#assign urlBanner = immagine_banner.getData() > 
79<#assign testAlternativoImmagineBanner = testo_alternativo_immagine_banner.getData() > 
80<#attempt> 
81	<#if currentObjectDefaultLanguage?? && currentObjectDefaultLanguage?has_content && currentObjectDefaultLanguage.getImmagineBanner()?has_content> 
82		<#assign urlBanner = currentObjectDefaultLanguage.getImmagineBanner().getUrl() > 
83	</#if> 
84	<#if currentObjectDefaultLanguage?? && currentObjectDefaultLanguage?has_content && currentObjectDefaultLanguage.getTestoAlternativoImmagineBanner()?has_content> 
85		<#assign testAlternativoImmagineBanner = currentObjectDefaultLanguage.getTestoAlternativoImmagineBanner() > 
86	</#if> 
87	<#recover> 
88		<#assign urlBanner = immagine_banner.getData() > 
89		<#assign testAlternativoImmagineBanner = testo_alternativo_immagine_banner.getData() > 
90</#attempt> 
91 
92<#assign titleCategory = ""> 
93<#assign titleParentCategory = ""> 
94<#attempt> 
95	<#list categoryList as category> 
96		<#if vocabularyIdEventi == category.getVocabularyId() > 
97			<#assign titleCategory = category.getTitle(themeDisplay.getLocale())> 
98			<#assign parentCategoryId = category.getParentCategoryId()> 
99			<span class="hidden" id="tagmanager_init_pagegroup">Eventi</span> 
100			<span class="hidden" id="tagmanager_init_pagecategory">${titleCategory}</span> 
101		</#if> 
102	</#list> 
103	<#recover> 
104</#attempt> 
105 
106<style> 
107	@media (max-width: 768px) { 
108		.header-block{ 
109			height: auto; 
110			padding: 0px !important; 
111			.bg{ 
112				position: relative; 
113
114
115 
116
117</style> 
118 
119<#assign hasImage = 0> 
120<#if urlBanner?? && urlBanner?has_content> 
121<assign hasImage = 1> 
122	<div class="container-fluid"> 
123		<div class="row"> 
124			<div class="header-block header-block-1 padding-top-em-5 padding-bottom-em-5 header-block-image-main"> 
125				<img class="bg img-fluid w-100" src="${urlBanner}?width=${widthBannerImg}" alt="${testAlternativoImmagineBanner}"> 
126			</div> 
127			<div class="map map-container map-container-header hidden"> 
128				<div class="map-content"> 
129					<div class="leaflet-interactive-map map-summary-results" id="header-map" data-results="${themeDisplay.getPortalURL()}/o/geolocation/get-positions?articleId=${journalArticleId}" data-config="{&quot;clustering&quot;:true}"></div> 
130				</div> 
131			</div> 
132		</div> 
133	</div> 
134	</#if> 
135 
136	<#if hasImage?? && hasImage==1> 
137	<div class="container-fluid bg-white"> 
138		<#else> 
139		<div class="container-fluid bg-white"> 
140			</#if> 
141			<div class="row"> 
142				<article class="container bridge bg-white translate-top-md-rem-5 translate-top-lg-rem-10"> 
143					<div class="row"> 
144						<div class="col-12"> 
145 
146							<div class="text-left link-back-container margin-left-rem-1"><a class="link-1 link-back margin-top-em-2 padding-left-rem-1" id="backLink" href="#"><i class="im im-angle-left"></i><span class="hidden display-inline-lg"><@liferay.language key="label.indietro" /></span></a></div> 
147 
148							<div class="text-center padding-top-em-2"> 
149								<div class="link-1 link-toggle-map" data-target="#header-map" style="color: #000;"><@liferay.language key="label.visualizza.sulla.mappa" /></div> 
150							</div> 
151							<div class="link-tripplanner-container"> 
152								<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
153								<a data-id="${journalArticleId}" class="link link-tripplanner link-tripplanner-extended link-tripplanner-top-right margin-right-em-1 padding-right-rem-1" href="${currentUrl}" data-tom="false"> 
154									<i class="far fa-heart text-red"></i> 
155									<i class="fas fa-heart text-red" style="display:none"></i> 
156									<span class="label hidden display-lg"><@liferay.language key="label.aggiungi.al.mio.viaggio" /></span> 
157								</a> 
158							</div> 
159						</div> 
160						<div class="col-12 col-md-10 offset-md-1"> 
161							<div class="text-block text-block-center"> 
162								<h1 class="title-2 margin-top-em-0">${titolo.getData()}</h1> 
163								<div class="text"></div> 
164							</div> 
165						</div> 
166 
167						<div class="row padding-left-md-em-1 padding-right-md-em-1 padding-left-lg-em-4 padding-right-lg-em-4"> 
168							<div class="col-12 col-md-8 padding-right-md-em-5"> 
169								<div class="text-block text-block-center"> 
170									<div class="text text-block-left">${descrizione.getData()}</div> 
171								</div> 
172 
173								<#if descrizione_immagine?? && descrizione_immagine.getSiblings()?has_content && descrizione_immagine.getSiblings()?size gt 0 && descrizione_immagine.getSiblings()[0].immagine.getData()?? && descrizione_immagine.getSiblings()[0].immagine.getData()?has_content> 
174									<div class="carousel-container carousel-no-ctrl transparent margin-top-em-1 margin-bottom-em-1 carousel-image-slide carousel-draggable"> 
175										<div class="tns-carousel tns-carousel-no-ctrl" data-tns-config="{&quot;items&quot;:1,&quot;autoplay&quot;:true,&quot;autoplayHoverPause&quot;:true}"> 
176											<#if descrizione_immagine?? && descrizione_immagine.getData()?has_content> 
177												<#list descrizione_immagine.getSiblings() as cur_descrizione_immagine> 
178													<div class="item-with-caption"> 
179														<img class="slide-image w-100" src="${cur_descrizione_immagine.immagine.getData()}?width=${widthSliderImg}" alt="${cur_descrizione_immagine.testo_alternativo.getData()}"> 
180														<#if cur_descrizione_immagine.didascalia.getData()?? && cur_descrizione_immagine.didascalia.getData()?has_content && cur_descrizione_immagine.didascalia.getData()?trim?length gt 0 && cur_descrizione_immagine.didascalia.getData()?trim != "null"> 
181															<p class="caption">${cur_descrizione_immagine.didascalia.getData()}</p> 
182														</#if> 
183													</div> 
184												</#list> 
185											</#if> 
186										</div> 
187									</div> 
188								<#else> 
189									<#attempt> 
190										<#if currentObjectDefaultLanguage?? && currentObjectDefaultLanguage?has_content && currentObjectDefaultLanguage.getImmagini()?has_content> 
191											<div class="carousel-container carousel-no-ctrl transparent margin-top-em-1 margin-bottom-em-1 carousel-image-slide carousel-draggable"> 
192												<div class="tns-carousel tns-carousel-no-ctrl" data-tns-config="{&quot;items&quot;:1,&quot;autoplay&quot;:true,&quot;autoplayHoverPause&quot;:true}"> 
193													<#list currentObjectDefaultLanguage.getImmagini() as imm> 
194														<div class="item-with-caption"> 
195															<#if imm.getImmagine()?? && imm.getImmagine()?has_content && imm.getImmagine().getUrl()?? && imm.getImmagine().getUrl()?has_content> 
196																<img class="slide-image w-100" src="${imm.getImmagine().getUrl()}?width=${widthSliderImg}" alt="${imm.getTestoAlternativo()}"> 
197																<#if imm.getDidascalia()?? && imm.getDidascalia()?has_content && imm.getDidascalia()?trim?length gt 0 && imm.getDidascalia()?trim != "null"> 
198																	<p class="caption">${imm.getDidascalia()}</p> 
199																</#if> 
200															</#if> 
201														</div> 
202													</#list> 
203												</div> 
204											</div> 
205										</#if> 
206										<#recover> 
207 
208									</#attempt> 
209								</#if> 
210 
211								<div class="text-block text-block-center"> 
212									<div class="text text-block-left">${descrizione_due.getData()}</div> 
213								</div> 
214							</div> 
215 
216							<aside class="col-12 col-md-4"> 
217								<div class="sidebar sidebar-border padding-top-em-4 padding-bottom-em-4 padding-top-md-em-0 padding-bottom-md-em-0 mx-auto px-3"> 
218									<#if comune?? && comune.getData()?has_content> 
219										<div class="text-block text-block-sidebar text-block-left"> 
220											<div class="title-2"> 
221												<i class="fas fa-map-pin"></i> 
222												<span class="padding-left-em-1"><@liferay.language key="label.dove" /></span> 
223											</div> 
224											<#list comune.getSiblings() as cur_comune> 
225												<#if cur_comune.getData()?? && cur_comune.getData()?has_content && cur_comune.getData()?trim?length gt 0> 
226													<div class="text"> 
227														${cur_comune.getData()} 
228														<#if cur_comune.via_piazza.getData()?? && cur_comune.via_piazza.getData()?has_content && cur_comune.via_piazza.getData()?trim?length gt 0 && cur_comune.via_piazza.getData()?trim != "null"> 
229															${cur_comune.via_piazza.getData()} 
230														</#if> 
231														<#if cur_comune.cap.getData()?? && cur_comune.cap.getData()?has_content && cur_comune.cap.getData()?trim?length gt 0 && cur_comune.cap.getData()?trim != "null"> 
232															${cur_comune.cap.getData()} 
233														</#if> 
234													</div> 
235												</#if> 
236											</#list> 
237										</div> 
238									</#if> 
239									<#if data.getSiblings()?has_content> 
240										<div class="text-block text-block-sidebar text-block-left"> 
241											<div class="title-2"> 
242												<i class="far fa-calendar"></i> 
243												<span class="padding-left-em-1"><@liferay.language key="label.quando" /></span> 
244											</div> 
245											<#assign dataDa = "" /> 
246											<#assign dataA = "" /> 
247 
248											<#list data.getSiblings() as cur_data> 
249												<#assign dataDaT = cur_data.data_da.getData()> 
250												<#if dataDaT?has_content && dataDaT?trim?length gt 0> 
251													<#assign dataDa = dataDaT /> 
252												</#if> 
253												<#assign dataAT = cur_data.data_a.getData()> 
254												<#if dataAT?has_content && dataAT?trim?length gt 0> 
255													<#assign dataA = dataAT /> 
256												</#if> 
257											</#list> 
258 
259											<#if dataDa?has_content && dataDa?trim?length gt 0> 
260												<#assign dataDa = dataDa?trim /> 
261												<#assign dataDaDateObj = dateUtil.parseDate("yyyy-MM-dd", dataDa, locale)> 
262												<#assign dataDa = dateUtil.getDate(dataDaDateObj, "dd/MM/yyyy", locale) /> 
263											</#if> 
264 
265											<#if dataA?has_content && dataA?trim?length gt 0> 
266												<#assign dataA = dataA?trim /> 
267												<#assign dataADateObj = dateUtil.parseDate("yyyy-MM-dd", dataA, locale)> 
268												<#assign dataA = dateUtil.getDate(dataADateObj, "dd/MM/yyyy", locale) /> 
269											</#if> 
270											<div class="text">${dataDa} - ${dataA}</div> 
271										</div> 
272									</#if> 
273									<#if fascia_di_prezzo?? && fascia_di_prezzo.getData()?has_content && fascia_di_prezzo.getSiblings()?has_content> 
274										<div class="text-block text-block-sidebar text-block-left"> 
275											<div class="title-2"> 
276												<i class="fas fa-money-bill-wave"></i> 
277												<span class="padding-left-em-1"><@liferay.language key="label.costo" /></span> 
278											</div> 
279											<#list fascia_di_prezzo.getSiblings() as fascia_di_prezzo_cur> 
280												<#if fascia_di_prezzo_cur.getData()?? && fascia_di_prezzo_cur.getData()?has_content> 
281													<div class="text">${fascia_di_prezzo_cur.getData()} ${fascia_di_prezzo_cur.valore.getData()}</div> 
282												</#if> 
283											</#list> 
284										</div> 
285									</#if> 
286								</div> 
287							</aside> 
288						</div> 
289					</div> 
290				</article> 
291			</div> 
292		</div> 
293 
294 
295		<#if eventsrelated?has_content > 
296			<div class="container-fluid bg-gray"> 
297				<div class="row"> 
298					<div class="container padding-top-em-4 padding-bottom-em-5"> 
299						<div class="row"> 
300							<div class="col-12"> 
301								<div class="d-flex flex-justify-content-between flex-align-items-baseline"> 
302									<#assign site_eventi_custom_field = layout.getGroup().getExpandoBridge().getAttribute("eventi") /> 
303									<#assign value_eventi = "" /> 
304									<#list site_eventi_custom_field?keys as key> 
305										<#if key == locale> 
306											<#assign value_eventi = site_eventi_custom_field?values[key_index] /> 
307										</#if> 
308									</#list> 
309 
310									<div class="text text-top-events"> 
311										<@liferay.language key="label.ti.potrebbe.interessare" />: 
312									</div> 
313									<a class="link-showall" href="${value_eventi}"><@liferay.language key="label.vedi.tutti" /> 
314										<svg class="svg-inline--fa fa-angle-right fa-w-8" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-right" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512" data-fa-i2svg=""> 
315											<path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path> 
316										</svg> 
317									</a> 
318								</div> 
319							</div> 
320							<div class="col-12"> 
321								<div class="carousel-container carousel-no-ctrl transparent margin-top-em-1 tns-overflow-show carousel-draggable carousel-desktop-disabled"> 
322									<div class="tns-carousel tns-carousel-no-ctrl" data-tns-config="{&quot;disable&quot;:false,&quot;responsive&quot;:{&quot;768&quot;:{&quot;items&quot;:2},&quot;991&quot;:{&quot;disable&quot;:true}}}"> 
323										<#list eventsrelated as related> 
324											<#assign langId = themeDisplay.getLanguageId() /> 
325											<#assign contentByLocale = related.getContentByLocale(themeDisplay.getLanguageId()) /> 
326											<#assign document = saxReaderUtil.read(contentByLocale) > 
327											<#assign rootElement = document.getRootElement()> 
328 
329											<#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
330											<#assign relatedTitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
331 
332											<#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
333											<#assign relatedImmagineBanner = "" > 
334 
335											<#if xPathImmagineBanner?? && xPathImmagineBanner?has_content> 
336												<#if xPathImmagineBanner.selectSingleNode(rootElement)?? && xPathImmagineBanner.selectSingleNode(rootElement)?has_content> 
337													<#assign relatedImmagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
338												</#if> 
339											</#if> 
340 
341											<#assign xPathTestoAlternativoImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_banner']")> 
342											<#assign relatedTestoAlternativoImmagineBanner = "" > 
343											<#if xPathTestoAlternativoImmagineBanner?? && xPathTestoAlternativoImmagineBanner?has_content> 
344												<#if xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?? && xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?has_content> 
345													<#assign relatedTestoAlternativoImmagineBanner = xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
346												</#if> 
347											</#if> 
348 
349											<#assign url = "" > 
350											<#if relatedImmagineBanner?? && relatedImmagineBanner?has_content && relatedImmagineBanner?trim?length gt 0 > 
351												<#attempt> 
352													<#assign immagineBannerJson = relatedImmagineBanner?eval > 
353													<#assign url = "/documents/${immagineBannerJson.groupId}/${immagineBannerJson.classPK}/${immagineBannerJson.title}/${immagineBannerJson.uuid}?width=${widthRelatedImg}"> 
354													<#recover> 
355 
356												</#attempt> 
357											<#else> 
358												<#assign url = "" > 
359											</#if> 
360 
361											<#assign resourcePrimKey = related.getResourcePrimKey() /> 
362											<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourcePrimKey) /> 
363											<#assign assetEntryId = assetEntry.getEntryId() /> 
364 
365											<#assign categories = assetCategoryLocalService.getAssetEntryAssetCategories(assetEntryId) > 
366 
367											<#assign categoryNames = [] > 
368 
369											<#list categories as category> 
370												<#if vocabularyIdUmbria == category.getVocabularyId() > 
371													<#assign categoryNames = categoryNames + [category.getTitle(themeDisplay.getLanguageId())] > 
372												</#if> 
373											</#list> 
374 
375											<#assign xPathData = saxReaderUtil.createXPath("dynamic-element[@name='data']")> 
376											<#assign xPathDataDa = saxReaderUtil.createXPath("dynamic-element[@name='data_da']")> 
377											<#assign xPathDataA = saxReaderUtil.createXPath("dynamic-element[@name='data_a']")> 
378											<#assign relatedDatas = xPathData.selectNodes(rootElement)> 
379 
380											<#assign relatedDataDa = "" /> 
381											<#assign relatedDataA = "" /> 
382 
383											<#list relatedDatas as relatedData> 
384												<#assign relatedDataDaT = xPathDataDa.selectSingleNode(relatedData).getStringValue()> 
385												<#if relatedDataDaT?has_content && relatedDataDaT?trim?length gt 0 > 
386													<#assign relatedDataDa = relatedDataDaT /> 
387												</#if> 
388												<#assign relatedDataAT = xPathDataA.selectSingleNode(relatedData).getStringValue()> 
389												<#if relatedDataAT?has_content && relatedDataAT?trim?length gt 0 > 
390													<#assign relatedDataA = relatedDataAT /> 
391												</#if> 
392											</#list> 
393 
394											<#if relatedDataDa?has_content && relatedDataDa?trim?length gt 0 > 
395												<#assign relatedDataDa = relatedDataDa?trim /> 
396												<#assign relatedDataDaDateObj = dateUtil.parseDate("yyyy-MM-dd", relatedDataDa, locale)> 
397												<#assign relatedDataDa = dateUtil.getDate(relatedDataDaDateObj, "dd/MM/yyyy", locale) /> 
398											</#if> 
399 
400											<#if relatedDataA?has_content && relatedDataA?trim?length gt 0 > 
401												<#assign relatedDataA = relatedDataA?trim /> 
402												<#assign relatedDataADateObj = dateUtil.parseDate("yyyy-MM-dd", relatedDataA, locale)> 
403												<#assign relatedDataA = dateUtil.getDate(relatedDataADateObj, "dd/MM/yyyy", locale) /> 
404											</#if> 
405 
406											<div> 
407												<div class="card card-horizontal card-event-1 card-event-default"> 
408													<a class="card-link" href="/-/${related.getUrlTitle(locale)}"></a> 
409													<span class="card-row"> 
410    			         						<span class="card-image aspect-ratio card-item-first" href="/-/${related.getUrlTitle(locale)}"> 
411    			         							<img class="aspect-ratio-item aspect-ratio-item-center-ceil aspect-ratio-item-fluid" src="${url}" alt="${relatedTestoAlternativoImmagineBanner}"> 
412    			         						</span> 
413        	                                    <button data-id="${related.getArticleId()}" data-tom="false" class="link link-tripplanner link-tripplanner-1 link-tripplanner-top-right margin-top-em-2 margin-right-em-1" data-tom="false"> 
414            	                          	        <i class="far fa-heart text-red"></i><i class="fas fa-heart text-red" style="display:none"></i> 
415            	                                </button> 
416    			         						<span class="card-body"> 
417    				                    			<div class="row"> 
418    					                      			<div class="col-12"> 
419    					                      				<#list categoryNames as categoryName> 
420																<div class="badge badge-red">${categoryName}</div><a class="header-title title-5" href="#"></a> 
421															</#list> 
422    					                      			</div> 
423    					                      			<div class="col-12"> 
424    					                      				<span class="card-subtitle title-6"> 
425    					                      					<i class="far fa-calendar"></i>${relatedDataDa} - ${relatedDataA} 
426    					                      				</span> 
427    					                      			</div> 
428    					                      			<div class="col-12"> 
429    					                      				<span class="card-title">${relatedTitolo}</span> 
430    					                       			</div> 
431    				                     			</div> 
432    			                    			</span> 
433    			                  			</span> 
434												</div> 
435											</div> 
436											<#assign relatedDataDa = "" /> 
437											<#assign relatedDataA = "" /> 
438										</#list> 
439									</div> 
440								</div> 
441							</div> 
442						</div> 
443					</div> 
444				</div> 
445			</div> 
446		</#if> 
447 
448		<#if attrattoresByCoord?? && attrattoresByCoord?has_content && attrattoresByCoord?size gt 0 > 
449			<aside class="container-fluid bg-white"> 
450				<div class="row"> 
451					<div class="container"> 
452						<div class="row"> 
453							<div class="col-12 col-md-10 offset-md-1"> 
454								<div class="text-block text-block-center"> 
455									<div class="title-2"> 
456										<#if titolo1?has_content && titolo1?trim?length gt 0 > 
457											${titolo1} 
458										<#else> 
459											<@liferay.language key="label.nei.dintorni" /> 
460										</#if> 
461									</div> 
462								</div> 
463							</div> 
464						</div> 
465 
466						<div class="row"> 
467							<div class="col-12"> 
468								<div class="row"> 
469									<div class="col-12 padding-bottom-em-3"> 
470										<div class="carousel-container transparent margin-top-em-1 margin-bottom-em-2"> 
471											<div class="tns-carousel tns-carousel-default"> 
472												<#list attrattoresByCoord as relatedCoord> 
473													<#assign langId = themeDisplay.getLanguageId() /> 
474													<#assign contentByLocale = relatedCoord.getContentByLocale(themeDisplay.getLanguageId()) /> 
475													<#assign document = saxReaderUtil.read(contentByLocale) > 
476													<#assign rootElement = document.getRootElement()> 
477 
478													<#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
479													<#assign relatedTitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
480 
481													<#assign xPathSottotitolo = saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")> 
482													<#assign relatedSottotitolo = xPathSottotitolo.selectSingleNode(rootElement).getStringValue()> 
483 
484													<#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
485													<#assign relatedImmagineBanner = "" > 
486 
487													<#if xPathImmagineBanner?? && xPathImmagineBanner?has_content> 
488														<#if xPathImmagineBanner.selectSingleNode(rootElement)?? && xPathImmagineBanner.selectSingleNode(rootElement)?has_content> 
489															<#assign relatedImmagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
490														</#if> 
491													</#if> 
492 
493													<#assign xPathTestoAlternativoImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_banner']")> 
494													<#assign relatedTestoAlternativoImmagineBanner = "" > 
495													<#if xPathTestoAlternativoImmagineBanner?? && xPathTestoAlternativoImmagineBanner?has_content> 
496														<#if xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?? && xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?has_content> 
497															<#assign relatedTestoAlternativoImmagineBanner = xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
498														</#if> 
499													</#if> 
500 
501													<#if relatedImmagineBanner?has_content && relatedImmagineBanner?trim?length gt 0 > 
502														<#assign immagineBannerJson = relatedImmagineBanner?eval > 
503														<#assign url = "/documents/${immagineBannerJson.groupId}/${immagineBannerJson.classPK}/${immagineBannerJson.title}/${immagineBannerJson.uuid}?width=${widthCardImg}"> 
504													<#else> 
505														<#assign url = "" > 
506													</#if> 
507 
508													<#assign resourcePrimKey = relatedCoord.getResourcePrimKey() /> 
509													<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourcePrimKey) /> 
510													<#assign assetEntryId = assetEntry.getEntryId() /> 
511 
512													<#assign categories = assetCategoryLocalService.getAssetEntryAssetCategories(assetEntryId) > 
513 
514													<#assign categoryNames = [] > 
515 
516													<#list categories as category> 
517														<#if vocabularyIdUmbria == category.getVocabularyId() > 
518															<#assign categoryNames = categoryNames + [category.getTitle(themeDisplay.getLanguageId())] > 
519														</#if> 
520													</#list> 
521 
522													<div> 
523														<div class="card card-1 card-offerta"> 
524															<a class="card-link" href="/-/${relatedCoord.getUrlTitle(locale)}"></a> 
525															<div class="card-header"> 
526																<div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
527																	<img src="${url}" alt="${relatedTestoAlternativoImmagineBanner}"> 
528																</div> 
529																<button data-id="${relatedCoord.getArticleId()}" data-tom="false" class="link link-tripplanner link-tripplanner-1 link-tripplanner-top-right margin-top-em-2 margin-right-em-1" data-tom="false"> 
530																	<i class="far fa-heart text-red"></i><i class="fas fa-heart text-red" style="display:none"></i> 
531																</button> 
532																<div class="card-header-info"> 
533																	<div class="card-badges"> 
534																		<#list categoryNames as categoryName> 
535																			<div class="badge badge-red"> 
536																				${categoryName} 
537																			</div> 
538																			<div class="hidden" id="tagmanager_item"> 
539																				<span id="tagmanager_item_id">${relatedCoord.getArticleId()}</span> 
540																				<span id="tagmanager_item_category">${categoryName}</span> 
541																				<span id="tagmanager_item_name">${relatedTitolo}</span> 
542																				<span id="tagmanager_item_list_name">${categoryName}</span> 
543																				<span id="tagmanager_item_list_id">${categoryName}</span> 
544																				<span id="tagmanager_item_brand">${categoryName}</span> 
545																				<span id="tagmanager_index">${relatedCoord_index}</span> 
546																			</div> 
547																			<a class="header-title title-5" href="#"></a> 
548																		</#list> 
549																	</div> 
550																</div> 
551															</div> 
552															<div class="card-body"> 
553																<a class="card-body-title title-4" href="/-/${relatedCoord.getUrlTitle(locale)}"> 
554																	${relatedTitolo} 
555																</a> 
556																<div class="card-body-subtitle"> 
557																	${relatedSottotitolo} 
558																</div> 
559															</div> 
560															<div class="card-info"> 
561																<span class="info"></span> 
562															</div> 
563														</div> 
564													</div> 
565 
566													<#assign categoryNames = [] > 
567													<#assign categories = [] > 
568												</#list> 
569											</div> 
570										</div> 
571									</div> 
572								</div> 
573							</div> 
574						</div> 
575					</div> 
576				</div> 
577			</aside> 
578		</#if> 
579 
580 
581 
582		<script> 
583			$("#backLink").click(function(event) { 
584				event.preventDefault(); 
585				history.back(1); 
586			}); 
587		</script> 
588		<!-- Go to www.addthis.com/dashboard to customize your tools --> 
589		<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5c629e6303f68c9f"></script> 
Les meilleures offres pour vous