Pierzu Peak Trail

An error occurred while processing the template.
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> lookAtLatitude  [in template "37703#37743#1559015" at line 631, column 169]

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