Si è verificato un errore nell'elaborarazione del modello.
Java method "as.asac.template.tools.DLToolImpl.getDLFileEntryByPath(String)" threw an exception when invoked on as.asac.template.tools.DLToolImpl object "as.asac.template.tools.DLToolImpl@3789a209"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign dlFileEntryTrack = dlTool.get...  [in template "37703#37743#1559015" at line 385, column 153]
----
1<#-- Services --> 
2<#assign assetEntryLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign journalArticleResourceServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")/> 
5 
6<#-- Reserved vbles --> 
7<#assign title = .vars['reserved-article-title'].data> 
8<#assign articleId=.vars["reserved-article-id"].data /> 
9<#assign description=.vars["reserved-article-description"].data /> 
10<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data /> 
11<#assign date=.vars["reserved-article-display-date"].data /> 
12<#assign request = .vars['request']> 
13 
14<#-- Init --> 
15<#assign assetEntry = journalTool.getAssetEntryByArticleId(groupId, articleId)> 
16<#assign journalArticle = journalTool.getJournalArticleByAssetEntry(assetEntry)> 
17<#assign articleURL = themeDisplay.getURLPortal()+themeDisplay.getURLCurrent()> 
18<#assign articleSocialBookmarks = themeDisplay.getThemeSetting("article-social-bookmarks")!> 
19<#assign layoutSetBannerPath = layoutTool.getLayoutSetBannerPath(groupId, themeDisplay.getLayout().isPrivateLayout())!> 
20<#assign articleMainImageThumbnail3 = dlTool.getThumbnail(smallImageUrl, "3", layoutSetBannerPath)! /> 
21<#assign articleMainImageThumbnail1 = dlTool.getThumbnail(smallImageUrl, "1")! /> 
22<#assign ddmStructureNameNormalize = "template-${friendlyURLNormalizerTool.normalize(journalArticle.getDDMStructure().getName(localeUtil.getDefault()))}" /> 
23<#assign baseUrl = themeDisplay.getURLPortal()/> 
24 
25<#-- Build --> 
26<#if Nombre.data?has_content> 
27	<#assign title = Nombre.data> 
28</#if> 
29<#assign address = []> 
30<#if Contacto.Zona.data?has_content> 
31	<#assign address = address + [Contacto.Zona.data] /> 
32</#if> 
33	 
34<#-- KML --> 
35<#assign dlFileEntryKML = dlTool.getDLFileEntryByPath(TrazadoRuta.getData())!/> 
36<#assign document = "" /> 
37<#assign lookAtLongitude = ""/> 
38<#assign lookAtLatitude = ""/> 
39<#assign coordinates_all = "" /> 
40<#if validator.isNotNull(dlFileEntryKML)> 
41	<#assign document = saxReaderUtil.read(dlFileEntryKML.getContentStream())/> 
42	<#assign rootElement = document.getRootElement()/> 
43	<#assign xpath = saxReaderUtil.createXPath("//root:Camera/root:longitude", "root", "http://www.opengis.net/kml/2.2")/> 
44	<#assign lookAtLongitude = xpath.selectSingleNode(document)!> 
45	<#assign xpath = saxReaderUtil.createXPath("//root:Camera/root:latitude", "root", "http://www.opengis.net/kml/2.2")/> 
46	<#assign lookAtLatitude = xpath.selectSingleNode(document)!> 
47</#if> 
48 
49<#if validator.isNotNull(document) && validator.isNull(lookAtLongitude)> 
50	<#assign xpath = saxReaderUtil.createXPath("//root:LookAt/root:longitude", "root", "http://www.opengis.net/kml/2.2")/> 
51	<#assign lookAtLongitude = xpath.selectSingleNode(document)!> 
52</#if> 
53	 
54<#if validator.isNotNull(document) && validator.isNull(lookAtLatitude)> 
55	<#assign xpath = saxReaderUtil.createXPath("//root:LookAt/root:latitude", "root", "http://www.opengis.net/kml/2.2")/> 
56	<#assign lookAtLatitude = xpath.selectSingleNode(document)!> 
57</#if> 
58 
59<#-- En caso de que no haya ni lookAt ni camera --> 
60<#if validator.isNotNull(document) && (validator.isNull(lookAtLongitude) || validator.isNull(lookAtLatitude))> 
61	<#assign xpath = saxReaderUtil.createXPath("//root:Placemark/root:LineString/root:coordinates", "root", "http://www.opengis.net/kml/2.2")/> 
62	<#assign coordinates_all = xpath.selectSingleNode(document)!> 
63	<#assign coordinates_array = coordinates_all.data?split(" ")> 
64	<#assign coordinate_middle_pos = getterUtil.getInteger(coordinates_array?size/2)> 
65	<#assign coordinate_middle = coordinates_array[coordinate_middle_pos]?split(",")> 
66	<#assign lookAtLongitude = coordinate_middle[0]> 
67	<#assign lookAtLatitude = coordinate_middle[1]> 
68</#if> 
69 
70<#if validator.isNotNull(document) && validator.isNotNull(coordinates_all) > 
71	<#assign xpath = saxReaderUtil.createXPath("//root:Placemark/root:LineString/root:coordinates", "root", "http://www.opengis.net/kml/2.2")/> 
72	<#assign coordinates_all = xpath.selectSingleNode(document)!> 
73	<#assign coordinates_array = coordinates_all.getData()?split(" ")/> 
74	<#assign coordinates_start = coordinates_array[0]?split(",")/> 
75</#if> 
76 
77<#assign tramosAlternativosArray = []/> 
78 
79<#if Tramos.getSiblings()?size!=0> 
80 
81	<#list Tramos.getSiblings() as tramo> 
82		<#if tramo.TramoAlternativo.getData()=="true"> 
83			<#assign tramosAlternativosArray = tramosAlternativosArray + ["true"] /> 
84		<#else> 
85			<#assign tramosAlternativosArray = tramosAlternativosArray + [ "false" ] /> 
86		</#if> 
87	 
88	</#list> 
89 
90</#if> 
91 
92<#-- Id de los tramos --> 
93<#assign counter = 1> 
94<#assign count = 0> 
95 
96<#-- Obtener el nombre de los tramos --> 
97<#assign xpath = saxReaderUtil.createXPath("//root:LineString/ancestor::root:Placemark/root:name", "root", "http://www.opengis.net/kml/2.2")> 
98<#assign placemarksName = xpath.selectNodes(document)> 
99 
100<#assign tipoRuta = stringUtil.lowerCase(TipoRuta.getData())/> 
101 
102<article class="template ${ddmStructureNameNormalize}" role="article" itemscope itemtype="http://schema.org/TouristicAttraction"> 
103	 
104	<header class="article-header-wrapper row no-gutters"> 
105	     
106		<div class="article-header-container article-header-container-static"> 
107			<div class="container"> 
108				<div class="row no-gutters"> 
109					<div class="col-md-6"> 
110						<div class="article-image" style="background-image: url('${articleMainImageThumbnail3}')"> 
111							<img class="sr-only" src="${articleMainImageThumbnail3}" alt="${languageUtil.format(request,'go-to-x','image')} ${title}" itemprop="image"/> 
112						</div> 
113					</div> 
114					<div class="article-info-wrapper col-md-6"> 
115						<div class="article-info"> 
116						 
117							<h2 class="article-title" itemprop="name">${title}</h2> 
118							<div class="article-list-wrapper"> 
119															 
120								<ul class="article-list list-unstyled article-list-info"> 
121									<li class="article-list-item mb-4"> 
122										<span class="fas fa-map-marker-alt"> 
123											<span class="hide-accessible">${languageUtil.get(request,"address")}</span> 
124										</span>											 
125										<span class="field-wrapper" itemprop="address"> 
126											<span class="important"> 
127												<#assign concejos = []/> 
128												<#list Contacto.Concejos.getSiblings() as Item> 
129													<#if Item.data?has_content> 
130														<#assign concejos = [Item.data] /> 
131													</#if> 
132												</#list> 
133												${stringUtil.merge(concejos)} 
134											</span> 
135											<span class="text d-block">${stringUtil.merge(address)}</span> 
136										</span> 
137									</li> 
138								</ul> 
139								 
140								<div class="article-info-table article-info-table-fixed"> 
141									<div class="article-info-table-row"> 
142										<div class="article-info-table-cell"> 
143											<div class="article-list-wrapper"> 
144												<ul class="article-list list-unstyled article-list-info info-route"> 
145												 
146												<#if Contacto.Distancia.data?has_content> 
147													<li class="article-list-item"> 
148														<span class="fas fa-ruler-horizontal"> 
149															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-distancia")}</span> 
150														</span> 
151														<span class="field-wrapper"> 
152															<span class="field">${languageUtil.get(request, "infoasturias-distancia")}:</span> 
153															<#list Contacto.Distancia.getSiblings() as Item> 
154																<span class="text btn btn-primary btn-thin text-capitalize"><span class="font-size-11 text-distance">${Item.data}</span> kms</span><#if Item_has_next> </#if>													 
155															</#list> 
156														</span> 
157													</li> 
158												</#if> 
159												 
160												<#if Contacto.Dificultad.data?has_content && tipoRuta!="coche"> 
161													<#assign dificultadMap = {  
162														"1": languageUtil.get(request,"infoasturias-dificultad-baja"),  
163														"2": languageUtil.get(request,"infoasturias-dificultad-media"),  
164														"3": languageUtil.get(request,"infoasturias-dificultad-alta") 
165														}  
166													/> 
167													<li class="article-list-item"> 
168														<span class="fas fa-layer-group"> 
169															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-dificultad")}</span> 
170														</span> 
171														<span class="field-wrapper"> 
172															<span class="field">${languageUtil.get(request, "infoasturias-dificultad")}:</span> 
173															<span class="text"> 
174																<span>${dificultadMap[Contacto.Dificultad.data]}</span> 
175															</span>												 
176														</span> 
177													</li> 
178												</#if> 
179												 
180												<#if Contacto.Codigo.data?has_content> 
181													<li class="article-list-item"> 
182														<span class="fas fa-info"> 
183															<span class="hide-accessible">${languageUtil.get(request,"code")}</span> 
184														</span> 
185														<span class="field-wrapper"> 
186															<span class="field">${languageUtil.get(request, "code")}:</span> 
187															<span class="text"> 
188																<span>${Contacto.Codigo.data}</span> 
189															</span>												 
190														</span> 
191													</li> 
192												</#if> 
193												 
194												<#if Contacto.Altitud.data?has_content> 
195													<li class="article-list-item"> 
196														<span class="fas fa-ruler-vertical"> 
197															<span class="hide-accessible">${languageUtil.get(request,"metadata.Geographic.ALTITUDE")}</span> 
198														</span> 
199														<span class="field-wrapper"> 
200															<span class="field">${languageUtil.get(request, "metadata.Geographic.ALTITUDE")}:</span> 
201															<span class="text">${Contacto.Altitud.data}</span> 
202														</span> 
203													</li> 
204												</#if> 
205												 
206												<#if Contacto.Desnivel.data?has_content> 
207													<li class="article-list-item"> 
208														<span class="fas fa-chart-line"> 
209															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-desnivel")}</span> 
210														</span> 
211														<span class="field-wrapper"> 
212															<span class="field">${languageUtil.get(request, "infoasturias-desnivel")}:</span> 
213															<span class="text">${Contacto.Desnivel.data} m.</span> 
214														</span> 
215													</li> 
216												</#if> 
217												</ul> 
218											</div> 
219										</div> 
220										<div class="article-info-table-cell"> 
221											<div class="article-list-wrapper"> 
222												<ul class="article-list list-unstyled article-list-info"> 
223													<#if Contacto.TiempoBTT.data?has_content> 
224														<li class="article-list-item"> 
225															<span class="fas fa-bicycle"> 
226																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-btt")}</span> 
227															</span> 
228															<span class="field-wrapper"> 
229																<span class="field">${languageUtil.get(request, "infoasturias-btt")}:</span> 
230																<span class="text">${Contacto.TiempoBTT.data}</span> 
231															</span> 
232														</li> 
233													</#if> 
234													 
235													<#if Contacto.TiempoAPie.data?has_content> 
236														<li class="article-list-item"> 
237															<span class="fas fa-shoe-prints"> 
238																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-a-pie")}</span> 
239															</span> 
240															<span class="field-wrapper"> 
241																<span class="field">${languageUtil.get(request, "infoasturias-a-pie")}:</span> 
242																<span class="text">${Contacto.TiempoAPie.data}</span> 
243															</span> 
244														</li> 
245													</#if> 
246													 
247													<#if Contacto.TiempoCoche.data?has_content> 
248														<li class="article-list-item"> 
249															<span class="fas fa-car"> 
250																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-coches")}</span> 
251															</span> 
252															<span class="field-wrapper"> 
253																<span class="field">${languageUtil.get(request, "infoasturias-coches")}:</span> 
254																<span class="text">${Contacto.TiempoCoche.data}</span> 
255															</span> 
256														</li> 
257													</#if> 
258													 
259													<#if Contacto.TiempoViasVerdes.data?has_content> 
260														<li class="article-list-item"> 
261															<span class="fas fa-route"> 
262																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-vias-verdes")}</span> 
263															</span> 
264															<span class="field-wrapper"> 
265																<span class="field">${languageUtil.get(request, "infoasturias-vias-verdes")}:</span> 
266																<span class="text">${Contacto.TiempoViasVerdes.data}</span> 
267															</span> 
268														</li> 
269													</#if> 
270													 
271													<#if Contacto.TiempoAscension.data?has_content> 
272														<li class="article-list-item"> 
273															<span class="fas fa-hiking"> 
274																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-ascension")}</span> 
275															</span> 
276															<span class="field-wrapper"> 
277																<span class="field">${languageUtil.get(request, "infoasturias-ascension")}:</span> 
278																<span class="text">${Contacto.TiempoAscension.data}</span> 
279															</span> 
280														</li> 
281													</#if> 
282												</ul> 
283											</div> 
284										</div> 
285									</div> 
286									<div class="article-info-table-row"> 
287										<div class="article-info-table-cell"> 
288											<div class="article-list-wrapper"> 
289												<ul class="article-list list-unstyled article-list-info"> 
290													<#if Contacto.SituacionGeografica.data?has_content> 
291														<li class="article-list-item"> 
292															<span class="fas fa-map-marked-alt"> 
293																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-situacion-geografica")}</span> 
294															</span> 
295															<span class="field-wrapper"> 
296																<span class="field">${languageUtil.get(request, "infoasturias-situacion-geografica")}:</span> 
297																<span class="text">${Contacto.SituacionGeografica.data}</span> 
298															</span> 
299														</li> 
300													</#if> 
301													 
302													<#if Contacto.PuntoDePartida.data?has_content> 
303														<li class="article-list-item"> 
304															<span class="fas fa-map-marker"> 
305																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-punto-de-partida")}</span> 
306															</span> 
307															<span class="field-wrapper"> 
308																<span class="field">${languageUtil.get(request, "infoasturias-punto-de-partida")}:</span> 
309																<span class="text">${Contacto.PuntoDePartida.data}</span> 
310															</span> 
311														</li> 
312													</#if> 
313													 
314													<#if TipoRuta.data?has_content> 
315														<li class="article-list-item hide"><#-- Se oculta por indicación de Noemí 27062022 --> 
316															<span class="fas fa-route"> 
317																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-tipo-de-ruta")}</span> 
318															</span> 
319															<span class="field-wrapper"> 
320																<span class="field">${languageUtil.get(request, "infoasturias-tipo-de-ruta")}:</span> 
321																<span class="text">${TipoRuta.data}</span> 
322															</span> 
323														</li> 
324													</#if> 
325													 
326													<#if Contacto.TipoDeRecorrido.data?has_content> 
327														<li class="article-list-item"> 
328															<span class="fas fa-route"> 
329																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-tipo-recorrido")}</span> 
330															</span> 
331															<span class="field-wrapper"> 
332																<span class="field">${languageUtil.get(request, "infoasturias-tipo-recorrido")}:</span> 
333																<span class="text">${Contacto.TipoDeRecorrido.data}</span> 
334															</span> 
335														</li> 
336													</#if> 
337												</ul> 
338											</div> 
339										</div> 
340										<div class="article-info-table-cell"> 
341											<div class="article-list-wrapper"> 
342												<ul class="article-list list-unstyled article-list-info"> 
343													<#if Folletos.Folleto.data?has_content> 
344														<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Folletos.Folleto.data) /> 
345														<#if validator.isNotNull(dlFileEntry)> 
346															<#assign downloadURL = "/documents/${groupId}/${dlFileEntry.getUuid()}" /> 
347															<#assign ext = dlFileEntry.getExtension()/> 
348															<li class="article-list-item document document-${ext}"> 
349																<i class="far fa-file-pdf"></i> 
350																<span class="field-wrapper"> 
351																	<span class="field">${languageUtil.get(request, "visuality-issuu")}:</span> 
352																	<span class="text"> 
353																	<#list Folletos.Folleto.getSiblings() as Item> 
354																		<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Item.data) /> 
355																		<#if validator.isNotNull(dlFileEntry)> 
356																			<#assign downloadURL = "/documents/${groupId}/${dlFileEntry.getUuid()}" /> 
357																			<a href="${downloadURL}" title='${dlFileEntry.getTitle()}' class="">${dlFileEntry.getTitle()}</a><#if Item_has_next>, </#if> 
358																		</#if> 
359																	</#list> 
360																	</span> 
361																</span>		 
362															</li> 
363														</#if> 
364													</#if>	 
365													 
366													<#if TrazadoRuta.data?has_content || TrazadoRutaGPX.data?has_content> 
367														<li class="article-list-item document"> 
368															<span class="far fa-file"> 
369																<span class="hide-accessible">${languageUtil.get(request,"infoasturias-trazado-de-la-ruta")}</span> 
370															</span> 
371															<span class="field-wrapper"> 
372																<span class="field">${languageUtil.get(request, "infoasturias-trazado-de-la-ruta")}:</span> 
373																<span class="text">												 
374																 
375																	<#assign tracks = [] /> 
376																	<#if TrazadoRuta.data?has_content> 
377																		<#assign tracks = tracks + [TrazadoRuta.data] /> 
378																	</#if> 
379																	<#if TrazadoRutaGPX.data?has_content > 
380																		<#assign tracks = tracks + [TrazadoRutaGPX.data] /> 
381																	</#if> 
382																	 
383																	<#if tracks?has_content > 
384																		<#list tracks as track> 
385																			<#assign dlFileEntryTrack = dlTool.getDLFileEntryByPath(track) /> 
386																			<#if validator.isNotNull(dlFileEntryTrack)> 
387																				<#assign downloadURLkml = "/documents/${groupId}/${dlFileEntryTrack.getUuid()}" /> 
388																				<#assign extKML = dlFileEntryTrack.getExtension()/> 
389																				<a href="${downloadURLkml}" class="${extKML}" title="${languageUtil.get(request,'infoasturias-download')} ${extKML}">${languageUtil.get(request,'infoasturias-download')} ${extKML}</a><#if track?has_next>, </#if> 
390																			</#if> 
391																		</#list> 
392																	</#if> 
393 
394																</span> 
395															</span>		 
396														</li> 
397													</#if> 
398												</ul> 
399											</div> 
400										</div> 
401									</div> 
402								</div> 
403							</div> 
404						</div> 
405					</div> 
406				</div> 
407			</div> 
408		</div>	  
409	</header> 
410	 
411	<div class="sheet sheet-lg"> 
412	 
413		 
414			<div class="article-great <#if validator.isNull(Informacion.Resumen.data)>hide</#if>"> 
415				<div class="route-resume-tracks-box hide"> 
416					<div class="route-resume-tracks"> 
417						<div class="route-resume-track-marker route-resume-track-marker-first"><div class="route-point-text"></div><div class="route-km-text">Km 0</div></div> 
418						<div class="route-resume-track-marker route-resume-track-marker-last"><div class="route-point-text"></div><div class="route-km-text">Km 0</div></div> 
419					</div> 
420				</div> 
421				<#if Informacion.Resumen.data?has_content> 
422					<p>${htmlUtil.extractText(Informacion.Resumen.data)}</p> 
423				</#if> 
424			</div> 
425		 
426		 
427			 
428		<#assign hasTab1 = Contacto.ContactoTexto.data?has_content || Informacion.InformacionTexto.data?has_content> 
429		<#assign hasTab2 = Informacion.TextoTramos.data?has_content || validator.isNotNull(Tramos.TramoAlternativo.data) || Tramos.OrigenDestino.data?has_content || Tramos.DistanciaTramo.data?has_content || Tramos.DescripcionTramo.data?has_content> 
430		<#assign hasTab3 = Geolocalizacion.Coordenadas.data?has_content || validator.isNotNull(TrazadoRuta.getData())> 
431		<#assign hasTab4 = Informacion.Itinerario.data?has_content> 
432		<#assign hasTab5 = Detalle.DetalleTexto.data?has_content || Detalle.DetalleImagen.data?has_content> 
433		<#assign showFirstTab = true> 
434		 
435		<div class="article-accordion accordion"> 
436			<#if Visualizador.Slide.getData()?has_content> 
437				<div class="slick article-slick article-section <#if Visualizador.Slide.getSiblings()?size==1>hide</#if>"> 
438					<#list Visualizador.Slide.getSiblings() as Slide> 
439						<#if validator.isNotNull(Slide.getData()) || validator.isNotNull(Slide.SlideUrl.getData())> 
440							<#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! /> 
441							<#assign slideThumbnail2 = dlTool.getThumbnailByJSON(Slide.data, "2")! /> 
442							<#assign slidePath = dlTool.getPathByJSON(Slide.data, themeDisplay.getScopeGroupId())! /> 
443							<#assign slideUrl = Slide.SlideUrl.data /> 
444							<#assign dataMap = "" /> 
445 
446							<#if slideUrl?has_content> 
447 
448								<#assign slideTitle = "${languageUtil.get(request, 'video')} ${Slide?index}" /> 
449								<#if Slide.SlideTitulo.data?has_content> 
450									<#assign slideTitle = Slide.SlideTitulo.data />   
451								</#if> 
452 
453								<#-- Youtube --> 
454								<#assign slideUrl = stringUtil.replace(slideUrl, 'watch?v=', 'embed/') /> 
455								<#assign slideThumbnail2 = stringUtil.replace(slideUrl, 'www', 'img') /> 
456								<#assign slideThumbnail2 = stringUtil.replace(slideThumbnail2, 'embed', 'vi') /> 
457								<#assign slideThumbnail2 = '${slideThumbnail2}/mqdefault.jpg' /> 
458 
459								<#-- Vimeo --> 
460								<#if slideUrl?contains("vimeo")> 
461									<#assign slideUrl = stringUtil.replace(slideUrl, 'http://vimeo.com/', 'https://player.vimeo.com/video/') /> 
462									<#assign slideVimeoId = stringUtil.extractLast(slideUrl, 'https://player.vimeo.com/video/') /> 
463									<#if slideVimeoId?has_content> 
464										<#assign slideVimeoJsonPath = 'http://vimeo.com/api/v2/video/${slideVimeoId}.json' /> 
465										<#assign slideVimeoJsonContent = getUrlContent.getContent(slideVimeoJsonPath)! /> 
466										<#if slideVimeoJsonContent?has_content> 
467											<#assign slideVimeoJsonArray = jsonFactoryUtil.createJSONArray(slideVimeoJsonContent) /> 
468											<#assign slideVimeoJsonItem = slideVimeoJsonArray.get(0) /> 
469											<#assign slideThumbnail2 = slideVimeoJsonItem.thumbnail_medium /> 
470										</#if> 
471									</#if> 
472								</#if> 
473 
474								<div id="slide-${Slide?index}" class="slide"> 
475									<a class="card card-simple card-video" href="#" onclick="javascript: event.preventDefault(); showDialogIframe('${slideUrl}', '${slideTitle}', 800, 600, 'videoPopup', 'videoPopupIframe');" title="${slideTitle}"> 
476										<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
477										<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
478									</a> 
479								</div> 
480							<#else> 
481								<#assign slideTitle = "${languageUtil.get(request, 'image')} ${Slide?index}" /> 
482								<#if Slide.SlideTitulo.data?has_content> 
483									<#assign slideTitle = Slide.SlideTitulo.data />   
484								</#if> 
485 
486								<div class="slide"> 
487									<a class="card card-simple lightbox" href="${slidePath}" title="${slideTitle}"> 
488										<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
489										<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
490									</a> 
491								</div> 
492							</#if> 
493						</#if> 
494					</#list> 
495				</div> 
496			</#if> 
497		 
498			<#if hasTab1> 
499				<div id="tab1" class="article-section accordion-item"> 
500					<a href="#tabContent1" id="tabHeading" class="d-block border-0 tab <#if !showFirstTab>collapsed</#if>" aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent1" role="button"><h3 class="h3 accordion-header">${languageUtil.get(request,'info')}</h3></a> 
501					<div id="tabContent1" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading"> 
502						<#if Contacto.ContactoTexto.data?has_content> 
503							${Contacto.ContactoTexto.data} 
504						</#if> 
505						<#if Informacion.InformacionTexto.data?has_content> 
506							${Informacion.InformacionTexto.data} 
507						</#if> 
508					</div> 
509				</div> 
510				<#assign showFirstTab = false>				   
511			</#if> 
512 
513			<#if hasTab2> 
514				<div id="tab2" class="article-section accordion-item"> 
515					<a href="#tabContent2" id="tabHeading2" class="d-block border-0 tab <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent2" role="button"><h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-recorrido')}</h3></a> 
516					<div id="tabContent2" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading2"> 
517						<#list Informacion.TextoTramos.getSiblings() as Item> 
518							<#if validator.isNotNull(Item.data)> 
519								<p>${Item.data}</p> 
520							</#if> 
521						</#list> 
522						<#list Tramos.getSiblings() as Item> 
523							<h4 id="track-${Item?index+1}" class="h4 mt-5 route-${Item?index+1}"> 
524								<#if tipoRuta=="coche">${languageUtil.get(request,"day")} ${Item?index+1}:</#if> ${Item.OrigenDestino.data} 
525								<span class="route-distance btn btn-link float-right text-capitalize"> 
526									${Item.DistanciaTramo.data} 
527								</span> 
528							</h4>    
529							 
530							<#if getterUtil.getBoolean(Item.TramoAlternativo.getData()) && getterUtil.getBoolean(Item.TramoAlternativo.getData())> 
531								<ul class="article-list list-unstyled article-list-info"> 
532									<li class="article-list-item"> 
533										<span class="fas fa-route"> 
534											<span class="hide-accessible">${languageUtil.get(request,"infoasturias-tramo-alternativo")}</span> 
535										</span> 
536										<span class="field-wrapper"> 
537											<span class="field">${languageUtil.get(request, "infoasturias-tramo-alternativo")}:</span> 
538										</span> 
539									</li> 
540								</ul> 
541							</#if> 
542							 
543							<#if Item.DescripcionTramo.data?has_content> 
544								${Item.DescripcionTramo.data} 
545							</#if> 
546						</#list> 
547					</div> 
548				</div> 
549				<#assign showFirstTab = false> 
550			</#if>	 
551			 
552			<#if hasTab3>				 
553				<#assign showFirstTab = true>				  
554				<#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) /> 
555				<div id="tab3" class="article-section accordion-item"> 
556					<a href="#tabContent3" id="tabHeading3" class="d-block border-0 tab <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent3" role="button"><h3 class="h3 accordion-header">${languageUtil.get(request,'map')}</h3></a> 
557					<div id="tabContent3" class="article-section-content accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading3"> 
558						<script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script> 
559						<script type="text/javascript"> 
560						<#assign xpath = saxReaderUtil.createXPath("//root:StyleMap", "root", "http://www.opengis.net/kml/2.2")/> 
561						<#assign style_maps = xpath.selectNodes(document)/> 
562 
563						var style_mapsJS = {}; 
564						var line_stylesJS = {}; 
565 
566						<#list style_maps as style_map> 
567							<#assign style_map_styleurl_path = "${style_map.getUniquePath()}/*[name()='Pair']/*[name()='styleUrl']"/> 
568							<#assign style_map_styleurl_node = style_map.selectSingleNode(style_map_styleurl_path)/> 
569							<#assign nodeText = style_map_styleurl_node.getText()/> 
570							style_mapsJS['${style_map.selectSingleNode("${style_map.getUniquePath()}/@id").getText()}'] = '${nodeText?substring(1)}'; 
571						</#list> 
572						<#assign xpath = saxReaderUtil.createXPath("//root:Style", "root", "http://www.opengis.net/kml/2.2")/> 
573						<#assign line_styles = xpath.selectNodes(document)/> 
574									 
575						<#list line_styles as line_style> 
576							<#assign line_style_color_path = "${line_style.getUniquePath()}/*[name()='LineStyle']/*[name()='color']"/> 
577							<#assign line_style_color_node = line_style.selectSingleNode(line_style_color_path)!/> 
578							<#if validator.isNotNull(line_style_color_node)> 
579								line_stylesJS['${line_style.selectSingleNode("${line_style.getUniquePath()}/@id").getText()}'] = {color: '#${line_style_color_node.getText()?substring(6,8)}${line_style_color_node.getText()?substring(4,6)}${line_style_color_node.getText()?substring(2,4)}', opacity: 0x${line_style_color_node.getText()?substring(0,2)}/0xFF}; 
580							</#if> 
581						</#list> 
582						</script> 
583 
584 
585						<script type="text/javascript"> 
586						var route = {};//Ruta 
587						var totalDistance = 0; 
588						<#list placemarksName as name> 
589							 
590							var nombreTramo = "${name.getText()}"; 
591								nombreTramo = nombreTramo.replace("Tramo ",""); 
592								nombreTramo = nombreTramo.replace(/[–]/gi,'-'); 
593								nombreTramo = nombreTramo.trim(); 
594								 
595 
596							var tramo = {};//Datos del tramo 
597							var coordinatesJS = [];//Coordenadas del tramo 
598 
599							<#-- Identificador color del Tramo --> 
600							<#assign xpath = saxReaderUtil.createXPath("//root:LineString/ancestor::root:Placemark[root:name='${name.getText()}']/root:styleUrl", "root", "http://www.opengis.net/kml/2.2")/> 
601							<#assign styleUrl = xpath.selectSingleNode(document)!> 
602 
603							<#-- Obtener los puntos de ruta para dibujarlos --> 
604							<#assign xpath = saxReaderUtil.createXPath("//root:LineString/ancestor::root:Placemark[root:name='${name.getText()}']/root:LineString/root:coordinates", "root", "http://www.opengis.net/kml/2.2")/> 
605							<#assign coordinates = xpath.selectSingleNode(document)!> 
606							<#-- Hacemos un split para separar las coordenadas --> 
607							<#assign arrayCoordinates = coordinates.getText()?split(" ")/> 
608							<#assign start=""/> 
609							<#assign end=""/> 
610							<#list arrayCoordinates as coordinate> 
611							<#assign splitCoordinates = coordinate?split(",")/> 
612							 
613							 
614							<#if splitCoordinates?size gte 2>								 
615								coordinatesJS.push(new L.LatLng(${splitCoordinates[1]}, ${splitCoordinates[0]})); 
616								<#if validator.isNull(start)> 
617									<#assign start = "${splitCoordinates[1]} +',' + ${splitCoordinates[0]}">									 
618								</#if> 
619								<#assign end = "${splitCoordinates[1]} +',' + ${splitCoordinates[0]}"> 
620							</#if> 
621								 
622							</#list> 
623							tramo['start'] = ${start}; 
624							tramo['end'] = ${end}; 
625							 
626							var distance = 0; 
627							var previousPoint=""; 
628 
629							tramo['name'] = nombreTramo; 
630							tramo['lineStyle'] =  line_stylesJS[style_mapsJS['${styleUrl.getText()?substring(1)}']]; 
631							tramo['coordinates'] = coordinatesJS; 
632 
633							coordinatesJS.forEach(function (latLng) { 
634								if (previousPoint) { 
635									distance += previousPoint.distanceTo(latLng); 
636
637								previousPoint = latLng; 
638							}); 
639 
640							tramo['distance'] = (distance/1000).toFixed(1)/1; 
641							totalDistance +=(distance/1000).toFixed(1)/1; 
642 
643							<#if tramosAlternativosArray?size!=0> 
644								tramo['isAlternative'] = ${tramosAlternativosArray[count]}; 
645							<#else> 
646								tramo['isAlternative'] = false; 
647							</#if> 
648							 
649 
650							route['${counter}'] = tramo; 
651 
652							<#assign counter = counter +1/> 
653							<#assign count = count +1/> 
654 
655						</#list> 
656						</script>						 
657						<div class="article-section-content"> 
658							<div id="article-map-wrapper-${articleId}" class="article-map-wrapper">  
659								<div id="article-map-content-${articleId}" style="width: 100%; height: 400px; z-index:1"><!-- MAP --></div> 
660								<div class="article-map-form">  
661									<div class="name important">${title}</div> 
662									<div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${lookAtLatitude.getText()}, ${lookAtLongitude.getText()}</span></div> 
663									<form action="https://maps.google.es/maps" method="get" target="_blank"> 
664										<input type="hidden" name="daddr" value="${lookAtLatitude.getText()}, ${lookAtLongitude.getText()}"> 
665										<label for="saddrText"><span class="label hide-accessible">${languageUtil.get(request,'infoasturias-insert-from')}: </span></label> 
666										<label for="saddr"><span class="label">${languageUtil.get(request,'infoasturias-from')}: </span></label> 
667										<input class="form-control" type="text" maxlength="40" name="saddrText" id="saddrText" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}"> 
668										<input class="form-control" type="hidden" name="saddr" id="saddr" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}"> 
669										<button class="btn btn-text" type="submit">${languageUtil.get(request,'infoasturias-como-llegar')} &raquo;</button> 
670									</form> 
671								</div> 
672							</div> 
673							 
674							<script type="text/javascript"> 
675								AUI().ready('aui-base', function(A){ 
676									var lookAt = new L.LatLng(${lookAtLatitude.getText()}, ${lookAtLongitude.getText()});//Cámara 
677									 
678									<#if validator.isNotNull (Geolocalizacion.Coordenadas.data)> 
679										lookAt =  new L.LatLng(${Geolocalizacion.Coordenadas.data});//contenido 
680									</#if> 
681									const mapContent = new L.Map('article-map-content-${articleId}', { center: lookAt, zoom: 10 }); 
682									const osm = new L.TileLayer('http://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}'); 
683									 
684 
685									mapContent.addLayer(osm); 
686									 
687									//definir iconos inicio y fin tramo 
688									var startMarker; 
689									var middleMarker; 
690									var endMarker; 
691									var colorSeries = ["e9ecef","f5f7f9","fff"]; 
692									var colorSeriesSelector = 0; 
693									var generalDistance =0; 
694									 
695									var endIconTheme = '/o/turismo-asturias-theme/images/icons/routes/Icono_Fin_Ruta_${tipoRuta}_min.png'; 
696									var endIcon = L.icon({ 
697										iconUrl: endIconTheme, 
698										iconSize:     [27, 35], 
699										iconAnchor:   [13, 35], 
700										iconShadow:   [0,0], 
701										popupAnchor:  [0, -30] 
702									}); 
703									var middleIconTheme = '/o/turismo-asturias-theme/images/icons/routes/gmaps-marker-icon-grey.png'; 
704									var middleIcon = L.icon({ 
705										iconUrl: middleIconTheme, 
706										iconSize:     [20, 28], 
707										iconAnchor:   [10, 28], 
708										iconShadow:   [0,0], 
709										popupAnchor:  [0, -30] 
710									}); 
711 
712									var startIconTheme = '/o/turismo-asturias-theme/images/icons/routes/Icono_Inicio_Ruta_${tipoRuta}_min.png'; 
713									var startIcon = L.icon({ 
714										iconUrl: startIconTheme, 
715										iconSize:     [27, 35], 
716										iconAnchor:   [13, 35], 
717										iconShadow:   [0,0], 
718										popupAnchor:  [0, -30] 
719									});	 
720									 
721									for (const ruta in route) { 
722										var stretch = route[ruta]; 
723										 
724										var name = stretch.name; 
725										var nameArray = name.split("-"); 
726										var coordinates = stretch.coordinates; 
727										var distance =''+ stretch.distance; 
728										var isStrechAlternative = stretch.isAlternative; 
729										var lineStyle = stretch.lineStyle || { color: '#3c3be3', opacity: 1 }; 
730										var startCoordinates = stretch.start.split(","); 
731										var endCoordinates = stretch.end.split(","); 
732										 
733										var track_node = A.Node.create('<div class="route-resume-track ' + (ruta==1?'route-resume-track-first':'') + '"><a class="route-resume-track-link" href="#track-'+(ruta)+'"></a></div>'); 
734										var track_size = ((distance/totalDistance*100) + '%'); 
735										track_node.setStyles({width: track_size, backgroundColor: '#' + colorSeries[colorSeriesSelector]}); 
736										track_node.appendTo(A.one('.route-resume-tracks')); 
737 
738										 
739										if(distance) 
740											A.one('.template .route-'+ ruta + ' .route-distance').text(distance.replace(".",",") + ' Kms'); 
741										 
742										if(!isStrechAlternative) 
743											generalDistance = generalDistance + stretch.distance; 
744											 
745										if(Object.keys(route).length == 1){ 
746											A.one('.route-resume-track-marker-first .route-point-text').text(nameArray[0]); 
747											A.one('.route-resume-track-marker-last .route-km-text').text('Km ' + distance.replace(".",",")); 
748											A.one('.route-resume-track-marker-last .route-point-text').text(nameArray[nameArray.length-1]); 
749											startMarker = L.marker([startCoordinates[0],startCoordinates[1]], {icon: startIcon}).bindPopup(nameArray[0]).addTo(mapContent); 
750											endMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: endIcon}).bindPopup(nameArray.length-1).addTo(mapContent); 
751
752										else{ 
753											var track_point =A.Node.create('<div class="route-resume-point"></div>'); 
754											if(ruta==1){ 
755												A.one('.route-resume-track-marker-first .route-point-text').text(nameArray[0]); 
756												var track_point_text = A.Node.create('<div class="route-point-text">' + nameArray[1] + '</div><div class="route-km-text">Km '+distance+'</div>'); 
757												startMarker = L.marker([startCoordinates[0],startCoordinates[1]], {icon: startIcon}).bindPopup(nameArray[0]).addTo(mapContent); 
758												 
759												if(ruta == Object.keys(route).length-1 && route[Object.keys(route).length].isAlternative) 
760													endMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: endIcon}).bindPopup(nameArray.length-1).addTo(mapContent); 
761												else 
762													middleMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: middleIcon}).bindPopup(nameArray.length-1).addTo(mapContent); 
763													 
764											track_point_text.appendTo(track_point); 
765											track_point.appendTo(A.one('.route-resume-tracks')); 
766
767											else if(ruta ==  Object.keys(route).length){ 
768												A.one('.route-resume-track-marker-last .route-km-text').text('Km ' + distance.replace(".",",")); 
769												A.one('.route-resume-track-marker-last .route-point-text').text(nameArray[nameArray.length-1]); 
770												 
771												if(isStrechAlternative){ 
772													middleMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: middleIcon}).bindPopup(nameArray[nameArray.length-1]).addTo(mapContent); 
773													var alternativetrack_node = A.Node.create('<li class="article-list-item distance-wrapper"><span class="fas fa-ruler-horizontal"><span class="hide-accessible"> ${languageUtil.get(request, "infoasturias-tramo-alternativo")}</span></span><span class="field-wrapper"><span class="field">${languageUtil.get(request, "infoasturias-tramo-alternativo")}: </span><span class="text btn btn-secondary btn-thin text-lowercase"><span class="font-size-11 text-white text-distance-alternative">'+distance +'</span> kms</span></span></li>'); 
774													alternativetrack_node.appendTo(A.one('.template .info-route')); 
775
776												else{ 
777													endMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: endIcon}).bindPopup(nameArray[nameArray.length-1]).addTo(mapContent); 
778
779
780											else{ 
781											var track_point_text = A.Node.create('<div class="route-point-text">' + nameArray[nameArray.length-1] + '</div><div class="route-km-text">Km '+distance+'</div>'); 
782											track_point_text.appendTo(track_point); 
783											track_point.appendTo(A.one('.route-resume-tracks')); 
784											middleMarker = L.marker([startCoordinates[0],startCoordinates[1]], {icon: middleIcon}).bindPopup(nameArray[0]).addTo(mapContent); 
785
786
787										 
788										var polyline = new L.Polyline(coordinates, { 
789											color: '' + lineStyle.color, 
790											opacity: lineStyle.opacity 
791										}); 
792										polyline.bindPopup(name).addTo(mapContent); 
793										 
794									 
795									colorSeriesSelector++; 
796									if(colorSeriesSelector == 3) 
797									colorSeriesSelector = 0; 
798									 
799									}//fin rutas 
800									 
801									if(generalDistance) 
802										A.one('.template .text-distance').text(''+ Math.round(generalDistance * 100) / 100); 
803 
804									//Contributor 
805									L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
806										attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.' 
807									}).addTo(mapContent); 
808									 
809								}); //AUI.ready 
810							</script> 
811						</div> 
812						<#if validator.isNotNull(dlFileEntryKML) && tipoRuta!="coche"> 
813							 
814							<#assign params = { 
815								"displayStyle":"ddmTemplate_435797", 
816								"displayStyleGroupId":"${themeDisplay.getCompanyGroupId()}", 
817								"portletId": portletTool.getPortletId(request),  
818								"articleId":"${articleId}", 
819								"dlFileEntryuuId":"${dlFileEntryKML.getUuid()}" 
820							}> 
821							<#assign portletURL = portletTool.createURL(request, "as_asac_adtvisor_portlet_AdtVisorDialogPortlet", themeDisplay.getPlid(), "RENDER_PHASE", "pop_up", params) /> 
822							<div class="button-row button-row-center my-3"> 
823							<button type="button" class="btn btn-primary btn-small text-center text-uppercase" onclick="event.preventDefault(); showDialogIframe('${portletURL}','${languageUtil.get(request,'profile')}', '800px', '','elevationProfile', 'elevationProfileIframe');"> 
824								${languageUtil.get(request,'infoasturias-ver-perfil-elevacion')} 
825							</button> 
826							</div> 
827							 
828						</#if>								 
829					</div> 
830				</div> 
831				<#assign showFirstTab = false> 
832			</#if> 
833			 
834			<#if hasTab4> 
835				<div id="tab4" class="article-section accordion-item hide"> 
836					<a href="#tabContent4" id="tabHeading4" class=" tab <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent4" role="button"><h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-itinerario')}</h3></a> 
837					<div id="tabContent4" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading4"> 
838						<#list Informacion.Itinerario.getSiblings() as Item> 
839							<#if Item.data?has_content> 
840								<div class=" itinerario <#if !Item?is_last>pb-5</#if>"><p>${Item.data}</p></div> 
841							</#if> 
842						</#list> 
843					</div> 
844				</div> 
845				<#assign showFirstTab = false> 
846			</#if>	 
847 
848			<#if hasTab5> 
849				<div id="tab5" class="article-section accordion-item"> 
850					<a href="#tabContent5" id="tabHeading5" class="tab <#if !showFirstTab>collapsed</#if>"  aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent5" role="button"><h3 class="h3 accordion-header">${languageUtil.get(request,'detail')}</h3></a> 
851					<div id="tabContent5" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading5"> 
852						<#assign htmlGallery = journalTool.getHTMLGallery(Detalle.DetalleImagen.getSiblings(), 3, "gallery-thumbs") /> 
853						 
854						<#if Detalle.DetalleTexto.data?has_content> 
855							${Detalle.DetalleTexto.data} 
856						</#if> 
857						 
858						<#if validator.isNotNull(htmlGallery)>    
859							<section class="image-gallery"> 
860							<h4 class="h4 pb-0">${languageUtil.get(locale, "image-gallery")}</h4> 
861							${htmlGallery} 
862							</section> 
863						</#if> 
864					</div> 
865				</div> 
866				<#assign showFirstTab = false> 
867			</#if> 
868		</div> 
869		<#if Informacion.Observaciones.data?has_content> 
870			<div class="article-border"> 
871				${Informacion.Observaciones.data} 
872			</div> 
873		</#if> 
874	</div> 
875	 
876	<#-- Related --> 
877	<#assign relatedJournalArticles = assetTool.getRelatedJournalArticlesApproved(assetEntry)/> 
878	<#if validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0> 
879		<div class="article-related portlet-background-grey-container"> 
880			<div class="container"> 
881				<h3 class="title-section">${languageUtil.get(request,'related-assets')}</h3> 
882				<div class="slick article-related-slick"> 
883					<#list relatedJournalArticles as currentJournalArticle> 
884						<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
885							<div class="slide"> 
886								<a class="card background card-background-9-14"  href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
887									<span class="d-block image-wrapper aspect-ratio-bg-cover" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
888										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
889										<span class="card-body"> 
890											<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
891										</span> 
892									</span> 
893								</a> 
894							</div> 
895					</#list> 
896				</div> 
897			</div> 
898		</div> 
899	</#if> 
900	 
901	<#-- Nearby --> 
902	<#assign classTypeIds = [598853,582814,625593,623117,609431,593783]> 
903	<#assign assetsNearJournalArticles = assetNearTool.getNearJournalArticles(themeDisplay.getScopeGroupId(), assetEntry.getEntryId(), 50.0, classTypeIds, 25)! /> 
904	<#if validator.isNotNull(assetsNearJournalArticles) && assetsNearJournalArticles?size gt 0> 
905		<div class="article-nearby portlet-container-margin"> 
906			<div class="container"> 
907				<div class="article-nearby-container"> 
908					<h3 class="title-section">${languageUtil.get(request,'infoasturias-near-here')}</h3> 
909					<div class="slick article-nearby-slick"> 
910						<#list assetsNearJournalArticles as currentJournalArticle> 
911							<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
912							<div class="slide"> 
913								<a class="card" href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
914									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
915										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
916										<span class="card-hover"> 
917											<span class="card-text">${currentJournalArticle.getDescription(locale)}</span> 
918										</span> 
919									</span> 
920									<span class="card-body"> 
921										<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
922										<span class="card-subtitle"> 
923											<span class="d-block">${currentJournalArticle.getVersion()} Kms</span> 
924											<span class="d-block">${journalTool.getCategoriesNames(groupId, currentJournalArticle.getArticleId(), locale, ["Concejos"])}</span> 
925										</span> 
926									</span> 
927								</a> 
928							</div> 
929						</#list> 
930					</div> 
931				</div> 
932			</div> 
933		</div> 
934	</#if> 
935</article>