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