Celorio - San Antolín

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 629, column 169]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${lookAtLatitude.getText()}  [in template "37703#37743#1559015" at line 629, 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						<#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! /> 
442						<#assign slideThumbnail2 = dlTool.getThumbnailByJSON(Slide.data, "2")! /> 
443						<#assign slidePath = dlTool.getPathByJSON(Slide.data, themeDisplay.getScopeGroupId())! /> 
444						<#assign slideUrl = Slide.SlideUrl.data /> 
445						<#assign dataMap = "" /> 
446 
447						<#if slideUrl?has_content> 
448 
449							<#assign slideTitle = "${languageUtil.get(request, 'video')} ${Slide?index}" /> 
450							<#if Slide.SlideTitulo.data?has_content> 
451								<#assign slideTitle = Slide.SlideTitulo.data />   
452							</#if> 
453 
454							<#-- Youtube --> 
455							<#assign slideUrl = stringUtil.replace(slideUrl, 'watch?v=', 'embed/') /> 
456							<#assign slideThumbnail2 = stringUtil.replace(slideUrl, 'www', 'img') /> 
457							<#assign slideThumbnail2 = stringUtil.replace(slideThumbnail2, 'embed', 'vi') /> 
458							<#assign slideThumbnail2 = '${slideThumbnail2}/mqdefault.jpg' /> 
459 
460							<#-- Vimeo --> 
461							<#if slideUrl?contains("vimeo")> 
462								<#assign slideUrl = stringUtil.replace(slideUrl, 'http://vimeo.com/', 'https://player.vimeo.com/video/') /> 
463								<#assign slideVimeoId = stringUtil.extractLast(slideUrl, 'https://player.vimeo.com/video/') /> 
464								<#if slideVimeoId?has_content> 
465									<#assign slideVimeoJsonPath = 'http://vimeo.com/api/v2/video/${slideVimeoId}.json' /> 
466									<#assign slideVimeoJsonContent = getUrlContent.getContent(slideVimeoJsonPath)! /> 
467									<#if slideVimeoJsonContent?has_content> 
468										<#assign slideVimeoJsonArray = jsonFactoryUtil.createJSONArray(slideVimeoJsonContent) /> 
469										<#assign slideVimeoJsonItem = slideVimeoJsonArray.get(0) /> 
470										<#assign slideThumbnail2 = slideVimeoJsonItem.thumbnail_medium /> 
471									</#if> 
472								</#if> 
473							</#if> 
474 
475							<div id="slide-${Slide?index}" class="slide"> 
476								<a class="card card-simple card-video" href="#" onclick="javascript: event.preventDefault(); showDialogIframe('${slideUrl}', '${slideTitle}', 800, 600, 'videoPopup', 'videoPopupIframe');" title="${slideTitle}"> 
477									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
478									<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
479								</a> 
480							</div> 
481						<#else> 
482 
483							<#assign slideTitle = "${languageUtil.get(request, 'image')} ${Slide?index}" /> 
484							<#if Slide.SlideTitulo.data?has_content> 
485								<#assign slideTitle = Slide.SlideTitulo.data />   
486							</#if> 
487 
488							<div class="slide"> 
489								<a class="card card-simple lightbox" href="${slidePath}" title="${slideTitle}"> 
490									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
491									<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
492								</a> 
493							</div> 
494						</#if> 
495					</#list> 
496				</div> 
497			</#if> 
498		 
499			<#if hasTab1> 
500				<div id="tab1" class="article-section accordion-item"> 
501					<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"> 
502							${languageUtil.get(request,'info')} 
503					</a> 
504					<div id="tabContent1" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading"> 
505						<#if Contacto.ContactoTexto.data?has_content> 
506							${Contacto.ContactoTexto.data} 
507						</#if> 
508						<#if Informacion.InformacionTexto.data?has_content> 
509							${Informacion.InformacionTexto.data} 
510						</#if> 
511					</div> 
512				</div> 
513				 
514			</#if> 
515			 
516			<#if hasTab2> 
517				 
518				<#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) /> 
519				 
520				<div id="tab2" class="article-section accordion-item"> 
521					<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"> 
522					${languageUtil.get(request,'map')} 
523					</a> 
524					<div id="tabContent2" class="article-section-content accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading2"> 
525						<script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script> 
526						<script type="text/javascript"> 
527						<#assign xpath = saxReaderUtil.createXPath("//root:StyleMap", "root", "http://www.opengis.net/kml/2.2")/> 
528						<#assign style_maps = xpath.selectNodes(document)/> 
529 
530						var style_mapsJS = {}; 
531						var line_stylesJS = {}; 
532 
533						<#list style_maps as style_map> 
534							<#assign style_map_styleurl_path = "${style_map.getUniquePath()}/*[name()='Pair']/*[name()='styleUrl']"/> 
535							<#assign style_map_styleurl_node = style_map.selectSingleNode(style_map_styleurl_path)/> 
536							<#assign nodeText = style_map_styleurl_node.getText()/> 
537							style_mapsJS['${style_map.selectSingleNode("${style_map.getUniquePath()}/@id").getText()}'] = '${nodeText?substring(1)}'; 
538						</#list> 
539						<#assign xpath = saxReaderUtil.createXPath("//root:Style", "root", "http://www.opengis.net/kml/2.2")/> 
540						<#assign line_styles = xpath.selectNodes(document)/> 
541									 
542						<#list line_styles as line_style> 
543							<#assign line_style_color_path = "${line_style.getUniquePath()}/*[name()='LineStyle']/*[name()='color']"/> 
544							<#assign line_style_color_node = line_style.selectSingleNode(line_style_color_path)!/> 
545							<#if validator.isNotNull(line_style_color_node)> 
546								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}; 
547							</#if> 
548						</#list> 
549						</script> 
550 
551 
552						<script type="text/javascript"> 
553						var route = {};//Ruta 
554						var totalDistance = 0; 
555						<#list placemarksName as name> 
556							 
557							var nombreTramo = "${name.getText()}"; 
558								nombreTramo = nombreTramo.replace("Tramo ",""); 
559								nombreTramo = nombreTramo.replace(/[–]/gi,'-'); 
560								nombreTramo = nombreTramo.trim(); 
561								 
562 
563							var tramo = {};//Datos del tramo 
564							var coordinatesJS = [];//Coordenadas del tramo 
565 
566							<#-- Identificador color del Tramo --> 
567							<#assign xpath = saxReaderUtil.createXPath("//root:LineString/ancestor::root:Placemark[root:name='${name.getText()}']/root:styleUrl", "root", "http://www.opengis.net/kml/2.2")/> 
568							<#assign styleUrl = xpath.selectSingleNode(document)!> 
569 
570							<#-- Obtener los puntos de ruta para dibujarlos --> 
571							<#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")/> 
572							<#assign coordinates = xpath.selectSingleNode(document)!> 
573							<#-- Hacemos un split para separar las coordenadas --> 
574							<#assign arrayCoordinates = coordinates.getText()?split(" ")/> 
575							<#assign start=""/> 
576							<#assign end=""/> 
577							<#list arrayCoordinates as coordinate> 
578							<#assign splitCoordinates = coordinate?split(",")/> 
579							 
580							 
581							<#if splitCoordinates?size gte 2>								 
582								coordinatesJS.push(new L.LatLng(${splitCoordinates[1]}, ${splitCoordinates[0]})); 
583								<#if validator.isNull(start)> 
584									<#assign start = "${splitCoordinates[1]} +',' + ${splitCoordinates[0]}">									 
585								</#if> 
586								<#assign end = "${splitCoordinates[1]} +',' + ${splitCoordinates[0]}"> 
587							</#if> 
588								 
589							</#list> 
590							tramo['start'] = ${start}; 
591							tramo['end'] = ${end}; 
592							 
593							var distance = 0; 
594							var previousPoint=""; 
595 
596							tramo['name'] = nombreTramo; 
597							tramo['lineStyle'] =  line_stylesJS[style_mapsJS['${styleUrl.getText()?substring(1)}']]; 
598							tramo['coordinates'] = coordinatesJS; 
599 
600							coordinatesJS.forEach(function (latLng) { 
601								if (previousPoint) { 
602									distance += previousPoint.distanceTo(latLng); 
603
604								previousPoint = latLng; 
605							}); 
606 
607							tramo['distance'] = (distance/1000).toFixed(1)/1; 
608							totalDistance +=(distance/1000).toFixed(1)/1; 
609 
610							<#if tramosAlternativosArray?size!=0> 
611								tramo['isAlternative'] = ${tramosAlternativosArray[count]}; 
612							<#else> 
613								tramo['isAlternative'] = false; 
614							</#if> 
615							 
616 
617							route['${counter}'] = tramo; 
618 
619							<#assign counter = counter +1/> 
620							<#assign count = count +1/> 
621 
622						</#list> 
623						</script>						 
624						<div class="article-section-content"> 
625							<div id="article-map-wrapper-${articleId}" class="article-map-wrapper">  
626								<div id="article-map-content-${articleId}" style="width: 100%; height: 400px; z-index:1"><!-- MAP --></div> 
627								<div class="article-map-form">  
628									<div class="name important">${title}</div> 
629									<div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${lookAtLatitude.getText()}, ${lookAtLongitude.getText()}</span></div> 
630									<form action="https://maps.google.es/maps" method="get" target="_blank"> 
631										<input type="hidden" name="daddr" value="${lookAtLatitude.getText()}, ${lookAtLongitude.getText()}"> 
632										<label for="saddr"><span class="label">${languageUtil.get(request,'infoasturias-from')}: </span></label> 
633										<input class="form-control" type="text" maxlength="40" name="saddrText" id="saddrText" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}"> 
634										<input class="form-control" type="hidden" name="saddr" id="saddr" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}"> 
635										<button class="btn btn-text" type="submit">${languageUtil.get(request,'infoasturias-como-llegar')} &raquo;</button> 
636									</form> 
637								</div> 
638							</div> 
639							 
640							<script type="text/javascript"> 
641								AUI().ready('aui-base', function(A){ 
642									var lookAt = new L.LatLng(${lookAtLatitude.getText()}, ${lookAtLongitude.getText()});//Cámara 
643									 
644									<#if validator.isNotNull (Geolocalizacion.Coordenadas.data)> 
645										lookAt =  new L.LatLng(${Geolocalizacion.Coordenadas.data});//contenido 
646									</#if> 
647									const mapContent = new L.Map('article-map-content-${articleId}', { center: lookAt, zoom: 10 }); 
648									const osm = new L.TileLayer('http://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}'); 
649									 
650 
651									mapContent.addLayer(osm); 
652									 
653									//definir iconos inicio y fin tramo 
654									var startMarker; 
655									var middleMarker; 
656									var endMarker; 
657									var colorSeries = ["e9ecef","f5f7f9","fff"]; 
658									var colorSeriesSelector = 0; 
659									var generalDistance =0; 
660									 
661									var endIconTheme = '/o/turismo-asturias-theme/images/icons/routes/Icono_Fin_Ruta_${tipoRuta}_min.png'; 
662									var endIcon = L.icon({ 
663										iconUrl: endIconTheme, 
664										iconSize:     [27, 35], 
665										iconAnchor:   [13, 35], 
666										iconShadow:   [0,0], 
667										popupAnchor:  [0, -30] 
668									}); 
669									var middleIconTheme = '/o/turismo-asturias-theme/images/icons/routes/gmaps-marker-icon-grey.png'; 
670									var middleIcon = L.icon({ 
671										iconUrl: middleIconTheme, 
672										iconSize:     [20, 28], 
673										iconAnchor:   [10, 28], 
674										iconShadow:   [0,0], 
675										popupAnchor:  [0, -30] 
676									}); 
677 
678									var startIconTheme = '/o/turismo-asturias-theme/images/icons/routes/Icono_Inicio_Ruta_${tipoRuta}_min.png'; 
679									var startIcon = L.icon({ 
680										iconUrl: startIconTheme, 
681										iconSize:     [27, 35], 
682										iconAnchor:   [13, 35], 
683										iconShadow:   [0,0], 
684										popupAnchor:  [0, -30] 
685									});	 
686									 
687									for (const ruta in route) { 
688										var stretch = route[ruta]; 
689										 
690										var name = stretch.name; 
691										var nameArray = name.split("-"); 
692										var coordinates = stretch.coordinates; 
693										var distance =''+ stretch.distance; 
694										var isStrechAlternative = stretch.isAlternative; 
695										var lineStyle = stretch.lineStyle || { color: '#3c3be3', opacity: 1 }; 
696										var startCoordinates = stretch.start.split(","); 
697										var endCoordinates = stretch.end.split(","); 
698										 
699										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>'); 
700										var track_size = ((distance/totalDistance*100) + '%'); 
701										track_node.setStyles({width: track_size, backgroundColor: '#' + colorSeries[colorSeriesSelector]}); 
702										track_node.appendTo(A.one('.route-resume-tracks')); 
703 
704										 
705										if(distance) 
706											A.one('.template .route-'+ ruta + ' .route-distance').text(distance.replace(".",",") + ' Kms'); 
707										 
708										if(!isStrechAlternative) 
709											generalDistance = generalDistance + stretch.distance; 
710											 
711										if(Object.keys(route).length == 1){ 
712											A.one('.route-resume-track-marker-first .route-point-text').text(nameArray[0]); 
713											A.one('.route-resume-track-marker-last .route-km-text').text('Km ' + distance.replace(".",",")); 
714											A.one('.route-resume-track-marker-last .route-point-text').text(nameArray[nameArray.length-1]); 
715											startMarker = L.marker([startCoordinates[0],startCoordinates[1]], {icon: startIcon}).bindPopup(nameArray[0]).addTo(mapContent); 
716											endMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: endIcon}).bindPopup(nameArray.length-1).addTo(mapContent); 
717
718										else{ 
719											var track_point =A.Node.create('<div class="route-resume-point"></div>'); 
720											if(ruta==1){ 
721												A.one('.route-resume-track-marker-first .route-point-text').text(nameArray[0]); 
722												var track_point_text = A.Node.create('<div class="route-point-text">' + nameArray[1] + '</div><div class="route-km-text">Km '+distance+'</div>'); 
723												startMarker = L.marker([startCoordinates[0],startCoordinates[1]], {icon: startIcon}).bindPopup(nameArray[0]).addTo(mapContent); 
724												 
725												if(ruta == Object.keys(route).length-1 && route[Object.keys(route).length].isAlternative) 
726													endMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: endIcon}).bindPopup(nameArray.length-1).addTo(mapContent); 
727												else 
728													middleMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: middleIcon}).bindPopup(nameArray.length-1).addTo(mapContent); 
729													 
730											track_point_text.appendTo(track_point); 
731											track_point.appendTo(A.one('.route-resume-tracks')); 
732
733											else if(ruta ==  Object.keys(route).length){ 
734												A.one('.route-resume-track-marker-last .route-km-text').text('Km ' + distance.replace(".",",")); 
735												A.one('.route-resume-track-marker-last .route-point-text').text(nameArray[nameArray.length-1]); 
736												 
737												if(isStrechAlternative){ 
738													middleMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: middleIcon}).bindPopup(nameArray[nameArray.length-1]).addTo(mapContent); 
739													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>'); 
740													alternativetrack_node.appendTo(A.one('.template .info-route')); 
741
742												else{ 
743													endMarker = L.marker([endCoordinates[0],endCoordinates[1]], {icon: endIcon}).bindPopup(nameArray[nameArray.length-1]).addTo(mapContent); 
744
745
746											else{ 
747											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>'); 
748											track_point_text.appendTo(track_point); 
749											track_point.appendTo(A.one('.route-resume-tracks')); 
750											middleMarker = L.marker([startCoordinates[0],startCoordinates[1]], {icon: middleIcon}).bindPopup(nameArray[0]).addTo(mapContent); 
751
752
753										 
754										var polyline = new L.Polyline(coordinates, { 
755											color: '' + lineStyle.color, 
756											opacity: lineStyle.opacity 
757										}); 
758										polyline.bindPopup(name).addTo(mapContent); 
759										 
760									 
761									colorSeriesSelector++; 
762									if(colorSeriesSelector == 3) 
763									colorSeriesSelector = 0; 
764									 
765									}//fin rutas 
766									 
767									if(generalDistance) 
768										A.one('.template .text-distance').text(''+ Math.round(generalDistance * 100) / 100); 
769 
770									//Contributor 
771									L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
772										attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.' 
773									}).addTo(mapContent); 
774									 
775								}); //AUI.ready 
776							</script> 
777						</div> 
778						<#if validator.isNotNull(dlFileEntryKML) && tipoRuta!="coche"> 
779							 
780							<#assign params = { 
781								"displayStyle":"ddmTemplate_435797", 
782								"displayStyleGroupId":"${themeDisplay.getCompanyGroupId()}", 
783								"portletId": portletTool.getPortletId(request),  
784								"articleId":"${articleId}", 
785								"dlFileEntryuuId":"${dlFileEntryKML.getUuid()}" 
786							}> 
787							<#assign portletURL = portletTool.createURL(request, "as_asac_adtvisor_portlet_AdtVisorDialogPortlet", themeDisplay.getPlid(), "RENDER_PHASE", "pop_up", params) /> 
788							<div class="button-row button-row-center my-3"> 
789							<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');"> 
790								${languageUtil.get(request,'infoasturias-ver-perfil-elevacion')} 
791							</button> 
792							</div> 
793							 
794						</#if>								 
795					</div> 
796				</div> 
797		 
798				<#assign showFirstTab = false> 
799			</#if> 
800			 
801			<#if hasTab3> 
802				<div id="tab3" class="article-section accordion-item hide"> 
803					<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> 
804					<div id="tabContent3" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading3"> 
805						<#list Informacion.Itinerario.getSiblings() as Item> 
806							<#if Item.data?has_content> 
807								<div class=" itinerario <#if !Item?is_last>pb-5</#if>"><p>${Item.data}</p></div> 
808							</#if> 
809						</#list> 
810					</div> 
811				</div> 
812				<#assign showFirstTab = false> 
813			</#if>	 
814 
815			<#if hasTab4> 
816				<div id="tab4" class="article-section accordion-item"> 
817					<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> 
818					<div id="tabContent4" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading4"> 
819						<#list Informacion.TextoTramos.getSiblings() as Item> 
820							<#if validator.isNotNull(Item.data)> 
821								<p>${Item.data}</p> 
822							</#if> 
823						</#list> 
824						<#list Tramos.getSiblings() as Item> 
825							<h4 id="track-${Item?index+1}" class="h4 mt-5 route-${Item?index+1}"> 
826								<#if tipoRuta=="coche">${languageUtil.get(request,"day")} ${Item?index+1}:</#if> ${Item.OrigenDestino.data} 
827								<span class="route-distance btn btn-link float-right text-capitalize"> 
828									${Item.DistanciaTramo.data} 
829								</span> 
830							</h4>    
831							<ul class="article-list list-unstyled article-list-info"> 
832								<#if getterUtil.getBoolean(Item.TramoAlternativo.getData()) && getterUtil.getBoolean(Item.TramoAlternativo.getData())> 
833									<li class="article-list-item"> 
834										<span class="fas fa-route"> 
835											<span class="hide-accessible">${languageUtil.get(request,"infoasturias-tramo-alternativo")}</span> 
836										</span> 
837										<span class="field-wrapper"> 
838											<span class="field">${languageUtil.get(request, "infoasturias-tramo-alternativo")}:</span> 
839										</span> 
840									</li> 
841								</#if> 
842							</ul> 
843							<#if Item.DescripcionTramo.data?has_content> 
844								${Item.DescripcionTramo.data} 
845							</#if> 
846							 
847						</#list> 
848					</div> 
849				</div> 
850				<#assign showFirstTab = false> 
851			</#if> 
852			 
853			<#if hasTab5> 
854				<div id="tab5" class="article-section accordion-item"> 
855					<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> 
856					<div id="tabContent5" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading5"> 
857						<#assign htmlGallery = journalTool.getHTMLGallery(Detalle.DetalleImagen.getSiblings(), 3, "gallery-thumbs") /> 
858						 
859						<#if Detalle.DetalleTexto.data?has_content> 
860							${Detalle.DetalleTexto.data} 
861						</#if> 
862						 
863						<#if validator.isNotNull(htmlGallery)>    
864							<section class="image-gallery"> 
865							<div class="h5 pb-0">${languageUtil.get(locale, "image-gallery")}</div> 
866							${htmlGallery} 
867							</section> 
868						</#if> 
869					</div> 
870				</div> 
871				<#assign showFirstTab = false> 
872			</#if> 
873		</div> 
874		<#if Informacion.Observaciones.data?has_content> 
875			<div class="article-border"> 
876				${Informacion.Observaciones.data} 
877			</div> 
878		</#if> 
879	</div> 
880	 
881	<#-- Related --> 
882	<#assign relatedJournalArticles = assetTool.getRelatedJournalArticlesApproved(assetEntry)/> 
883	<#if validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0> 
884		<div class="article-related portlet-background-grey-container"> 
885			<div class="container"> 
886				<h3 class="title-section">${languageUtil.get(request,'related-assets')}</h3> 
887				<div class="slick article-related-slick"> 
888					<#list relatedJournalArticles as currentJournalArticle> 
889						<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
890							<div class="slide"> 
891								<a class="card background card-background-9-14"  href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
892									<span class="d-block image-wrapper aspect-ratio-bg-cover" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
893										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
894										<span class="card-body"> 
895											<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
896										</span> 
897									</span> 
898								</a> 
899							</div> 
900					</#list> 
901				</div> 
902			</div> 
903		</div> 
904	</#if> 
905	 
906	<#-- Nearby --> 
907	<#assign classTypeIds = [598853,582814,625593,623117,609431,593783]> 
908	<#assign assetsNearJournalArticles = assetNearTool.getNearJournalArticles(themeDisplay.getScopeGroupId(), assetEntry.getEntryId(), 50.0, classTypeIds, 25)! /> 
909	<#if validator.isNotNull(assetsNearJournalArticles) && assetsNearJournalArticles?size gt 0> 
910		<div class="article-nearby portlet-container-margin"> 
911			<div class="container"> 
912				<div class="article-nearby-container"> 
913					<h3 class="title-section">${languageUtil.get(request,'infoasturias-near-here')}</h3> 
914					<div class="slick article-nearby-slick"> 
915						<#list assetsNearJournalArticles as currentJournalArticle> 
916							<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
917							<div class="slide"> 
918								<a class="card" href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
919									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
920										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
921										<span class="card-hover"> 
922											<span class="card-text">${currentJournalArticle.getDescription(locale)}</span> 
923										</span> 
924									</span> 
925									<span class="card-body"> 
926										<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
927										<span class="card-subtitle"> 
928											<span class="d-block">${currentJournalArticle.getVersion()} Kms</span> 
929											<span class="d-block">${journalTool.getCategoriesNames(groupId, currentJournalArticle.getArticleId(), locale, ["Concejos"])}</span> 
930										</span> 
931									</span> 
932								</a> 
933							</div> 
934						</#list> 
935					</div> 
936				</div> 
937			</div> 
938		</div> 
939	</#if> 
940</article>