Oviedo

Une erreur s'est produite lors du traitement du gabarit.
Java method "as.asac.template.tools.DLToolImpl.getThumbnailByJSON(String, String)" threw an exception when invoked on as.asac.template.tools.DLToolImpl object "as.asac.template.tools.DLToolImpl@67f1406f"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign slideThumbnail3 = dlTool.getT...  [in template "37703#37743#1558615" at line 281, column 49]
----
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 
23<#assign ddmStructureNameNormalize = "template-${friendlyURLNormalizerTool.normalize(journalArticle.getDDMStructure().getName(localeUtil.getDefault()))}" /> 
24 
25<#-- Build --> 
26<#if Nombre.data?has_content> 
27	<#assign title = Nombre.data> 
28</#if> 
29 
30 
31<article class="template ${ddmStructureNameNormalize}" role="article"itemscope itemtype="http://schema.org/Place"> 
32	 
33	<header class="article-header-wrapper row no-gutters"> 
34	     
35		<div class="article-header-container article-header-container-static"> 
36			<div class="container"> 
37				<div class="row no-gutters"> 
38					<div class="col-md-6"> 
39						<div class="article-image" style="background-image: url('${articleMainImageThumbnail3}')"> 
40							<img class="sr-only" src="${articleMainImageThumbnail3}" alt="${languageUtil.format(request,'go-to-x','image')} ${title}"/> 
41						</div> 
42					</div> 
43					<div class="article-info-wrapper col-md-6"> 
44						<div class="article-info"> 
45							<div class="article-title" itemprop="name">${title}</div> 
46							<#if validator.isNotNull(ImagenMapa.getData())> 
47								<div class="comarca-image mb-4"> 
48									<img src="${ImagenMapa.getData()}" alt="${languageUtil.get(request,'image')} ${title}"/> 
49								</div> 
50							</#if> 
51							<div class="article-list-wrapper"> 
52															 
53								<ul class="article-list list-unstyled article-list-info"> 
54									<#if Municipios.CoordenadasMunicipios.getSiblings()?has_content> 
55										<li class="article-list-item mb-4"> 
56											<span class="fas fa-map-marker-alt"> 
57												<span class="hide-accessible">${languageUtil.get(request,"title")}</span> 
58											</span> 
59											<span class="field-wrapper"> 
60												<span class="important">${languageUtil.get(request,'infoasturias-city-region')}</span> 
61												<span class="text d-block"> 
62													<#list Municipios.CoordenadasMunicipios.getSiblings() as coorMunicipio> 
63													 
64														<#assign municipioURLContent = "${coorMunicipio.EnlaceMunicipio.getData()}"/> 
65														<#if stringUtil.startsWith(municipioURLContent , "/"+locale.getLanguage()+"/")> 
66															<#assign municipioURLContent = "/" + stringUtil.extractLast("${coorMunicipio.EnlaceMunicipio.getData()}" , "/"+locale.getLanguage()+"/") /> 
67														</#if> 
68														<#assign municipioLayout = layoutTool.getLayoutByFriendlyURL(groupId, false, municipioURLContent)!> 
69														<#if validator.isNotNull(municipioLayout)> 
70															<#assign municipioURL = portalUtil.getLayoutFullURL(municipioLayout, themeDisplay)> 
71															<a href="${municipioURL}" itemprop="addressLocality">${coorMunicipio.NombreMunicipio.data}</a><#if coorMunicipio_has_next>, </#if> 
72														</#if> 
73													</#list> 
74												</span> 
75											</span> 
76										</li> 
77									</#if> 
78							 
79									<#if Web.data?has_content> 
80										<#assign linkURL = Web.data/> 
81														 
82										<#if !stringUtil.startsWith(linkURL, "http")> 
83											<#assign linkURL = "https://${Web.data}"/> 
84										</#if> 
85										<li class="article-list-item web"> 
86											<span class="fas fa-link"> 
87												<span class="hide-accessible">${languageUtil.get(request,"site")}</span> 
88											</span> 
89											<span class="field-wrapper"> 
90												<span class="field">${languageUtil.get(request, "site")}:</span> 
91												<span class="text"> 
92													<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}" itemprop="url">${Web.data}</a> 
93												</span> 
94											</span> 
95										</li> 
96									</#if> 
97			 
98									<#if Documento?? && Documento.data?has_content> 
99										<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Documento.data) /> 
100										<#if validator.isNotNull(dlFileEntry)> 
101											<#assign ext = dlFileEntry.getExtension()!/> 
102											<li class="article-list-item document document-${ext}"> 
103												<span class="fas fa-file"> 
104													<span class="hide-accessible">${languageUtil.get(request,"related-documents")}</span> 
105												</span> 
106												<span class="field-wrapper"> 
107													<span class="field">${languageUtil.get(request, "related-documents")}:</span> 
108													<span class="text"> 
109														<#list Documento.getSiblings() as Item> 
110															<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Item.data) /> 
111															<#assign downloadURL = "/documents/${groupId}/${dlFileEntry.getUuid()}" /> 
112															<#if validator.isNotNull(dlFileEntry)> 
113																<#if Item.ArchivoTitulo.data?has_content> 
114																	<a href="${downloadURL}" title='${languageUtil.get(request, "${Item.ArchivoTitulo.data}")} ${htmlUtil.escape(title)}' class="">${Item.ArchivoTitulo.data}</a>	 
115																	<#if Item_has_next>, </#if> 
116																<#else> 
117																	<a href="${downloadURL}" title='${languageUtil.get(request, "${dlFileEntry.getTitle()}")} ${htmlUtil.escape(title)}' class="">${dlFileEntry.getTitle()}</a>	 
118																	<#if Item_has_next>, </#if> 
119																</#if> 
120															</#if> 
121														</#list> 
122													</span> 
123												</span>		 
124											</li> 
125										</#if> 
126									</#if> 
127								</ul> 
128							</div> 
129							 
130							<#if Facebook.data?has_content || Twitter.data?has_content || Youtube.data?has_content || GooglePlus.data?has_content || Pinterest.data?has_content || Instagram.data?has_content || Rss.data?has_content || OtrosCanales.NombreCanal.data?has_content> 
131								<div class="article-socials-wrapper mt-4"> 
132									<div class="socials-wrapper"> 
133										<div class="socials"> 
134											<ul class="list-inline items socials"> 
135												<#if Facebook.data?has_content> 
136													<#assign linkURL = Facebook.data/> 
137														 
138													<#if !stringUtil.startsWith(linkURL, "http")> 
139														<#assign linkURL = "https://${Facebook.data}"/> 
140													</#if> 
141													<li class="list-inline-item item facebook"> 
142														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Facebook')}" onclick="this.target='_blank'"> 
143															<span class="fab fa-facebook-f"> 
144																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Facebook')}</span> 
145															</span> 
146														</a> 
147													</li> 
148												</#if> 
149												<#if Twitter.data?has_content> 
150													<#assign linkURL = Twitter.data/> 
151														 
152													<#if !stringUtil.startsWith(linkURL, "http")> 
153														<#assign linkURL = "https://${Twitter.data}"/> 
154													</#if> 
155													<li class="list-inline-item item twitter"> 
156														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Twitter')}" onclick="this.target='_blank'"> 
157															<span class="fab fa-twitter"> 
158																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Twitter')}</span> 
159															</span> 
160														</a> 
161													</li> 
162												</#if> 
163												<#if Youtube.data?has_content> 
164													<#assign linkURL = Youtube.data/> 
165														 
166													<#if !stringUtil.startsWith(linkURL, "http")> 
167														<#assign linkURL = "https://${Youtube.data}"/> 
168													</#if> 
169													<li class="list-inline-item item youtube"> 
170														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Youtube')}" onclick="this.target='_blank'"> 
171															<span class="fab fa-youtube"> 
172																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Youtube')}</span> 
173															</span> 
174														</a> 
175													</li> 
176												</#if> 
177												<#if GooglePlus.data?has_content> 
178													<#assign linkURL = GooglePlus.data/> 
179														 
180													<#if !stringUtil.startsWith(linkURL, "http")> 
181														<#assign linkURL = "https://${GooglePlus.data}"/> 
182													</#if> 
183													<li class="list-inline-item item gplus"> 
184														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Google Plus')}" onclick="this.target='_blank'"> 
185															<span class="fab fa-google-plus-g"> 
186																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Google Plus')}</span> 
187															</span> 
188														</a> 
189													</li> 
190												</#if> 
191												<#if Pinterest.data?has_content> 
192													<#assign linkURL = Pinterest.data/> 
193														 
194													<#if !stringUtil.startsWith(linkURL, "http")> 
195														<#assign linkURL = "https://${Pinterest.data}"/> 
196													</#if> 
197													<li class="list-inline-item item pinterest"> 
198														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Pinterest')}" onclick="this.target='_blank'"> 
199															<span class="fab fa-pinterest-p"> 
200																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Pinterest')}</span> 
201															</span> 
202														</a> 
203													</li> 
204												</#if> 
205												<#if Instagram.data?has_content> 
206													<#assign linkURL = Instagram.data/> 
207														 
208													<#if !stringUtil.startsWith(linkURL, "http")> 
209														<#assign linkURL = "https://${Instagram.data}"/> 
210													</#if> 
211													<li class="list-inline-item item instagram"> 
212														<a href="${Instagram.data}" title="${languageUtil.format(request,'go-to-x','Instagram')}" onclick="this.target='_blank'"> 
213															<span class="fab fa-instagram"> 
214																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Instagram')}</span> 
215															</span> 
216														</a> 
217													</li> 
218												</#if> 
219												<#if Rss.data?has_content> 
220													<#assign linkURL = Rss.data/> 
221														 
222													<#if !stringUtil.startsWith(linkURL, "http")> 
223														<#assign linkURL = "https://${Rss.data}"/> 
224													</#if> 
225													<li class="list-inline-item item rss"> 
226														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Rss')}" onclick="this.target='_blank'"> 
227															<span class="fas fa-rss"> 
228																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Rss')}</span> 
229															</span> 
230														</a> 
231													</li> 
232												</#if> 
233												<#list OtrosCanales.NombreCanal.getSiblings() as Canal> 
234													<#if Canal.CanalUrl.data?has_content> 
235														<#assign linkURL = Canal.CanalUrl.data/> 
236														 
237														<#if !stringUtil.startsWith(linkURL, "http")> 
238															<#assign linkURL = "https://${Canal.CanalUrl.data}"/> 
239														</#if> 
240														<li class="list-inline-item item instagram"> 
241															<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x',Canal.data)}" onclick="this.target='_blank'"> 
242																<span class="fas fa-share-alt"> 
243																	<span class="hide-accessible">${languageUtil.format(request,'go-to-x',Canal.data)}</span> 
244																</span> 
245															</a> 
246														</li> 
247													</#if> 
248												</#list> 
249											</ul> 
250										</div> 
251									</div> 
252								</div> 
253							</#if> 
254							 
255						</div> 
256					</div> 
257				</div> 
258			</div> 
259		</div>  
260	</header> 
261	 
262	<div class="sheet sheet-lg"> 
263	 
264		<#if Titulo.data?has_content> 
265			<div class="article-great"> 
266				${Titulo.data} 
267			</div>	 
268		</#if> 
269		 
270		<#assign hasTab1 = DescripcionLarga.data?has_content> 
271		<#assign hasTab2 = Geolocalizacion.Coordenadas.data?has_content> 
272		<#assign hasTab3 = QueVer.data?has_content> 
273		<#assign hasTab4 = Observaciones?? && Observaciones.data?has_content> 
274		<#assign showFirstTab = true> 
275		 
276		<div class="article-accordion accordion"> 
277 
278			<#if Visualizador.Slide.getData()?has_content> 
279				<div class="slick article-slick article-section <#if Visualizador.Slide.getSiblings()?size==1>hide</#if>"> 
280					<#list Visualizador.Slide.getSiblings() as Slide> 
281						<#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! /> 
282						<#assign slideThumbnail2 = dlTool.getThumbnailByJSON(Slide.data, "2")! /> 
283						<#assign slidePath = dlTool.getPathByJSON(Slide.data, themeDisplay.getScopeGroupId())! /> 
284						<#assign slideUrl = Slide.SlideUrl.data /> 
285						<#assign dataMap = "" /> 
286 
287						<#if slideUrl?has_content> 
288 
289							<#assign slideTitle = "${languageUtil.get(request, 'video')} ${Slide?index}" /> 
290							<#if Slide.SlideTitulo.data?has_content> 
291								<#assign slideTitle = Slide.SlideTitulo.data />   
292							</#if> 
293 
294							<#-- Youtube --> 
295							<#assign slideUrl = stringUtil.replace(slideUrl, 'watch?v=', 'embed/') /> 
296							<#assign slideThumbnail2 = stringUtil.replace(slideUrl, 'www', 'img') /> 
297							<#assign slideThumbnail2 = stringUtil.replace(slideThumbnail2, 'embed', 'vi') /> 
298							<#assign slideThumbnail2 = '${slideThumbnail2}/mqdefault.jpg' /> 
299 
300							<#-- Vimeo --> 
301							<#if slideUrl?contains("vimeo")> 
302								<#assign slideUrl = stringUtil.replace(slideUrl, 'http://vimeo.com/', 'https://player.vimeo.com/video/') /> 
303								<#assign slideVimeoId = stringUtil.extractLast(slideUrl, 'https://player.vimeo.com/video/') /> 
304								<#if slideVimeoId?has_content> 
305									<#assign slideVimeoJsonPath = 'http://vimeo.com/api/v2/video/${slideVimeoId}.json' /> 
306									<#assign slideVimeoJsonContent = getUrlContent.getContent(slideVimeoJsonPath)! /> 
307									<#if slideVimeoJsonContent?has_content> 
308										<#assign slideVimeoJsonArray = jsonFactoryUtil.createJSONArray(slideVimeoJsonContent) /> 
309										<#assign slideVimeoJsonItem = slideVimeoJsonArray.get(0) /> 
310										<#assign slideThumbnail2 = slideVimeoJsonItem.thumbnail_medium /> 
311									</#if> 
312								</#if> 
313							</#if> 
314 
315							<div id="slide-${Slide?index}" class="slide"> 
316								<a class="card card-simple card-video" href="#" onclick="javascript: event.preventDefault(); showDialogIframe('${slideUrl}', '${slideTitle}', 800, 600, 'videoPopup', 'videoPopupIframe');" title="${slideTitle}"> 
317									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
318									<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
319								</a> 
320							</div> 
321						<#else> 
322 
323							<#assign slideTitle = "${languageUtil.get(request, 'image')} ${Slide?index}" /> 
324							<#if Slide.SlideTitulo.data?has_content> 
325								<#assign slideTitle = Slide.SlideTitulo.data />   
326							</#if> 
327 
328							<div class="slide"> 
329								<a class="card card-simple lightbox" href="${slidePath}" title="${slideTitle}"> 
330									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
331									<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
332								</a> 
333							</div> 
334						</#if> 
335					</#list> 
336				</div> 
337			</#if> 
338		 
339			<#if hasTab1> 
340				<div id="tab1" class="article-section accordion-item"> 
341					<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"> 
342							${languageUtil.get(request,'info')} 
343					</a> 
344					<div id="tabContent1" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading"> 
345						<#if DescripcionLarga.data?has_content> 
346							${DescripcionLarga.data} 
347						</#if> 
348					</div> 
349				</div> 
350				<#assign showFirstTab = false> 
351			</#if> 
352			 
353			<#if hasTab2> 
354				<#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) /> 
355				<div id="tab2" class="article-section accordion-item"> 
356					<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"> 
357					${languageUtil.get(request,'map')} 
358					</a> 
359					<div id="tabContent2" class="article-section-content accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading2"> 
360						<div id="article-map-wrapper-${articleId}" class="article-map-wrapper">  
361							<div id="article-map-content-${articleId}" style="width: 100%; height: 500px; z-index:1"><!-- MAP --></div> 
362							<div class="article-map-form">  
363								<div class="name important">${title}</div> 
364								<div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${Geolocalizacion.Coordenadas.data}</span></div> 
365								<form action="https://maps.google.es/maps" method="get" target="_blank"> 
366									<input type="hidden" name="daddr" value="${coordenadas[0]},${coordenadas[1]}"> 
367									<label for="saddr"><span class="label">${languageUtil.get(request,'infoasturias-from')}: </span></label> 
368									<input class="form-control" type="text" maxlength="40" name="saddrText" id="saddrText" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}"> 
369									<input class="form-control" type="hidden" name="saddr" id="saddr" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}"> 
370									<button class="btn btn-text" type="submit">${languageUtil.get(request,'infoasturias-como-llegar')} &raquo;</button> 
371								</form> 
372							</div> 
373						</div> 
374						<script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script> 
375						<#if validator.isNotNull(Kml.getData())> 
376							<script src="/o/turismo-asturias-theme/js/leaflet/leaflet-omnivore.min.js"></script> 
377						</#if> 
378						<script type="text/javascript"> 
379							AUI().ready('aui-base', function(A){ 
380								var lat = ${coordenadas[0]}, 
381									lng = ${coordenadas[1]}, 
382									marker=""; 
383									contentString=""; 
384								mapContent = new L.map('article-map-content-${articleId}', {center: [lat, lng], zoom: 10}); 
385 
386 
387 
388								//Marker 
389								var defaultIconTheme = '/o/turismo-asturias-theme/css/images/icons/mark-box.png'; 
390								var defaultIcon = L.icon({ 
391									iconUrl: defaultIconTheme, 
392									iconSize:     [36, 53], 
393									iconAnchor:   [18, 53], 
394									iconShadow:   [0,0], 
395									popupAnchor:  [0, -30] 
396								}); 
397								//paint KML 
398								<#if validator.isNotNull(Kml.getData())> 
399									var customLayer = L.geoJson(null, { 
400										style: function(feature) { 
401											return { color: '#55aa00' }; 
402
403									}); 
404									omnivore.kml('${Kml.getData()}', null, customLayer).addTo(mapContent); 
405								</#if> 
406								 
407								<#if Municipios.CoordenadasMunicipios.getSiblings()?has_content> 
408									<#list Municipios.CoordenadasMunicipios.getSiblings() as coorMunicipio> 
409										marker = L.marker([${coorMunicipio.getData()}], {icon: defaultIcon}).addTo(mapContent); 
410										<#if validator.isNotNull(coorMunicipio.NombreMunicipio.getData())> 
411											var contentString = '<div class="row">'; 
412											contentString += '<div class="col-12">'; 
413											contentString += '<div class="h4">${coorMunicipio.NombreMunicipio.getData()}</div>'; 
414											<#if validator.isNotNull(coorMunicipio.CapitalMunicipio.getData())> 
415											contentString += '<div class="title">(${coorMunicipio.CapitalMunicipio.getData()})</div>'; 
416											</#if> 
417											contentString += '</div>'; 
418											contentString += '</div>'; 
419											marker.bindPopup(contentString); 
420										</#if> 
421										 
422									</#list> 
423								<#else> 
424									marker = L.marker([lat, lng], {icon: defaultIcon}).addTo(mapContent); 
425									 
426									contentString = '<div class="row">'; 
427									contentString += '<div class="col-12">'; 
428									contentString += '<div class="h4">${htmlUtil.escape(title)}</div>'; 
429									contentString += '</div>'; 
430									contentString += '</div>'; 
431									 
432									contentString += '<div class="row">'; 
433									contentString += '<div class="col-12">'; 
434									<#if validator.isNotNull(articleMainImageThumbnail1)> 
435										contentString += '<img class="pull-right mb-2 ml-2" src="${articleMainImageThumbnail1}" alt="$title"/>'; 
436									</#if> 
437									contentString += '<dl class="mb-0">'; 
438									<#if address?has_content> 
439										contentString += '<dt>${languageUtil.get(request,'address')}</dt>'; 
440										contentString += '<dd>${htmlUtil.escape(address)}</dd>'; 
441									</#if> 
442									<#if Web.data?has_content> 
443										<#assign linkURL = Web.data/> 
444														 
445										<#if !stringUtil.startsWith(linkURL, "http")> 
446											<#assign linkURL = "https://${Web.data}"/> 
447										</#if> 
448										contentString += '<dt>${languageUtil.get(request,'site')}</dt>'; 
449										contentString += '<dd><a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}">${Web.data}</a></dd'; 
450									</#if> 
451									contentString += '</dl>'; 
452									contentString += '</div>'; 
453									contentString += '</div>'; 
454									<#if validator.isNotNull(description)> 
455										contentString += '<div class="row"><div class="col-12">${htmlUtil.escape(description)}</div></div>'; 
456									</#if> 
457									marker.bindPopup(contentString); 
458								</#if> 
459 
460								//Contributor 
461								L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
462									attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.' 
463								}).addTo(mapContent); 
464								 
465							}); //AUI.ready 
466						</script> 
467					</div> 
468				</div> 
469				<#assign showFirstTab = false> 
470			</#if> 
471			 
472			<#if hasTab3> 
473				<div id="tab3" class="article-section accordion-item"> 
474					<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-que-ver')}</a> 
475					<div id="tabContent3" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading3"> 
476						<#if QueVer.data?has_content> 
477							${QueVer.data} 
478						</#if> 
479					</div> 
480				</div> 
481				<#assign showFirstTab = false> 
482			</#if>	 
483 
484			<#if hasTab4> 
485				<div id="tab4" class="article-section accordion-item"> 
486					<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-observaciones')}</a> 
487					<div id="tabContent4" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading4"> 
488						<#if validator.isNotNull(Observaciones.data)> 
489							${Observaciones.data} 
490						</#if> 
491					</div> 
492				</div> 
493				<#assign showFirstTab = false> 
494			</#if> 
495		</div> 
496		 
497		<#if validator.isNotNull(MasInformacion.data) > 
498			<div class="article-border"> 
499				<#if stringUtil.startsWith(MasInformacion.data, "http://") || stringUtil.startsWith(MasInformacion.data, "https://")> 
500					<a class="d-block" href="${MasInformacion.data}" title="${languageUtil.format(request,'go-to-x', 'link')}">${MasInformacion.data}</a> 
501				<#else> 
502					${MasInformacion.data} 
503				</#if> 
504			</div> 
505		</#if> 
506	</div> 
507	 
508	<#-- Related --> 
509	<#assign relatedJournalArticles = assetTool.getRelatedJournalArticlesApproved(assetEntry)/> 
510	<#if validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0> 
511		<div class="article-related portlet-background-grey-container"> 
512			<div class="container"> 
513				<h3 class="title-section">${languageUtil.get(request,'related-assets')}</h3> 
514				<div class="slick article-related-slick"> 
515					<#list relatedJournalArticles as currentJournalArticle> 
516						<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
517							<div class="slide"> 
518								<a class="card background card-background-9-14"  href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
519									<span class="d-block image-wrapper aspect-ratio-bg-cover" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
520										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
521										<span class="card-body"> 
522											<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
523										</span> 
524									</span> 
525								</a> 
526							</div> 
527					</#list> 
528				</div> 
529			</div> 
530		</div> 
531	</#if> 
532	 
533	<#-- Nearby --> 
534	<#assign classTypeIds = []> 
535	<#assign assetsNearJournalArticles = assetNearTool.getNearJournalArticles(themeDisplay.getScopeGroupId(), assetEntry.getEntryId(), 50.0, classTypeIds, 10)! /> 
536	<#if validator.isNotNull(assetsNearJournalArticles) && assetsNearJournalArticles?size gt 0> 
537		<div class="article-nearby portlet-container-margin"> 
538			<div class="container"> 
539				<div class="article-nearby-container"> 
540					<h3 class="title-section">${languageUtil.get(request,'infoasturias-near-here')}</h3> 
541					<div class="slick article-nearby-slick"> 
542						<#list assetsNearJournalArticles as currentJournalArticle> 
543							<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
544							<div class="slide"> 
545								<a class="card" href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
546									<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
547										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
548										<span class="card-hover"> 
549											<span class="card-text">${currentJournalArticle.getDescription(locale)}</span> 
550										</span> 
551									</span> 
552									<span class="card-body"> 
553										<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
554										<span class="card-subtitle"> 
555											<span class="d-block">${currentJournalArticle.getVersion()} Kms</span> 
556											<span class="d-block">${journalTool.getCategoriesNames(groupId, currentJournalArticle.getArticleId(), locale, ["Concejos"])}</span> 
557										</span> 
558									</span> 
559								</a> 
560							</div> 
561						</#list> 
562					</div> 
563				</div> 
564			</div> 
565		</div> 
566	</#if> 
567	 
568</article>