Aggregatore Risorse

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> comune_tappa.geolocalizzazione  [in template "20099#20135#33911" at line 365, column 131]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 geolocationJSONObject = jsonF...  [in template "20099#20135#33911" at line 365, column 65]
----
1<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")> 
2<#assign itinerarioStructureKey = structureService.getStructureItinerarioKey()> 
3<#assign itinerarioStructureId = structureService.getStructureItinerarioId()> 
4<#assign elasticService = serviceLocator.findService("it.inera.elastic.service.ElasticService")> 
5<#assign journalArticleId = .vars['reserved-article-id'].data/> 
6 
7<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
8<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
10 
11<#-- GESTIONE RALATED ASSETS IMPORTS--> 
12<#assign journalArticleConverter = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")> 
13<#assign searchService = serviceLocator.findService("it.inera.structure.search.service.SearchService")> 
14<#-- FINE GESTIONE RALATED ASSETS IMPORTS--> 
15 
16<#assign vocabularyIdUmbria = structureService.getVocabularyIdByVocabularyName("Vocabolario Umbria") > 
17 
18<#if coordinate_principali.getData()?has_content && coordinate_principali.getData()?trim?length gt 0 > 
19	<#assign coordinatePrincipaliJson = coordinate_principali.getData()?eval > 
20	<#if coordinatePrincipaliJson.latitude?has_content && coordinatePrincipaliJson.latitude?trim?length gt 0 > 
21		<#assign latitude = coordinatePrincipaliJson.latitude?c > 
22	</#if> 
23	<#if coordinatePrincipaliJson.longitude?has_content && coordinatePrincipaliJson.longitude?trim?length gt 0 > 
24		<#assign longitude = coordinatePrincipaliJson.longitude?c > 
25	</#if> 
26<#else> 
27	<#assign latitude = "" > 
28	<#assign longitude = "" > 
29</#if> 
30 
31<#assign currentArticle = journalArticleLocalService.getArticle(groupId, journalArticleId) /> 
32 
33<#-- GESTIONE RALATED ASSETS VALORIZZAZIONE ARRAY--> 
34<#assign currentObject = journalArticleConverter.getItinerario(currentArticle, themeDisplay.getLocale())> 
35<#assign relatedAssets = currentObject.getDirectRelatedAssets()> 
36<#assign relatedResults = []> 
37<#if relatedAssets?? && relatedAssets?has_content> 
38	<#assign relatedResult = searchService.getResponse(relatedAssets, themeDisplay.getLocale(), null, themeDisplay)> 
39	<#if relatedResult?? && relatedResult?has_content> 
40	<#assign relatedResults = relatedResult.getData()> 
41	</#if> 
42</#if> 
43<#-- GESTIONE RALATED ASSETS VALORIZZAZIONE ARRAY--> 
44 
45<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
46<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
47<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
48 
49<#assign categoryList = assetCategoryLocalService.getAssetEntryAssetCategories(currentArticleAssetEntryId) > 
50 
51<#assign vocabularyIdTerritori = structureService.getVocabularyIdByVocabularyName("Territori") > 
52<#assign categoryListIds = [] > 
53<#assign municipalityNames = [] > 
54<#assign municipalityNamesString = "" > 
55<#assign isTerritorio = false > 
56<#assign territoryNameString = "" > 
57 
58<#list categoryList as category> 
59	<#if vocabularyIdUmbria == category.getVocabularyId() > 
60		<#assign categoryListIds = categoryListIds + [category.getCategoryId()]> 
61	</#if> 
62</#list> 
63 
64 
65<#list categoryList as category> 
66	<#if vocabularyIdTerritori == category.getVocabularyId() > 
67		<#assign municipalityName = category.getTitle(themeDisplay.getLanguageId()) > 
68 
69		<#assign childCategories = assetCategoryLocalService.getChildCategories(category.getCategoryId()) > 
70		<#if childCategories?has_content>  
71			<#assign territoryNameString = category.getTitle(themeDisplay.getLanguageId())> 
72			<#list childCategories as curChildCategory>  
73				<#assign isTerritorio = true > 
74				<#assign municipalityNameC = curChildCategory.getTitle(themeDisplay.getLanguageId()) > 
75				<#if curChildCategory?counter != 1 || municipalityNamesString?has_content> 
76					<#assign municipalityNamesString = municipalityNamesString + "," + municipalityNameC> 
77				<#else> 
78					<#assign municipalityNamesString = municipalityNamesString + municipalityNameC> 
79				</#if> 
80				<#assign municipalityNames = municipalityNames + [municipalityNameC]> 
81			</#list>  
82		<#else> 
83			<#assign municipalityNames = municipalityNames + [municipalityName]> 
84			<#if municipalityNamesString?has_content> 
85				<#assign municipalityNamesString = municipalityNamesString + "," + municipalityName> 
86			<#else> 
87				<#assign municipalityNamesString = municipalityNamesString + municipalityName> 
88			</#if> 
89		</#if> 
90	</#if> 
91</#list> 
92 
93<#assign results = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, latitude, longitude, "100", itinerarioStructureKey, itinerarioStructureId?c, locale, "6", null , categoryListIds, journalArticleId, null, null, null) /> 
94 
95<#-- per categoria --> 
96 
97<#assign categoryArray=[]> 
98<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
99<#assign vocabularyName = "Vocabolario Umbria"/> 
100<#assign specificVocabulary = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.getCompany().getGroupId(), vocabularyName)/> 
101<#if validator.isNotNull(specificVocabulary)> 
102    <#assign cats = specificVocabulary.getCategories()/> 
103</#if> 
104 
105<#assign categories = assetCategoryLocalService.getAssetEntryAssetCategories(currentArticleAssetEntryId) /> 
106<#if validator.isNotNull(cats)> 
107    <#list cats as cat> 
108        <#list categories as cate> 
109            <#if cat == cate> 
110                <#assign categoryArray = categoryArray + [cat]> 
111            </#if> 
112        </#list> 
113    </#list> 
114</#if> 
115 
116<#--<#if categoryArray?? && categoryArray?has_content> 
117    <#assign firstCategory = categoryArray[0] /> 
118    <#assign titleCategory = firstCategory.getTitle(themeDisplay.getLocale())> 
119</#if>--> 
120 
121<#-- per categoria FINE --> 
122 
123<#assign widthBannerImg = propsUtil.get("image.scale.fullpage") /> 
124<#assign widthSliderTappaImg = propsUtil.get("image.slider.testobarra.height") /> 
125<#assign widthSliderImg = propsUtil.get("image.slider.testobarra.height") /> 
126<#assign widthCardImg = propsUtil.get("image.scale.allpage") /> 
127<#assign tomBaseImagePath = propsUtil.get("tom.base.image.url") /> 
128 
129 
130<div class="container-fluid"> 
131    <div class="row"> 
132        <div class="header-block header-block-1 header-block-image-main header-block-tagged"> 
133            <img class="bg" src="${immagine_banner.getData()}?width=${widthBannerImg}" alt="${testo_alternativo_immagine_banner.getData()}"> 
134            <div class="container title title-main"> 
135                <div class="row"> 
136                    <div class="col-12"> 
137	                    <#list categoryList as category> 
138							<#if vocabularyIdUmbria == category.getVocabularyId() > 
139								<#assign titleCategory = category.getTitle(themeDisplay.getLocale())> 
140								<#if titleCategory?? && titleCategory?has_content> 
141                            		<div class="badge badge-light badge-uppercase"> 
142                                		${titleCategory} 
143                            		</div>   
144                        		</#if> 
145							</#if> 
146						</#list> 
147                        <h1 class="title-1 text-weight-300 margin-top-em-0 margin-bottom-em-0"> 
148                            ${titolo.getData()} 
149                        </h1> 
150                    </div> 
151                </div> 
152            </div> 
153        </div> 
154    </div> 
155</div> 
156<#assign categoryArray=[]> 
157 
158 
159<#assign count = 0 /> 
160<#if dati_tecnici_chiave?? && dati_tecnici_chiave?has_content > 
161    <#list dati_tecnici_chiave.getSiblings() as cur_dati_tecnici_chiave>  
162        <#if cur_dati_tecnici_chiave.dati_tecnici_valore?? && cur_dati_tecnici_chiave.dati_tecnici_valore.getData()?has_content > 
163            <#assign count = count + 1 /> 
164        </#if> 
165    </#list>  
166</#if> 
167 
168<#if count gt 0 > 
169    <#assign dividendo = 12/count /> 
170</#if> 
171 
172<div class="container-fluid bg-white"> 
173    <#if count gt 0 && count lt 4> 
174        <div class="row flex-column-reverse flex-lg"> 
175            <div class="container bridge bridge-top"> 
176                <div class="row"> 
177                    <div class="col-12"> 
178                        <div class="card-bar card-bar-1 card-bar-dark"> 
179                            <div class="card-row"> 
180                                <#list dati_tecnici_chiave.getSiblings() as cur_dati_tecnici_chiave> 
181                                    <div class="col-${dividendo}"> 
182                                        <div class="card card-horizontal card-3"> 
183                                            <div class="card-row"> 
184                                                <div class="card-icon card-item-first"> 
185                                                    <i class="fas ${cur_dati_tecnici_chiave.dati_tecnici_icona.getData()}"></i> 
186                                                </div> 
187                                                <div class="card-body"> 
188                                                    <div class="row"> 
189                                                        <div class="col-12"> 
190                                                            <div class="card-subtitle title-6"> 
191                                                                ${cur_dati_tecnici_chiave.getData()} 
192                                                            </div> 
193                                                        </div> 
194                                                        <div class="col-12"> 
195                                                            <div class="card-title"> 
196                                                                ${cur_dati_tecnici_chiave.dati_tecnici_valore.getData()} 
197                                                            </div> 
198                                                        </div> 
199                                                    </div> 
200                                                </div> 
201                                            </div> 
202                                        </div> 
203                                    </div> 
204                                </#list> 
205                            </div> 
206                        </div> 
207                    </div> 
208                </div> 
209            </div> 
210        </div> 
211    </#if> 
212     
213    <div class="row"> 
214        <article class="container padding-bottom-em-3"> 
215            <div class="row"> 
216                <div class="col-12 col-md-8"> 
217                    <div class="text-block text-block-left"> 
218                        <div class="title-4 padding-bottom-em-1"> 
219                            ${sottotitolo.getData()} 
220                        </div> 
221                        <div class="text"> 
222                            ${descrizione.getData()} 
223                        </div> 
224                        <br> 
225			            <#if validator.isNotNull(descrizione_due.getData()) && descrizione_due.getData() != '<p>null</p>'> 
226                            <div class="text"> 
227                                ${descrizione_due.getData()} 
228                            </div> 
229			            </#if> 
230                    </div> 
231                </div> 
232                 
233                 
234                <#assign fileKml = "" /> 
235                <#assign checkFileKml = false /> 
236                <#assign urlFileKml = "" /> 
237                 
238                <#assign fileGps = "" /> 
239                <#assign checkFileGps = false /> 
240                <#assign urlFileGps = "" /> 
241                 
242                <#assign countFile = 0 /> 
243                <#if file_tecnici?? && file_tecnici?has_content>  
244                    <#list file_tecnici.getSiblings() as cur_file_tecnici>  
245                        <#if cur_file_tecnici.file.getData()?? && cur_file_tecnici.file.getData()?has_content > 
246                             
247                            <#assign counter = 0 > 
248                             
249                            <#list cur_file_tecnici.file.getData()?split("/") as x> 
250                                <#if counter == 2> 
251                                    <#assign groupIdd = x?number > 
252                                </#if> 
253                                <#if counter == 5> 
254                                    <#assign uuId = x > 
255                                    <#if uuId?contains("?t=") > 
256                                        <#assign uuid = uuId?keep_before("?t=") /> 
257                                    </#if> 
258                                </#if> 
259                                <#assign counter = counter + 1 > 
260                            </#list> 
261                             
262                            <#assign fileEntry = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryLocalService') />  
263                            <#assign file=fileEntry.getFileEntryByUuidAndGroupId(uuid,groupIdd) > 
264                             
265                            <#if file.getExtension() == "kml" > 
266                                <#assign fileKml = file /> 
267                                <#assign checkFileKml = true /> 
268                                <#assign countFile = countFile - 1 />  
269                                <#assign urlFileKml = "/documents/"+ fileKml.getGroupId() +"/" +fileKml.getClassPK() +"/"+ fileKml.getTitle() +"/"+fileKml.getUuid() > 
270                            </#if> 
271                             
272                            <#if file.getExtension() == "gpx" > 
273                                <#assign fileGps = file /> 
274                                <#assign checkFileGps = true /> 
275                                <#assign urlFileGps = "/documents/"+ fileGps.getGroupId() +"/" +fileGps.getClassPK() +"/"+ fileGps.getTitle() +"/"+fileGps.getUuid() > 
276                            </#if> 
277                             
278                            <#assign countFile = countFile + 1 />  
279                        </#if> 
280                    </#list>  
281                </#if> 
282 
283                <#if countFile gt 0> 
284                    <aside class="col-12 col-md-4 margin-top-em-3 margin-top-md-em-0"> 
285                        <div class="text-block text-block-1"> 
286                            <div class="link-sidebar link-sidebar-1"> 
287                                <div class="title"> 
288                                    <@liferay.language key="label.download"/> 
289                                </div> 
290                                <ul class="link-list"> 
291                                    <#list file_tecnici.getSiblings() as cur_file_tecnici> 
292                                        <#if !cur_file_tecnici.getData()?contains("kml")>  
293                                            <li class="link-container"> 
294                                                <a class="link" href="${cur_file_tecnici.file.getData()}"> 
295                                                    <i class="fas fa-angle-right"></i> 
296                                                    <span class="label"> 
297                                                        ${cur_file_tecnici.getData()} 
298                                                    </span> 
299                                                </a> 
300                                            </li> 
301                                        </#if> 
302                                    </#list> 
303                                </ul> 
304                            </div> 
305                        </div> 
306                    </aside> 
307                </#if> 
308            </div> 
309        </article> 
310    </div> 
311</div> 
312 
313<#-- <#if tappa.getData()?has_content> --> 
314    <div class="container-fluid"> 
315        <div class="row"> 
316            <div class="map map-container map-banner"> 
317                <div class="map-content"> 
318                    <div class="leaflet-interactive-map map-summary-itinerary" id="map-itinerary" data-kml="${urlFileKml}" data-gpx="${urlFileGps}"></div> 
319                </div> 
320            </div> 
321        </div> 
322    </div> 
323    <#if (coordinate_principali.getData() != "")>  
324        <#assign geolocationJSONObject = jsonFactoryUtil.createJSONObject(coordinate_principali.getData())>  
325        <#assign latitudine = geolocationJSONObject.getDouble("latitude")>  
326        <#assign longitudine = geolocationJSONObject.getDouble("longitude")>  
327        <div class="itinerary-stage" id="" data-lat="${latitudine}" data-lng="${longitudine}" data-info="${titolo.getData()}" style="display:none;"> 
328        </div> 
329    </#if> 
330	<#-- <#else> 
331    <#assign latitude = 0>  
332    <#assign longitude = 0>  
333    <#if (coordinate_principali.getData() != "")>  
334        <#assign geolocationJSONObject = jsonFactoryUtil.createJSONObject(coordinate_principali.getData())>  
335        <#assign latitude = geolocationJSONObject.getDouble("latitude")>  
336        <#assign longitude = geolocationJSONObject.getDouble("longitude")>  
337    </#if> 
338     
339    <div class="container-fluid"> 
340        <div class="row"> 
341            <div class="map map-container map-banner"> 
342                <div class="map-content"> 
343                    <div class="leaflet-interactive-map map-summary-results" id="map-header" data-results="${themeDisplay.getPortalURL()}/o/geolocation/get-positions?articleId=${journalArticleId}&languageId=${themeDisplay.getLanguageId()}" data-config="{&quot;clustering&quot;:true}"></div> 
344                </div> 
345            </div> 
346        </div> 
347    </div> 
348</#if> --> 
349 
350<#if tappa.getData()?has_content> 
351    <div class="container-fluid bg-white"> 
352        <div class="row padding-top-em-5"> 
353            <div class="container"> 
354                <div class="row"> 
355                    <div class="col-12 col-md-10 col-lg-8"> 
356                        <#list tappa.getSiblings() as cur_tappa>  
357                            <#assign latitude = 0>  
358                            <#assign longitude = 0>  
359                             
360                            <#--CICLO COORDINATE TAPPA--> 
361						    <#assign coords = []> 
362						    <#assign coordsObj = ""> 
363						    <#if (cur_tappa?has_content && cur_tappa.comune?has_content && cur_tappa.comune.geolocalizzazione?has_content && cur_tappa.comune.geolocalizzazione.getData() != "" && cur_tappa.comune.geolocalizzazione.getData()?has_content)>  
364						    	<#list cur_tappa.comune.getSiblings() as comune_tappa>  
365						    		<#assign geolocationJSONObject = jsonFactoryUtil.createJSONObject(comune_tappa.geolocalizzazione.getData())>  
366						    		<#assign latitude = geolocationJSONObject.getDouble("latitude")>  
367						        	<#assign longitude = geolocationJSONObject.getDouble("longitude")>  
368						        	 
369						        	<#assign info = "">  
370						            <#if (comune_tappa.via_piazza?has_content && comune_tappa.via_piazza.getData() != "")>  
371						            	<#assign info = info + comune_tappa.via_piazza.getData()>  
372						            </#if> 
373						             
374						            <#if (comune_tappa.localita?has_content && comune_tappa.localita.getData() != "")>  
375						            	<#assign info = info + " " + comune_tappa.localita.getData()>  
376						            </#if> 
377						             
378						            <#if (comune_tappa.cap?has_content && comune_tappa.cap.getData() != "")>  
379						            	<#assign info = info + " " + comune_tappa.cap.getData()>  
380						            </#if> 
381						             
382						            <#if (comune_tappa.getData() != "")>  
383						            	<#assign info = info + " " + comune_tappa.getData()>  
384						            </#if> 
385						        	 
386						        	<#assign info = info?replace("\"","&quot;")> 
387						        	<#assign info = info?replace("'","&#39;")> 
388						        	 
389						        	<#assign coord = {"lat" : latitude, "lng" : longitude, "info": info}> 
390						        	<#assign coords = coords + [coord]> 
391						    	</#list>  
392						    	<#assign coordsObj = jsonFactoryUtil.looseSerializeDeep(coords)>  
393						    </#if> 
394						    <#--FINE CICLO COORDINATE TAPPA--> 
395                             
396                            <#if (cur_tappa?has_content &&  
397                            cur_tappa.comune?has_content &&  
398                            cur_tappa.comune.geolocalizzazione?has_content &&  
399                            cur_tappa.comune.geolocalizzazione.getData() != "")>  
400                                <#assign geolocationJSONObject = jsonFactoryUtil.createJSONObject(cur_tappa.comune.geolocalizzazione.getData())>  
401                                <#assign latitude = geolocationJSONObject.getDouble("latitude")>  
402                                <#assign longitude = geolocationJSONObject.getDouble("longitude")>  
403                            </#if> 
404                             
405                            <#assign info = "">  
406                             
407                            <#if (cur_tappa?has_content && cur_tappa.comune?has_content && cur_tappa.comune.via_piazza?has_content &&  
408                            cur_tappa.comune.via_piazza.getData() != "")>  
409                            	<#assign info = info + cur_tappa.comune.via_piazza.getData()>  
410                            </#if> 
411                             
412                            <#if (cur_tappa?has_content && cur_tappa.comune?has_content && cur_tappa.comune.localita?has_content &&  
413                            cur_tappa.comune.localita.getData() != "")>  
414                            	<#assign info = info + " " + cur_tappa.comune.localita.getData()>  
415                            </#if> 
416                             
417                            <#if (cur_tappa?has_content && cur_tappa.comune?has_content && cur_tappa.comune.cap?has_content &&  
418                            cur_tappa.comune.cap.getData() != "")>  
419                            	<#assign info = info + " " + cur_tappa.comune.cap.getData()>  
420                            </#if> 
421                             
422                            <#if (cur_tappa?has_content && cur_tappa.comune?has_content &&  cur_tappa.comune.getData() != "")>  
423                            	<#assign info = info + " " + cur_tappa.comune.getData()>  
424                            </#if> 
425                             
426                            <div class="itinerary-stage" id="${cur_tappa.titolo_tappa.getData()?replace(" ","-")}" data-lat="${latitude}" data-lng="${longitude}" data-info="${info}" data-coords='${coordsObj}'> 
427                                <div class="row"> 
428                                    <div class="col-2"> 
429                                        <div class="itinerary-sidebar"> 
430                                            <div class="marker"> 
431                                                <img src="/o/umbria-theme/images/icons/leaflet/marker-icon.svg" alt="Marker"> 
432                                                <div class="marker-label text-red">${cur_tappa.getData()}</div> 
433                                            </div> 
434                                            <div class="track"></div> 
435                                        </div> 
436                                    </div> 
437                                    <div class="col-10"> 
438                                        <div class="itinerary-body padding-bottom-em-5"> 
439                                            <div class="title">${cur_tappa.titolo_tappa.getData()}</div> 
440                                            <#if cur_tappa.titolo_immagine_tappa.getData()?has_content> 
441                                                <div class="image-container" style="margin-bottom:3rem;"> 
442                                                    <div class="carousel-container transparent"> 
443                                                        <div class="tns-carousel tns-carousel-default" data-tns-config="{&quot;items&quot;:1,&quot;autoplay&quot;:true,&quot;autoplayHoverPause&quot;:true,&quot;autoplayButtonOutput&quot;:false,&quot;speed&quot;:1000}"> 
444                                                            <#list cur_tappa.titolo_immagine_tappa.getSiblings() as titolo_immagine_tappa>  
445                                                                <div> 
446                                                                    <img class="slide-image" src="${titolo_immagine_tappa.immagine_tappa.getData()}?width=${widthSliderTappaImg}" alt="${titolo_immagine_tappa.testo_alternativo_tappa.getData()}"> 
447                                                                    <p class="caption" style="margin-bottom: 12px;">${titolo_immagine_tappa.didascalia_immagine_tappa.getData()}</p> 
448                                                                </div>  
449                                                            </#list>  
450                                                        </div> 
451                                                    </div> 
452                                                </div> 
453                                            </#if> 
454                                            <div class="text"> 
455                                                ${cur_tappa.descrizione_tappa.getData()} 
456                                            </div> 
457                                        </div> 
458                                    </div> 
459                                </div> 
460                            </div> 
461                        </#list> 
462                    </div> 
463                </div> 
464            </div> 
465        </div> 
466    </div> 
467</#if> 
468 
469<#if url_immagini_instagram?? && url_immagini_instagram.getSiblings()?has_content || descrizione_immagine?? && descrizione_immagine.getData()?has_content> 
470    <div class="container-fluid bg-white"> 
471        <div class="row"> 
472            <div class="carousel-container carousel-no-ctrl transparent margin-bottom-em-1 tns-overflow-show carousel-image-slide carousel-draggable"> 
473                <div class="tns-carousel tns-carousel-no-ctrl" data-tns-config="{&quot;autoWidth&quot;:true,&quot;items&quot;:2,&quot;autoplay&quot;:false, 
474                    &quot;responsive&quot;:{&quot;768&quot;:{&quot;items&quot;:3},&quot;992&quot;:{&quot;items&quot;:4}}}"> 
475                    <#if url_immagini_instagram?? && url_immagini_instagram.getData()?has_content> 
476                        <#list url_immagini_instagram.getSiblings() as cur_url_immagini_instagram>  
477                         
478                            <#if cur_url_immagini_instagram.getData()?ends_with("/")> 
479                                <#assign sizeParameter = "media/?size=l" /> 
480                            <#else> 
481                                <#assign sizeParameter = "/media/?size=l" /> 
482                            </#if> 
483                             
484                            <div class="item-with-caption"> 
485                                <div class="card card-type-asset image-card card-2 slide-image-instagram"> 
486                                    <img class="slide-image" src="${cur_url_immagini_instagram.getData()}${sizeParameter}" alt="${cur_url_immagini_instagram.alt_text_image_instagram.getData()}"> 
487                                    <i class="fab fa-instagram"></i> 
488                                </div> 
489                                <#if cur_url_immagini_instagram.alt_text_image_instagram.getData()?? && cur_url_immagini_instagram.alt_text_image_instagram.getData()?has_content && cur_url_immagini_instagram.alt_text_image_instagram.getData()?trim?length gt 0 && cur_url_immagini_instagram.alt_text_image_instagram.getData()?trim != "null"> 
490                                	<p class="caption">${cur_url_immagini_instagram.alt_text_image_instagram.getData()}</p> 
491                                </#if> 
492                            </div>   
493                        </#list>  
494                    </#if> 
495                    <#if descrizione_immagine?? && descrizione_immagine.getSiblings()?has_content>  
496                        <#list descrizione_immagine.getSiblings() as cur_descrizione_immagine>  
497                            <div class="item-with-caption"> 
498                                <img class="slide-image" src="${cur_descrizione_immagine.immagine.getData()}?width=${widthSliderImg}" alt="${cur_descrizione_immagine.testo_alternativo.getData()}"> 
499                                <#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"> 
500                                	<p class="caption">${cur_descrizione_immagine.didascalia.getData()}</p> 
501                                </#if> 
502                            </div>  
503                        </#list>  
504                    </#if> 
505                </div> 
506            </div> 
507        </div> 
508    </div> 
509</#if> 
510 
511<#assign lang = "it"/> 
512<#if themeDisplay.getLanguageId()?contains("_")> 
513    <#assign lang = themeDisplay.getLanguageId()?split("_")[0]/>     
514<#else> 
515	<#assign lang = themeDisplay.getLanguageId()/>    
516</#if> 
517<#assign tomApi = serviceLocator.findService("it.inera.tom.api.TOMAPI")> 
518 
519<#if municipalityNames?has_content && municipalityNames?size gt 0 && lang?has_content && lang?trim?length gt 0 && tomApi?has_content> 
520 
521<#assign offerResults = tomApi.getJsonOffersListResultByMunicipalities(municipalityNames, lang) /> 
522<#if offerResults?? && offerResults?has_content> 
523	<#assign offerResponse = offerResults.getResponse()> 
524	<#if offerResponse?? && offerResponse?has_content> 
525		<#assign offerResults = offerResponse.getResults()> 
526		<#if offerResults?? && offerResults?has_content> 
527	        <aside class="container-fluid bg-white" id="hideable"> 
528    		    <div class="row"> 
529		            <div class="container padding-top-em-3"> 
530		                <div class="row"> 
531		                    <div class="col-12 col-md-10 offset-md-1 margin-bottom-lg-em-0 margin-bottom-em-2"> 
532		                        <div class="text-block text-block-center"> 
533		                            <div class="title-2"> 
534										<@liferay.language key="label.migliori.offerte" /> 
535		                            </div> 
536		                            <div class="text"> 
537		                                <@liferay.language key="label.proposte.vivere.umbria" /> 
538	                                </div> 
539	                            </div> 
540		                    </div> 
541		                </div> 
542	 
543		                <div class="row"> 
544		                    <div class="col-12"> 
545		                        <div class="d-flex flex-justify-content-end"> 
546		                            <a class="link-showall" href="/offerte-luogo?municipality=${municipalityNamesString}&territory=${territoryNameString}"><@liferay.language key="label.vedi.tutte" /> 
547		                                <i class="fas fa-angle-right"></i> 
548	                                </a> 
549		                        </div> 
550		                    </div> 
551		                    <div class="col-12"> 
552		                        <div class="row"> 
553		                            <div class="col-12 padding-bottom-em-3"> 
554		                                <div class="carousel-container transparent margin-top-em-1 margin-bottom-em-2"> 
555		                                    <div class="tns-carousel tns-carousel-default"> 
556		                  	                    <#list offerResults as offerResult> 
557			                  	                    <#if offerResult.getGalleries()?has_content && offerResult.getGalleries().getImages()?has_content 
558			                  	                    && offerResult.getGalleries().getImages()?size gt 0 
559			                  	                    && offerResult.getGalleries().getImages()[0].getFile()?has_content> 
560			                  	                    <div> 
561			                                            <div class="card card-1 card-offerta has-info-commercial"> 
562			                                                <a class="card-link" href="/dettaglio-offerta/-/dettaglio/${offerResult.getSlug()}_${offerResult.getId()}_${offerResult.getType()}"></a> 
563                        			                        <div class="card-header"> 
564    			                                                <div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
565                        			                          		<#if offerResult.getGalleries()?has_content> 
566                        			                          			<#if offerResult.getGalleries().getImages()?has_content && offerResult.getGalleries().getImages()?size gt 0> 
567                        			                          				<#assign file = ""/> 
568                        			                          				<#assign alt = ""/> 
569                        			                          				<#if offerResult.getGalleries().getImages()[0].getFile()?has_content> 
570                        			                          					<#assign file = tomBaseImagePath + offerResult.getGalleries().getImages()[0].getFile()/> 
571                        			                          				<#else> 
572                        			                          					<#assign file = "/o/umbria-theme/images/loghi/logo_no_image.png"/> 
573                        			                          				</#if> 
574                        			                          				<#if offerResult.getGalleries().getImages()[0].getAlt()?has_content> 
575                        			                          					<#assign alt = offerResult.getGalleries().getImages()[0].getAlt()/> 
576                        			                          				</#if> 
577                        			                          				<img src="${file}?params[width]=354" alt="${alt}"> 
578                        			                          			</#if> 
579                        			                          		<#else> 
580                        			                          			<#assign file = "/o/umbria-theme/images/loghi/logo_no_image.png"/> 
581                        			                          			<img src="${file}?params[width]=354" alt="logo_no_image"> 
582                        			                          		</#if> 
583    	                          		                        </div> 
584    	                          		                         
585    	                          		                        <#if offerResult.getType()?? && offerResult.getType()?has_content && offerResult.getType()?trim?length gt 0 && offerResult.getType()?trim != "accommodation"> 
586    	                          		                        	<a class="link link-tripplanner link-tripplanner-top-right margin-top-em-2 margin-right-em-1" href="#" data-detail-type="${offerResult.getType()}/offer" data-id="${offerResult.getId()}" data-tom="true"> 
587    	                          		                        		<i class="far fa-heart text-red"></i><i class="fas fa-heart text-red" style="display:none;"></i></a> 
588    	                          		                        	</a> 
589    	                          		                        <#else> 
590    	                          		                        	<a class="link link-tripplanner link-tripplanner-top-right margin-top-em-2 margin-right-em-1" href="#" data-detail-type="${offerResult.getType()}" data-id="${offerResult.getId()}" data-tom="true"> 
591    	                          		                        		<i class="far fa-heart text-red"></i><i class="fas fa-heart text-red" style="display:none;"></i></a> 
592    	                          		                        	</a> 
593    	                          		                        </#if> 
594    			                                                <div class="card-header-info"> 
595    			                                                    <div class="card-badges"> 
596        								                                <div class="badge badge-light-blue"> 
597        										                            <#if offerResult.getType() == 'guide'> 
598        										  		                        <@liferay.language key="label.guide" /> 
599        										                            </#if> 
600        										                            <#if offerResult.getType() == 'travelagency'> 
601        										  		                        <@liferay.language key="label.pacchetti.turistici" /> 
602        										                            </#if> 
603        										                            <#if offerResult.getType() == 'consortium'> 
604        										  		                        <@liferay.language key="label.pacchetti.turistici" /> 
605        										                            </#if> 
606        										                            <#if offerResult.getType() == 'accommodation'> 
607        										  		                        <@liferay.language key="label.accommodation" /> 
608        										                            </#if> 
609        								                                </div> 
610        								                            </div> 
611    			                                                    <div class="header-title title-5"> 
612    			                                                    </div> 
613    			                                                </div> 
614    			                                            </div> 
615    			                                            <#if offerResult?has_content> 
616    			                                            <div class="card-body"> 
617        		                                                <div class="card-body-title title-4"> 
618        		                                                    ${offerResult.getTitle()} 
619        			                                            </div> 
620        			                                            <#if offerResult.getSubtitle()?has_content> 
621        			                                            <div class="card-body-subtitle"> 
622        			                                                ${offerResult.getSubtitle()} 
623        			                                            </div> 
624        			                                            </#if> 
625        			                                        </div> 
626        			                                        </#if> 
627    			                                            <div class="card-info card-info-readmore"> 
628    			                                                <div class="info hidden"><@liferay.language key="label.continua.a.leggere" /></div> 
629    			                                            </div> 
630    			                                            <div class="card-info"> 
631    			                        	                    <span class="info"> 
632    			                        		                    <!--<a href="#" class="text-light-blue text-bold"> 
633    			                        		                            <i class="fas fa-map-pin"></i> 
634    	                        		                            </a>--> 
635    		                        		                    </span> 
636    			                                            </div> 
637    			                                            <div class="card-info card-info-commercial"> 
638        		                                                <#if offerResult.getDuration()?has_content && offerResult.getDuration().getCount()?has_content && offerResult.getDuration().getType()?has_content> 
639    				                                                <div class="info info-commercial"> 
640    				                                                    <div class="label"><@liferay.language key="label.durata" /></div> 
641    				                                                    <div class="title text-bold"> 
642    				                                                        ${offerResult.getDuration().getCount()} ${offerResult.getDuration().getType()} 
643    			                                                        </div> 
644    				                                                </div> 
645    				                                            <#else> 
646    				                                            	<div class="info info-commercial"> 
647    				                                                    <div class="label">&nbsp;</div> 
648    				                                                    <div class="title text-bold"> 
649    				                                                        &nbsp; 
650    			                                                        </div> 
651    				                                                </div> 
652    			                                                </#if> 
653    			                                                <div class="info info-commercial"> 
654    		                                                        <#if offerResult.getMinimumPrice()?has_content && offerResult.getMinimumPrice()!=0> 
655	    		                                                        <div class="label"> 
656	    			                                                        <@liferay.language key="label.a.partire.da" /> 
657	    		                                                        </div> 
658	    			                                                    <div class="title text-bold"> 
659	    			                                                        <@liferay.language key="label.euro" /> ${offerResult.getMinimumPrice()} 
660	    		                                                        </div> 
661    		                                                        <#else> 
662	    		                                                        <div class="label"> 
663	    			                                                        <@liferay.language key="label.prezzo.su.richiesta" /> 
664	    		                                                        </div> 
665	    			                                                    <div class="title text-bold"> 
666	    			                                                        &nbsp; 
667	    		                                                        </div> 
668    		                                                        </#if> 
669    			                                                </div> 
670    			                                            </div> 
671			                                            </div> 
672			                                        </div> 
673			                                        </#if> 
674		                  	                    </#list> 
675		                                    </div> 
676		                                </div> 
677		                            </div> 
678		                        </div> 
679		                    </div> 
680	                    </div> 
681		            </div> 
682		        </div> 
683		    </aside> 
684  	    </#if> 
685	</#if> 
686</#if> 
687 
688</#if> 
689 
690<#if results?size gt 0 || relatedResults?size gt 0> 
691    <aside class="container-fluid bg-gray"> 
692        <div class="row"> 
693            <div class="container padding-top-em-3 padding-bottom-em-5"> 
694                <div class="row"> 
695                    <div class="col-12 col-md-10 offset-md-1 margin-bottom-em-2 margin-bottom-lg-em-0"> 
696                        <div class="text-block text-block-center"> 
697                            <div class="title-2"> 
698                                <@liferay.language key="label.potrebbe.interessarti.anche"/> 
699                            </div> 
700                            <div class="text"> 
701                                <@liferay.language key="label.scopri.proposte.uniche"/> 
702                            </div> 
703                        </div> 
704                    </div> 
705                    <!--<div class="col-12"> 
706                        <div class="d-flex flex-justify-content-end"> 
707                            <a class="link-showall" href="#"> 
708                                <@liferay.language key="label.scopri.tutte"/> 
709                                <i class="fas fa-angle-right"></i> 
710                            </a> 
711                        </div> 
712                    </div>--> 
713                    <div class="col-12"> 
714                        <div class="row"> 
715                            <div class="col-12 padding-bottom-em-3"> 
716                                <div class="carousel-container transparent margin-top-em-1 margin-bottom-em-2"> 
717                                    <div class="tns-carousel tns-carousel-default"> 
718                                      	 
719                                      	<#-- GESTIONE RALATED ASSETS RENDERIZZAZIONE--> 
720                                      	<#list relatedResults as relatedResult> 
721											<div> 
722                	                            <div class="card card-1 card-offerta"> 
723                    	                      	    <a class="card-link" href="${relatedResult.getHref()}"></a> 
724                	                                <div class="card-header"> 
725                    	                                <div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
726                    	                          	        <img src="${relatedResult.getImg().getSrc()}" alt="${relatedResult.getImg().getAlt()}"> 
727                	                                    </div> 
728                    	                                <a class="link link-tripplanner link-tripplanner-top-right margin-top-em-2 margin-right-em-1" href="${relatedResult.getHref()}" data-id="${relatedResult.getId()}" data-tom="false"> 
729                    	                          	        <i class="far fa-heart text-red"></i> 
730                    	                          	        <i class="fas fa-heart text-red" style="display:none"></i> 
731                    	                                </a> 
732                    	                                <div class="card-header-info"> 
733                    	                                    <div class="card-badges"> 
734                    	                                    	<#assign categoryNames = relatedResult.getHeader().getInfo() > 
735                        	                          	        <#list categoryNames as categoryName> 
736                        	                            	        <div class="badge badge-red"> 
737                        	                            	            ${categoryName} 
738                    	                            	            </div> 
739                    	                            	            <a class="header-title title-5" href="#"></a> 
740                        								        </#list> 
741                        								    </div> 
742                    	                                </div> 
743                    	                            </div> 
744                    	                            <div class="card-body"> 
745                        	                        	<a class="card-body-title title-4" href="${relatedResult.getHref()}"> 
746                        	                        	    ${relatedResult.getTitle()} 
747                    	                        	    </a> 
748                    	                        	    <div class="card-body-subtitle"> 
749                    	                        	    	<#if relatedResult.getSubtitle()?? && relatedResult.getSubtitle()?has_content && relatedResult.getSubtitle()?trim?length gt 0 && relatedResult.getSubtitle()?trim != "null"> 
750                    	                          	        	${relatedResult.getSubtitle()} 
751                    	                          	        </#if> 
752                	                          	        </div> 
753                	                          	         
754                	                                </div> 
755                    	                            <div class="card-info"> 
756                    	                        	    <span class="info"></span> 
757                    	                            </div> 
758                	                            </div> 
759                	                        </div> 
760										</#list> 
761										<#-- GESTIONE RALATED ASSETS FINE RENDERIZZAZIONE--> 
762                                      	 
763                                      	<#list results as related> 
764                    						<#assign langId = themeDisplay.getLanguageId() /> 
765                    						<#assign contentByLocale = related.getContentByLocale(themeDisplay.getLanguageId()) /> 
766                    						<#assign document = saxReaderUtil.read(contentByLocale) > 
767                    						<#assign rootElement = document.getRootElement()> 
768                    					 
769                    						<#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
770                    						<#assign relatedTitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
771                    						 
772                    						<#assign xPathSottotitolo = saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")> 
773                    						<#assign relatedSottotitolo = xPathSottotitolo.selectSingleNode(rootElement).getStringValue()> 
774                    						 
775                    						<#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
776                    						<#assign relatedImmagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
777                    						 
778                    						<#assign xPathTestoAlternativoImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_banner']")> 
779                    						<#assign relatedTestoAlternativoImmagineBanner = xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
780                    						 
781                    						<#if relatedImmagineBanner?has_content && relatedImmagineBanner?trim?length gt 0 > 
782                    						 
783                    						<#attempt> 
784                                                <#assign immagineBannerJson = relatedImmagineBanner?eval > 
785                    							<#assign url = "/documents/${immagineBannerJson.groupId}/${immagineBannerJson.classPK}/${immagineBannerJson.title}/${immagineBannerJson.uuid}?width=${widthCardImg}"> 
786                                            			<#recover> 
787                                              				<#assign url = "" > 
788                                            			</#attempt> 
789 
790                    						<#else> 
791                    							<#assign url = "" > 
792                    						</#if> 
793                    						 
794                    						<#assign resourcePrimKey = related.getResourcePrimKey() /> 
795                    						<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourcePrimKey) /> 
796                    						<#assign assetEntryId = assetEntry.getEntryId() /> 
797                    						 
798                    						<#assign categories = assetCategoryLocalService.getAssetEntryAssetCategories(assetEntryId) > 
799                    						 
800                    						<#assign categoryNames = [] > 
801                    						 
802                    						<#list categories as category> 
803                    							<#if vocabularyIdUmbria == category.getVocabularyId() > 
804                    								<#assign categoryNames = categoryNames + [category.getTitle(themeDisplay.getLanguageId())] > 
805                    							</#if> 
806                    						</#list> 
807                    						 
808                    	                    <div> 
809                	                            <div class="card card-1 card-offerta"> 
810                    	                      	    <a class="card-link" href="/-/${related.getUrlTitle()}"></a> 
811                	                                <div class="card-header"> 
812                    	                                <div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
813                    	                          	        <img src="${url}" alt="${relatedTestoAlternativoImmagineBanner}"> 
814                	                                    </div> 
815                    	                                <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"> 
816                    	                          	        <i class="far fa-heart text-red"></i> 
817                    	                          	        <i class="fas fa-heart text-red" style="display:none"></i> 
818                    	                                </a> 
819                    	                                <div class="card-header-info"> 
820                    	                                    <div class="card-badges"> 
821                        	                          	        <#list categoryNames as categoryName> 
822                        	                            	        <div class="badge badge-red"> 
823                        	                            	            ${categoryName} 
824                    	                            	            </div> 
825                    	                            	            <a class="header-title title-5" href="#"></a> 
826                        								        </#list> 
827                        								    </div> 
828                    	                                </div> 
829                    	                            </div> 
830                    	                            <div class="card-body"> 
831                        	                        	<a class="card-body-title title-4" href="/-/${related.getUrlTitle()}"> 
832                        	                        	    ${relatedTitolo} 
833                    	                        	    </a> 
834                    	                          	    <div class="card-body-subtitle"> 
835                    	                          	         ${relatedSottotitolo} 
836                	                          	        </div> 
837                	                                </div> 
838                    	                            <div class="card-info"> 
839                    	                        	    <span class="info"></span> 
840                    	                            </div> 
841                	                            </div> 
842                	                        </div> 
843                	                        <#assign categoryNames = [] > 
844                	                        <#assign categories = [] > 
845                	                    </#list> 
846                                    </div> 
847                                </div> 
848                            </div> 
849                        </div> 
850                    </div> 
851                </div> 
852            </div> 
853        </div> 
854    </aside> 
855</#if> 
856 
857 
858<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5c5d3c404544fcaf"></script>