Aggregatore Risorse

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

Tom search

Le migliori offerte per te