Asset-Herausgeber

Fehler bei der Verarbeitung der Vorlage.
Failed to "?eval" string with this error:

---begin-message---
Syntax error in ?eval-ed string in line 5, column 82:
Lexical error: encountered "u" (117), after "\"Ciclovia Assisi \\".
---end-message---

The failing expression:
==> relatedImmagineBanner?eval  [in template "20099#20135#33814" at line 573, column 103]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign immagineBannerJson = relatedI...  [in template "20099#20135#33814" at line 573, column 73]
----
1<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")> 
2 
3<#assign attrattoreStructureKey = structureService.getStructureAttrattoreKey()> 
4<#assign attrattoreStructureId = structureService.getStructureAttrattoreId()> 
5 
6<#assign itinerarioStructureKey = structureService.getStructureItinerarioKey()> 
7<#assign itinerarioStructureId = structureService.getStructureItinerarioId()> 
8 
9<#assign elasticService = serviceLocator.findService("it.inera.elastic.service.ElasticService")> 
10<#assign journalArticleId = .vars['reserved-article-id'].data/> 
11 
12<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
13<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
14<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
15 
16<#assign vocabularyIdUmbria = structureService.getVocabularyIdByVocabularyName("Vocabolario Umbria") > 
17<#assign vocabularyIdTerritori = structureService.getVocabularyIdByVocabularyName("Territori") > 
18 
19<#if coordinate_principali.getData()?has_content && coordinate_principali.getData()?trim?length gt 0 > 
20	<#assign coordinatePrincipaliJson = coordinate_principali.getData()?eval > 
21	<#if coordinatePrincipaliJson.latitude?has_content && coordinatePrincipaliJson.latitude?trim?length gt 0 > 
22		<#assign latitude = coordinatePrincipaliJson.latitude?c > 
23	</#if> 
24	<#if coordinatePrincipaliJson.longitude?has_content && coordinatePrincipaliJson.longitude?trim?length gt 0 > 
25		<#assign longitude = coordinatePrincipaliJson.longitude?c > 
26	</#if> 
27<#else> 
28	<#assign latitude = "" > 
29	<#assign longitude = "" > 
30</#if> 
31 
32<#assign currentArticle = journalArticleLocalService.getArticle(groupId, journalArticleId) /> 
33 
34<#assign titolo1 = "" /> 
35<#assign testo1 = "" /> 
36 
37<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("titolo_fascia_1")?has_content> 
38	<#assign titolo1_custom_field = currentArticle.getExpandoBridge().getAttribute("titolo_fascia_1") /> 
39	<#list titolo1_custom_field?keys as key> 
40	    <#if key == locale> 
41	        <#assign titolo1 = titolo1_custom_field?values[key_index] /> 
42	    </#if> 
43	</#list> 
44</#if> 
45 
46<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("testo_fascia_1")?has_content> 
47	<#assign testo1_custom_field = currentArticle.getExpandoBridge().getAttribute("testo_fascia_1") /> 
48	<#list testo1_custom_field?keys as key> 
49	    <#if key == locale> 
50	        <#assign testo1 = testo1_custom_field?values[key_index] /> 
51	    </#if> 
52	</#list> 
53</#if> 
54 
55<#assign titolo2 = "" /> 
56<#assign testo2 = "" /> 
57 
58<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("titolo_fascia_2")?has_content> 
59	<#assign titolo2_custom_field = currentArticle.getExpandoBridge().getAttribute("titolo_fascia_2") /> 
60	<#list titolo2_custom_field?keys as key> 
61	    <#if key == locale> 
62	        <#assign titolo2 = titolo2_custom_field?values[key_index] /> 
63	    </#if> 
64	</#list> 
65</#if> 
66 
67<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("testo_fascia_2")?has_content> 
68	<#assign testo2_custom_field = currentArticle.getExpandoBridge().getAttribute("testo_fascia_2") /> 
69	<#list testo2_custom_field?keys as key> 
70	    <#if key == locale> 
71	        <#assign testo2 = testo2_custom_field?values[key_index] /> 
72	    </#if> 
73	</#list> 
74</#if> 
75 
76<#assign titolo3 = "" /> 
77<#assign testo3 = "" /> 
78 
79<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("titolo_fascia_3")?has_content> 
80	<#assign titolo3_custom_field = currentArticle.getExpandoBridge().getAttribute("titolo_fascia_3") /> 
81	<#list titolo3_custom_field?keys as key> 
82	    <#if key == locale> 
83	        <#assign titolo3 = titolo3_custom_field?values[key_index] /> 
84	    </#if> 
85	</#list> 
86</#if> 
87 
88<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("testo_fascia_3")?has_content> 
89	<#assign testo3_custom_field = currentArticle.getExpandoBridge().getAttribute("testo_fascia_3") /> 
90	<#list testo3_custom_field?keys as key> 
91	    <#if key == locale> 
92	        <#assign testo3 = testo3_custom_field?values[key_index] /> 
93	    </#if> 
94	</#list> 
95</#if> 
96 
97<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
98<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
99<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
100 
101<#assign categoryList = assetCategoryLocalService.getAssetEntryAssetCategories(currentArticleAssetEntryId) > 
102 
103<#assign categoryListIds = [] > 
104<#assign municipalityName = "" > 
105 
106<#list categoryList as category> 
107	<#assign categoryListIds = categoryListIds + [category.getCategoryId()]> 
108</#list> 
109 
110<#list categoryList as category> 
111	<#if vocabularyIdTerritori == category.getVocabularyId() > 
112		<#assign municipalityName = category.getTitle(themeDisplay.getLanguageId()) > 
113		<#break> 
114	</#if> 
115</#list> 
116 
117<#if !municipalityName?has_content> 
118	<#if comune.getSiblings()?has_content>  
119		<#list comune.getSiblings() as cur_comune>  
120			<#assign municipalityName = cur_comune.getData() > 
121			<#break> 
122		</#list>  
123	</#if> 
124</#if> 
125<#assign resultsByCoord = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, latitude, longitude, distanza.getData(), attrattoreStructureKey, attrattoreStructureId?c, locale, "12", null , null, journalArticleId, null, null, null) /> 
126 
127<#assign results = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, latitude, longitude, distanza.getData(), itinerarioStructureKey, itinerarioStructureId?c, locale, "6", null , null, journalArticleId, null, null, null) /> 
128 
129<#assign widthBannerImg = propsUtil.get("image.scale.fullpage") /> 
130<#assign widthSliderImg = propsUtil.get("image.slider.testobarra.height") /> 
131<#assign tomBaseImagePath = propsUtil.get("tom.base.image.url") /> 
132<#assign widthCardImg = propsUtil.get("image.scale.allpage") /> 
133 
134<div class="container-fluid"> 
135    <div class="row"> 
136  		<div class="header-block header-block-1 padding-top-em-5 padding-bottom-em-5 header-block-image-main"> 
137        	<img class="bg" src="${immagine_banner.getData()}?width=${widthBannerImg}" alt="${testo_alternativo_immagine_banner.getData()}"> 
138        	<div class="container title title-main"> 
139          		<div class="row"> 
140            		<div class="col-12"> 
141            		</div> 
142          		</div> 
143        	</div> 
144      	</div> 
145      	<div class="map map-container map-container-header hidden"> 
146	        <div class="map-content"> 
147          		<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> 
148    		</div> 
149      	</div> 
150    </div> 
151</div> 
152 
153<div class="container-fluid bg-white"> 
154    <div class="row"> 
155  		<article class="container bridge bg-white translate-top-md-rem-5 translate-top-lg-rem-10"> 
156        	<div class="row"> 
157          		<div class="col-12"> 
158          		    <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>   
159            		<div class="text-center padding-top-em-2"> 
160              			<div class="link-1 link-toggle-map" data-target="#header-map" data-inactive="<@liferay.language key="label.visualizza.sulla.mappa" />" data-active="<@liferay.language key="label.visualizza.foto" />"><@liferay.language key="label.visualizza.sulla.mappa" /></div> 
161            		</div> 
162            		<div class="link-tripplanner-container"> 
163                		<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
164              			<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"> 
165                			<i class="far fa-heart text-red"></i> 
166                			<i class="fas fa-heart text-red" style="display:none"></i> 
167                			<span class="label hidden display-inline-lg"><@liferay.language key="label.aggiungi.al.mio.viaggio" /></span> 
168              			</a> 
169            		</div> 
170      			</div> 
171          		<div class="col-12 col-md-10 offset-md-1"> 
172            		<div class="text-block text-block-center"> 
173            		    <h1 class="title-2 margin-top-em-0">${titolo.getData()}</h1> 
174              			<div class="text text-block-left padding-top-em-1">${descrizione.getData()}</div> 
175            		</div> 
176          		</div> 
177        	</div> 
178      	</article> 
179    </div> 
180</div> 
181 
182 
183 
184<#if url_image_instagram?? && url_image_instagram.getSiblings()?has_content || descrizione_immagine?? && descrizione_immagine.getSiblings()?has_content> 
185    <div class="container-fluid bg-white"> 
186        <div class="row"> 
187            <div class="carousel-container carousel-no-ctrl transparent margin-top-md-em-minus-4 margin-top-lg-em-minus-9 margin-bottom-em-1 tns-overflow-show carousel-image-slide carousel-draggable"> 
188                <div class="tns-carousel tns-carousel-no-ctrl" data-tns-config="{&quot;autoWidth&quot;:true,&quot;items&quot;:2,&quot;autoplay&quot;:false,&quot;responsive&quot;:{&quot;768&quot;:{&quot;items&quot;:3},&quot;992&quot;:{&quot;items&quot;:4}}}"> 
189                    <#if url_image_instagram?? && url_image_instagram.getData()?has_content> 
190                        <#-- immagini di instagram presenti --> 
191                        <#list url_image_instagram.getSiblings() as cur_url_image_instagram> 
192                         
193                            <#if cur_url_image_instagram.getData()?ends_with("/")> 
194                                <#assign sizeParameter = "media/?size=l" /> 
195                            <#else> 
196                                <#assign sizeParameter = "/media/?size=l" /> 
197                            </#if> 
198                         
199                            <div> 
200                                <div class="card card-type-asset image-card card-2 slide-image-instagram"> 
201                                    <img class="slide-image" src="${cur_url_image_instagram.getData()}${sizeParameter}" alt="${cur_url_image_instagram.alt_text_image_instagram.getData()}"> 
202                                    <i class="fab fa-instagram"></i> 
203                                </div> 
204                            </div>  
205                        </#list>  
206                    </#if> 
207                    <#if descrizione_immagine?? && descrizione_immagine.getSiblings()?has_content> 
208                        <#-- immagini della document library presenti --> 
209                        <#list descrizione_immagine.getSiblings() as cur_descrizione_immagine> 
210                            <div> 
211                                <div class="card card-type-asset image-card card-2 slide-image-instagram"> 
212                                    <img class="slide-image" src="${cur_descrizione_immagine.immagine.getData()}?width=${widthSliderImg}" alt="${cur_descrizione_immagine.testo_alternativo.getData()}"> 
213                                </div> 
214                            </div>  
215                        </#list> 
216                    </#if> 
217                </div> 
218            </div> 
219        </div> 
220    </div> 
221</#if> 
222 
223<div class="container-fluid bg-white"> 
224    <div class="row"> 
225        <div class="container"> 
226            <div class="row"> 
227                <div class="col-12 col-md-10 offset-md-1"> 
228                    <div class="text-block text-block-center"> 
229                        <div class="text text-block-left"> 
230                            ${descrizione_due.getData()} 
231                        </div> 
232                    </div> 
233                </div> 
234            </div> 
235        </div> 
236    </div> 
237</div> 
238 
239<div class="container-fluid bg-white"> 
240    <div class="row"> 
241        <div class="container"> 
242            <div class="row"> 
243                <div class="col-12 col-md-10 offset-md-1"> 
244                    <div class="text-block text-block-center"> 
245                        <div class="title-2"> 
246              	            <#if titolo1?has_content && titolo1?trim?length gt 0 > 
247              		            ${titolo1} 
248              	            <#else> 
249              		            <@liferay.language key="label.esplora.i.dintorni" /> 
250			  	            </#if> 
251                        </div> 
252                        <div class="text"> 
253              	            <#if testo1?has_content && testo1?trim?length gt 0 > 
254              		            ${testo1} 
255              	            <#else> 
256              		            <@liferay.language key="label.principali.attrazioni" /> 
257			  	            </#if> 
258                        </div> 
259                    </div> 
260                </div> 
261            </div> 
262        </div> 
263    </div> 
264</div> 
265 
266<div class="container-fluid bg-white"> 
267    <div class="row"> 
268        <div class="container bridge bridge-md-bottom margin-top-em-2 margin-bottom-em-2 margin-top-md-em-minus-10 margin-bottom-md-em-0"> 
269            <div class="row"> 
270                <div class="col-12"> 
271                    <div class="carousel-container transparent carousel-no-nav"> 
272                        <div class="tns-carousel tns-carousel-default" data-tns-config="{&quot;loop&quot;:true,&quot;items&quot;:2,&quot;responsive&quot;:{&quot;768&quot;:{&quot;items&quot;:3},&quot;991&quot;:{&quot;items&quot;:4}}}"> 
273                            <#list resultsByCoord as relatedCoord> 
274            					<#assign langId = themeDisplay.getLanguageId() /> 
275            					<#assign contentByLocale = relatedCoord.getContentByLocale(themeDisplay.getLanguageId()) /> 
276            					<#assign document = saxReaderUtil.read(contentByLocale) > 
277            					<#assign rootElement = document.getRootElement()> 
278            				 
279            					<#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
280            					<#assign relatedTitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
281            					 
282            					<#assign xPathSottotitolo = saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")> 
283            					<#assign relatedSottotitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
284            					 
285            					<#assign xPathCoordinatePrincipali = saxReaderUtil.createXPath("dynamic-element[@name='coordinate_principali']")> 
286            					<#assign relatedCoordinatePrincipali = xPathCoordinatePrincipali.selectSingleNode(rootElement).getStringValue()> 
287            					 
288            					<#if relatedCoordinatePrincipali?has_content && relatedCoordinatePrincipali?trim?length gt 0 > 
289            						<#assign coordinatePrincipaliRelatedJson = relatedCoordinatePrincipali?eval > 
290            						<#assign latitudeRelated = coordinatePrincipaliRelatedJson.latitude > 
291            						<#assign longitudeRelated = coordinatePrincipaliRelatedJson.longitude > 
292            					<#else> 
293            						<#assign latitudeRelated = "" > 
294            						<#assign longitudeRelated = "" > 
295            					</#if> 
296            					 
297            					<#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
298            					<#assign relatedImmagineBanner = "" > 
299            					 
300            					<#if xPathImmagineBanner?? && xPathImmagineBanner?has_content> 
301                		        	<#if xPathImmagineBanner.selectSingleNode(rootElement)?? && xPathImmagineBanner.selectSingleNode(rootElement)?has_content> 
302            							<#assign relatedImmagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
303            						</#if> 
304            					</#if> 
305            					 
306            					<#assign xPathTestoAlternativoImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_banner']")> 
307            					<#assign relatedTestoAlternativoImmagineBanner = "" > 
308            					<#if xPathTestoAlternativoImmagineBanner?? && xPathTestoAlternativoImmagineBanner?has_content> 
309                		        	<#if xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?? && xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?has_content> 
310            							<#assign relatedTestoAlternativoImmagineBanner = xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
311            						</#if> 
312            					</#if> 
313					 
314            					<#if relatedImmagineBanner?has_content && relatedImmagineBanner?trim?length gt 0 > 
315            						<#assign immagineBannerJson = relatedImmagineBanner?eval > 
316            						<#assign url = "/documents/${immagineBannerJson.groupId}/${immagineBannerJson.classPK}/${immagineBannerJson.title}/${immagineBannerJson.uuid}?width=${widthCardImg}"> 
317            					<#else> 
318            						<#assign url = "" > 
319            					</#if> 
320					 
321            					<div> 
322						            <div class="card card-type-asset image-card card-2 no-desc card-small card-geolocalized card-territory" data-lat="${latitudeRelated}" data-lng="${longitudeRelated}" data-url="/-/${relatedCoord.getUrlTitle()}" data-title="${relatedTitolo}"> 
323		                                <a class="aspect-ratio card-item-first aspect-ratio-16-20" href="/-/${relatedCoord.getUrlTitle()}" draggable data-id="${relatedCoord.getArticleId()}" data-tom="true"> 
324		                                    <img class="aspect-ratio-item aspect-ratio-item-center-middle aspect-ratio-item-fluid" src="${url}" alt="${relatedTestoAlternativoImmagineBanner}"> 
325		                    	            <span class="sticker sticker-bottom-left"> 
326    			                  		        <div class="title title-4"> 
327    			                  		            ${relatedTitolo} 
328    			                  		        </div> 
329    			                    	        <div class="text description"></div> 
330    			                            </span> 
331		                                </a> 
332	                  	            </div> 
333                	            </div> 
334				            </#list> 
335                        </div> 
336                    </div> 
337                </div> 
338            </div> 
339        </div> 
340        <div class="map map-container map-banner hidden display-md"> 
341            <div class="map-content"> 
342                <div class="leaflet-interactive-map map-summary-territories" id="map-detail" data-kml="../undefined"></div> 
343            </div> 
344        </div> 
345    </div> 
346</div> 
347 
348 
349<#assign lang = "it"/> 
350<#if themeDisplay.getLanguageId()?contains("_")> 
351    <#assign lang = themeDisplay.getLanguageId()?split("_")[0]/>     
352<#else> 
353	<#assign lang = themeDisplay.getLanguageId()/>    
354</#if> 
355<#assign tomApi = serviceLocator.findService("it.inera.tom.api.TOMAPI")> 
356 
357<#if municipalityName?has_content && municipalityName?trim?length gt 0 && lang?has_content && lang?trim?length gt 0 && tomApi?has_content> 
358 
359<#assign relatedOffers = tomApi.getJsonOffersListResultByMunicipality(municipalityName, lang) /> 
360<#if relatedOffers?? && relatedOffers?has_content> 
361	<#assign offerResponse = relatedOffers.getResponse()> 
362	<#if offerResponse?? && offerResponse?has_content> 
363		<#assign offerResults = offerResponse.getResults()> 
364		<#if offerResults?? && offerResults?has_content> 
365	        <aside class="container-fluid bg-white" id="hideable"> 
366    		    <div class="row"> 
367		            <div class="container padding-top-em-3"> 
368		                <div class="row"> 
369		                    <div class="col-12 col-md-10 offset-md-1 margin-bottom-lg-em-0 margin-bottom-em-2"> 
370		                        <div class="text-block text-block-center"> 
371		                            <div class="title-2"> 
372		                                <#if municipalityName?has_content> 
373		              	                    <@liferay.language key="label.le.migliori.offerte.a" /> ${municipalityName} 
374		                                <#else> 
375		              	                    <@liferay.language key="label.le.migliori.offerte" /> 
376		                                </#if> 
377		                            </div> 
378		                            <div class="text"> 
379		                                <@liferay.language key="label.proposte.vivere.umbria" /> 
380	                                </div> 
381	                            </div> 
382		                    </div> 
383		                </div> 
384	 
385		                <div class="row"> 
386		                    <div class="col-12"> 
387		                        <div class="d-flex flex-justify-content-end"> 
388		                            <a class="link-showall" href="/offerte-luogo?municipality=${municipalityName}"><@liferay.language key="label.vedi.tutte" /> 
389		                                <i class="fas fa-angle-right"></i> 
390	                                </a> 
391		                        </div> 
392		                    </div> 
393		                    <div class="col-12"> 
394		                        <div class="row"> 
395		                            <div class="col-12 padding-bottom-em-3"> 
396		                                <div class="carousel-container transparent margin-top-em-1 margin-bottom-em-2"> 
397		                                    <div class="tns-carousel tns-carousel-default"> 
398		                  	                    <#list offerResults as offerResult> 
399			                  	                    <div> 
400			                                            <div class="card card-1 card-offerta has-info-commercial"> 
401			                                                <a class="card-link" href="/dettaglio-offerta/-/dettaglio/${offerResult.getSlug()}_${offerResult.getId()}_${offerResult.getType()}"></a> 
402                        			                        <div class="card-header"> 
403    			                                                <div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
404                        			                          		<#if offerResult.getGalleries()?has_content> 
405                        			                          			<#if offerResult.getGalleries().getImages()?has_content && offerResult.getGalleries().getImages()?size gt 0> 
406                        			                          				<#assign file = ""/> 
407                        			                          				<#assign alt = ""/> 
408                        			                          				<#if offerResult.getGalleries().getImages()[0].getFile()?has_content> 
409                        			                          					<#assign file = tomBaseImagePath + offerResult.getGalleries().getImages()[0].getFile()/> 
410                        			                          				<#else> 
411                        			                          					<#assign file = "/o/umbria-theme/images/loghi/logo_no_image.png"/> 
412                        			                          				</#if> 
413                        			                          				<#if offerResult.getGalleries().getImages()[0].getAlt()?has_content> 
414                        			                          					<#assign alt = offerResult.getGalleries().getImages()[0].getAlt()/> 
415                        			                          				</#if> 
416                        			                          				<img src="${file}?attribute[width]=354" alt="${alt}"> 
417                        			                          			</#if> 
418                        			                          		<#else> 
419                        			                          			<#assign file = "/o/umbria-theme/images/loghi/logo_no_image.png"/> 
420                        			                          			<img src="${file}?attribute[width]=354" alt="logo_no_image"> 
421                        			                          		</#if> 
422    	                          		                        </div> 
423    	                          		                        <a class="link link-tripplanner link-tripplanner-top-right margin-top-em-2 margin-right-em-1" href="/dettaglio-offerta/-/dettaglio/${offerResult.getSlug()}_${offerResult.getId()}_${offerResult.getType()}" data-id="${offerResult.getId()}" data-tom="true"> 
424    	                          		  	                        <i class="far fa-heart text-red"></i> 
425    	                          		  	                        <i class="fas fa-heart text-red" style="display:none;"></i> 
426    	                          		                        </a> 
427    			                                                <div class="card-header-info"> 
428    			                                                    <div class="card-badges"> 
429        								                                <div class="badge badge-light-blue"> 
430        										                            <#if offerResult.getType() == 'guide'> 
431        										  		                        <@liferay.language key="label.guide" /> 
432        										                            </#if> 
433        										                            <#if offerResult.getType() == 'travelagency'> 
434        										  		                        <@liferay.language key="label.pacchetti.turistici" /> 
435        										                            </#if> 
436        										                            <#if offerResult.getType() == 'consortium'> 
437        										  		                        <@liferay.language key="label.pacchetti.turistici" /> 
438        										                            </#if> 
439        										                            <#if offerResult.getType() == 'accommodation'> 
440        										  		                        <@liferay.language key="label.accommodation" /> 
441        										                            </#if> 
442        								                                </div> 
443        								                            </div> 
444    			                                                    <div class="header-title title-5"> 
445    			                                                    </div> 
446    			                                                </div> 
447    			                                            </div> 
448    			                                            <#if offerResult?has_content> 
449    			                                            <div class="card-body"> 
450        		                                                <div class="card-body-title title-4"> 
451        		                                                    ${offerResult.getTitle()} 
452        			                                            </div> 
453        			                                            <#if offerResult.getSubtitle()?has_content> 
454        			                                            <div class="card-body-subtitle"> 
455        			                                                ${offerResult.getSubtitle()} 
456        			                                            </div> 
457        			                                            </#if> 
458        			                                        </div> 
459        			                                        </#if> 
460    			                                            <div class="card-info card-info-readmore"> 
461    			                                                <div class="info hidden"><@liferay.language key="label.continua.a.leggere" /></div> 
462    			                                            </div> 
463    			                                            <div class="card-info"> 
464    			                        	                    <span class="info"> 
465    			                        		                    <!--<a href="#" class="text-light-blue text-bold"> 
466    			                        		                            <i class="fas fa-map-pin"></i> 
467    	                        		                            </a>--> 
468    		                        		                    </span> 
469    			                                            </div> 
470    			                                            <div class="card-info card-info-commercial"> 
471        		                                                <#if offerResult.getDuration()?has_content && offerResult.getDuration().getCount()?has_content && offerResult.getDuration().getType()?has_content> 
472    				                                                <div class="info info-commercial"> 
473    				                                                    <div class="label"><@liferay.language key="label.durata" /></div> 
474    				                                                    <div class="title text-bold"> 
475    				                                                        ${offerResult.getDuration().getCount()} ${offerResult.getDuration().getType()} 
476    			                                                        </div> 
477    				                                                </div> 
478    			                                                </#if> 
479    			                                                <div class="info info-commercial"> 
480    			                                                    <div class="label"> 
481    			                                                        <@liferay.language key="label.a.partire.da" /> 
482    		                                                        </div> 
483    		                                                        <#if offerResult.getMinimumPrice()?has_content> 
484    			                                                    <div class="title text-bold"> 
485    			                                                        <@liferay.language key="label.euro" /> ${offerResult.getMinimumPrice()} 
486    		                                                        </div> 
487    		                                                        </#if> 
488    			                                                </div> 
489    			                                            </div> 
490			                                            </div> 
491			                                        </div> 
492		                  	                    </#list> 
493		                                    </div> 
494		                                </div> 
495		                            </div> 
496		                        </div> 
497		                    </div> 
498	                    </div> 
499		            </div> 
500		        </div> 
501		    </aside> 
502  	    </#if> 
503	</#if> 
504</#if> 
505 
506</#if> 
507 
508<#if results?size gt 0 > 
509    <aside class="container-fluid bg-white"> 
510        <div class="row"> 
511            <div class="container padding-top-em-3"> 
512                <div class="row"> 
513                    <div class="col-12 col-md-10 offset-md-1"> 
514                        <div class="text-block text-block-center"> 
515                            <div class="title-2"> 
516                  	            <#if titolo2?has_content && titolo2?trim?length gt 0 > 
517                  		            ${titolo2} 
518                  	            <#else> 
519                  		            <@liferay.language key="label.potrebbe.interessarti.anche" /> 
520    			  	            </#if> 
521                            </div> 
522                            <div class="text"> 
523                  	            <#if testo2?has_content && testo2?trim?length gt 0 > 
524                  		            ${testo2} 
525                  	            <#else> 
526                  		            <@liferay.language key="label.scopri.proposte.uniche" /> 
527    			  	            </#if> 
528                            </div> 
529                        </div> 
530                    </div> 
531                </div> 
532            </div> 
533        </div> 
534     
535        <div class="row"> 
536            <div class="container padding-top-em-1 padding-bottom-em-5"> 
537                <div class="row"> 
538                    <div class="col-12"> 
539                        <div class="row"> 
540                            <div class="col-12 padding-bottom-em-3"> 
541                                <div class="carousel-container transparent margin-top-em-1 margin-bottom-em-2"> 
542                                    <div class="tns-carousel tns-carousel-default"> 
543                                      	<#list results as related> 
544                    						<#assign langId = themeDisplay.getLanguageId() /> 
545                    						<#assign contentByLocale = related.getContentByLocale(themeDisplay.getLanguageId()) /> 
546                    						<#assign document = saxReaderUtil.read(contentByLocale) > 
547                    						<#assign rootElement = document.getRootElement()> 
548                    					 
549                    						<#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
550                    						<#assign relatedTitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
551                    						 
552                    						<#assign xPathSottotitolo = saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")> 
553                    						<#assign relatedSottotitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
554                    						 
555                    						<#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
556                    						<#assign relatedImmagineBanner = "" > 
557                    						 
558                    						<#if xPathImmagineBanner?? && xPathImmagineBanner?has_content> 
559                    	    		        	<#if xPathImmagineBanner.selectSingleNode(rootElement)?? && xPathImmagineBanner.selectSingleNode(rootElement)?has_content> 
560                    								<#assign relatedImmagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
561                    							</#if> 
562                    						</#if> 
563                    						 
564                    						<#assign xPathTestoAlternativoImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_banner']")> 
565                    						<#assign relatedTestoAlternativoImmagineBanner = "" > 
566                    						<#if xPathTestoAlternativoImmagineBanner?? && xPathTestoAlternativoImmagineBanner?has_content> 
567                    	    		        	<#if xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?? && xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?has_content> 
568                    								<#assign relatedTestoAlternativoImmagineBanner = xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
569                    							</#if> 
570                    						</#if> 
571                    							 
572                    						<#if relatedImmagineBanner?has_content && relatedImmagineBanner?trim?length gt 0 > 
573                    							<#assign immagineBannerJson = relatedImmagineBanner?eval > 
574                    							<#assign url = "/documents/${immagineBannerJson.groupId}/${immagineBannerJson.classPK}/${immagineBannerJson.title}/${immagineBannerJson.uuid}?width=${widthCardImg}"> 
575                    						<#else> 
576                    							<#assign url = "" > 
577                    						</#if> 
578                    						 
579                    						<#assign resourcePrimKey = related.getResourcePrimKey() /> 
580                    						<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourcePrimKey) /> 
581                    						<#assign assetEntryId = assetEntry.getEntryId() /> 
582                    						 
583                    						<#assign categories = assetCategoryLocalService.getAssetEntryAssetCategories(assetEntryId) > 
584                    						 
585                    						<#assign categoryNames = [] > 
586                    						 
587                    						<#list categories as category> 
588                    							<#if vocabularyIdUmbria == category.getVocabularyId() > 
589                    								<#assign categoryNames = categoryNames + [category.getTitle(themeDisplay.getLanguageId())] > 
590                    							</#if> 
591                    						</#list> 
592                    	                    <div> 
593                	                            <div class="card card-1 card-offerta"> 
594                    	                      	    <a class="card-link" href="/-/${related.getUrlTitle()}"></a> 
595                    	                            <div class="card-header"> 
596                    	                                <div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
597                    	                          	        <img src="${url}" alt="${relatedTestoAlternativoImmagineBanner}"> 
598                    	                                </div> 
599                    	                                <a class="link link-tripplanner link-tripplanner-top-right margin-top-em-2 margin-right-em-1" href="/-/${related.getUrlTitle()}" data-id="${related.getArticleId()}" data-tom="false"> 
600                    	                          	        <i class="far fa-heart text-red"></i> 
601                    	                          	        <i class="fas fa-heart text-red" style="display:none"></i> 
602                	                                    </a> 
603                    	                                <div class="card-header-info"> 
604                    	                                    <div class="card-badges"> 
605                        	                          	        <#list categoryNames as categoryName> 
606                        	                            	        <div class="badge badge-red"> 
607                        	                            	            ${categoryName} 
608                    	                            	            </div> 
609                    	                            	            <a class="header-title title-5" href="#"></a> 
610                        								        </#list> 
611                        							        </div> 
612                    	                                </div> 
613                    	                            </div> 
614                    	                            <div class="card-body"> 
615                        	                        	<a class="card-body-title title-4" href="/-/${related.getUrlTitle()}">${relatedTitolo}</a> 
616                        	                          	<div class="card-body-subtitle">${relatedSottotitolo}</div> 
617                        	                        </div> 
618                        	                        <div class="card-info"> 
619                        	                        	<span class="info"></span> 
620                    	                            </div> 
621                    	                        </div> 
622                    	                    </div> 
623                    	                    <#assign categoryNames = [] > 
624                    	                    <#assign categories = [] > 
625                    	                </#list> 
626                                    </div> 
627                                </div> 
628                            </div> 
629                        </div> 
630                    </div> 
631                </div> 
632            </div> 
633        </div> 
634    </aside> 
635</#if> 
636 
637<script id="map-popup-1-template" type="text/x-handlebars-template"> 
638    <div class="map-popup map-popup-1"> 
639		<a href="{{href}}"> 
640        	<div class="title">{{title}}</div> 
641		</a> 
642	</div> 
643</script> 
644 
645<script> 
646$("#backLink").click(function(event) { 
647    event.preventDefault(); 
648    history.back(1); 
649}); 
650</script> 
651<!-- Go to www.addthis.com/dashboard to customize your tools --> 
652<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5c629e6303f68c9f"></script>