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