An error occurred while processing the template.
Syntax error in template "37703#37743#1558307" in line 273, column 57: Encountered "<", but was expecting one of: <STRING_LITERAL> <RAW_STRING> "false" "true" <INTEGER> <DECIMAL> "." "+" "-" "!" "[" "(" "{" <ID>
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<article class="template ${ddmStructureNameNormalize}" role="article">
31
32 <header class="article-header-wrapper row no-gutters">
33
34 <div class="article-header-container article-header-container-static" itemscope itemtype="http://schema.org/ProfessionalService">
35 <div class="container">
36 <div class="row no-gutters">
37 <div class="col-md-6">
38 <div class="article-image" style="background-image: url('${articleMainImageThumbnail3}')">
39 <img class="sr-only" src="${articleMainImageThumbnail3}" alt="${languageUtil.format(request,'go-to-x','image')} ${title}" itemprop="image" />
40 </div>
41 </div>
42 <div class="article-info-wrapper col-md-6">
43 <div class="article-info">
44 <div class="article-title" itemprop="name">${title}</div>
45 <div class="article-list-wrapper">
46
47 <ul class="article-list list-unstyled article-list-info">
48 <li class="article-list-item mb-4">
49 <span class="fas fa-map-marker-alt">
50 <span class="hide-accessible">${languageUtil.get(request,"address")}</span>
51 </span>
52 <span class="field-wrapper" itemprop="address">
53 <#if Contacto.Concejo.data?has_content>
54 <span class="important">${Contacto.Concejo.data}</span>
55 <#else>
56 <span class="important">${title}</span>
57 </#if>
58 <#if Contacto.Zona.data?has_content>
59 <span class="text d-block">${Contacto.Zona.data}</span>
60 </#if>
61 </span>
62 </li>
63 <#if Contacto.Direccion.data?has_content || Contacto.CodigoPostal.data?has_content || Contacto.Localidad.data?has_content>
64 <li class="article-list-item">
65 <span class="far fa-address-card">
66 <span class="hide-accessible">${languageUtil.get(request,"address")}</span>
67 </span>
68 <span class="field-wrapper">
69 <span class="field">${languageUtil.get(request, "address")}:</span>
70 <#if Contacto.Direccion.data?has_content>
71 <span class="text">${Contacto.Direccion.data} ■ </span>
72 </#if>
73 <span class="text">${Contacto.CodigoPostal.data} - ${Contacto.Localidad.data}</span>
74 </span>
75 </li>
76 </#if>
77
78 <#if Contacto.Telefono.data?has_content>
79 <li class="article-list-item">
80 <span class="fas fa-phone-alt">
81 <span class="hide-accessible">${languageUtil.get(request,"phone")}</span>
82 </span>
83 <span class="field-wrapper">
84 <span class="field">${languageUtil.get(request, "phone")}:</span>
85 <span class="text" itemprop="telephone">${Contacto.Telefono.data}</span>
86 </span>
87 </li>
88 </#if>
89
90 <#if Contacto.Email.data?has_content>
91 <li class="article-list-item">
92 <span class="far fa-envelope">
93 <span class="hide-accessible">${languageUtil.get(request,"email")}</span>
94 </span>
95 <span class="field-wrapper">
96 <span class="field">${languageUtil.get(request, "email")}:</span>
97 <#list Contacto.Email.getSiblings() as email>
98 <span class="text">
99 <a class="" href="mailto:${email.data}" title="${languageUtil.format(request,'send-email-to-x', 'email')}" itemprop="email">${email.data}</a>
100 <#if !email?is_last>|</#if>
101 </span>
102 </#list>
103 </span>
104 </li>
105 </#if>
106
107 <#if Contacto.Web.data?has_content>
108 <li class="article-list-item web">
109 <span class="fas fa-link">
110 <span class="hide-accessible">${languageUtil.get(request,"site")}</span>
111 </span>
112 <span class="field-wrapper">
113 <span class="field">${languageUtil.get(request, "site")}:</span>
114 <span class="text">
115 <#assign linkURL = Contacto.Web.data/>
116
117 <#if !stringUtil.startsWith(linkURL, "http")>
118 <#assign linkURL = "https://${Contacto.Web.data}"/>
119 </#if>
120 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}" itemprop="url">${Contacto.Web.data}</a>
121 </span>
122 </span>
123 </li>
124 </#if>
125 </ul>
126 </div>
127
128 <#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)>
129 <div class="article-socials-wrapper mt-4">
130 <div class="socials-wrapper">
131 <div class="socials">
132 <ul class="list-inline items socials">
133 <#if RedesSociales.Facebook.data?has_content>
134 <#assign linkURL = RedesSociales.Facebook.data/>
135
136 <#if !stringUtil.startsWith(linkURL, "http")>
137 <#assign linkURL = "https://${RedesSociales.Facebook.data}"/>
138 </#if>
139 <li class="list-inline-item item facebook">
140 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Facebook')}" onclick="this.target='_blank'">
141 <span class="fab fa-facebook-f">
142 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Facebook')}</span>
143 </span>
144 </a>
145 </li>
146 </#if>
147 <#if RedesSociales.Twitter.data?has_content>
148 <#assign linkURL = RedesSociales.Twitter.data/>
149
150 <#if !stringUtil.startsWith(linkURL, "http")>
151 <#assign linkURL = "https://${RedesSociales.Twitter.data}"/>
152 </#if>
153 <li class="list-inline-item item twitter">
154 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Twitter')}" onclick="this.target='_blank'">
155 <span class="fab fa-twitter">
156 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Twitter')}</span>
157 </span>
158 </a>
159 </li>
160 </#if>
161 <#if RedesSociales.Youtube.data?has_content>
162 <#assign linkURL = RedesSociales.Youtube.data/>
163
164 <#if !stringUtil.startsWith(linkURL, "http")>
165 <#assign linkURL = "https://${RedesSociales.Youtube.data}"/>
166 </#if>
167 <li class="list-inline-item item youtube">
168 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Youtube')}" onclick="this.target='_blank'">
169 <span class="fab fa-youtube">
170 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Youtube')}</span>
171 </span>
172 </a>
173 </li>
174 </#if>
175 <#if RedesSociales.GooglePlus.data?has_content>
176 <#assign linkURL = RedesSociales.GooglePlus.data/>
177
178 <#if !stringUtil.startsWith(linkURL, "http")>
179 <#assign linkURL = "https://${RedesSociales.GooglePlus.data}"/>
180 </#if>
181 <li class="list-inline-item item gplus">
182 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Google Plus')}" onclick="this.target='_blank'">
183 <span class="fab fa-google-plus-g">
184 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Google Plus')}</span>
185 </span>
186 </a>
187 </li>
188 </#if>
189 <#if RedesSociales.Pinterest.data?has_content>
190 <#assign linkURL = RedesSociales.Pinterest.data/>
191
192 <#if !stringUtil.startsWith(linkURL, "http")>
193 <#assign linkURL = "https://${RedesSociales.Pinterest.data}"/>
194 </#if>
195 <li class="list-inline-item item pinterest">
196 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Pinterest')}" onclick="this.target='_blank'">
197 <span class="fab fa-pinterest-p">
198 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Pinterest')}</span>
199 </span>
200 </a>
201 </li>
202 </#if>
203 <#if RedesSociales.Instagram.data?has_content>
204 <#assign linkURL = RedesSociales.Instagram.data/>
205
206 <#if !stringUtil.startsWith(linkURL, "http")>
207 <#assign linkURL = "https://${RedesSociales.Instagram.data}"/>
208 </#if>
209 <li class="list-inline-item item instagram">
210 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Instagram')}" onclick="this.target='_blank'">
211 <span class="fab fa-instagram">
212 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Instagram')}</span>
213 </span>
214 </a>
215 </li>
216 </#if>
217 <#if RedesSociales.Rss.data?has_content>
218 <#assign linkURL = RedesSociales.Rss.data/>
219
220 <#if !stringUtil.startsWith(linkURL, "http")>
221 <#assign linkURL = "https://${RedesSociales.Rss.data}"/>
222 </#if>
223 <li class="list-inline-item item rss">
224 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Rss')}" onclick="this.target='_blank'">
225 <span class="fas fa-rss">
226 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Rss')}</span>
227 </span>
228 </a>
229 </li>
230 </#if>
231 <#list RedesSociales.OtrosCanales.NombreCanal.getSiblings() as Canal>
232 <#if Canal.CanalUrl.data?has_content>
233 <#assign linkURL = Canal.CanalUrl.data/>
234
235 <#if !stringUtil.startsWith(linkURL, "http")>
236 <#assign linkURL = "https://${Canal.CanalUrl.data}"/>
237 </#if>
238 <li class="list-inline-item item instagram">
239 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x',Canal.data)}" onclick="this.target='_blank'">
240 <span class="fas fa-share-alt">
241 <span class="hide-accessible">${languageUtil.format(request,'go-to-x',Canal.data)}</span>
242 </span>
243 </a>
244 </li>
245 </#if>
246 </#list>
247 </ul>
248 </div>
249 </div>
250 </div>
251 </#if>
252
253 </div>
254 </div>
255 </div>
256 </div>
257 </div>
258 </header>
259
260 <div class="sheet sheet-lg">
261
262 <#assign hasTab1 = Geolocalizacion.Coordenadas.data?has_content>
263 <#assign hasTab2 = Servicios.data?has_content>
264 <#assign hasTab3 = Idiomas.data?has_content>
265 <#assign showFirstTab = true>
266
267 <div class="article-accordion accordion">
268
269 <#if Visualizador.Slide.getData()?has_content>
270 <div class="slick article-slick article-section <#if Visualizador.Slide.getSiblings()?size==1>hide</#if>">
271 <#list Visualizador.Slide.getSiblings() as Slide>
272 <#if validator.isNotNull(Slide.getData() || validator.isNotNull(Slide.SlideUrl.getData())>
273 <#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! />
274 <#assign slideThumbnail2 = dlTool.getThumbnailByJSON(Slide.data, "2")! />
275 <#assign slidePath = dlTool.getPathByJSON(Slide.data, themeDisplay.getScopeGroupId())! />
276 <#assign slideUrl = Slide.SlideUrl.data />
277 <#assign dataMap = "" />
278
279 <#if slideUrl?has_content>
280
281 <#assign slideTitle = "${languageUtil.get(request, 'video')} ${Slide?index}" />
282 <#if Slide.SlideTitulo.data?has_content>
283 <#assign slideTitle = Slide.SlideTitulo.data />
284 </#if>
285
286 <#-- Youtube -->
287 <#assign slideUrl = stringUtil.replace(slideUrl, 'watch?v=', 'embed/') />
288 <#assign slideThumbnail2 = stringUtil.replace(slideUrl, 'www', 'img') />
289 <#assign slideThumbnail2 = stringUtil.replace(slideThumbnail2, 'embed', 'vi') />
290 <#assign slideThumbnail2 = '${slideThumbnail2}/mqdefault.jpg' />
291
292 <#-- Vimeo -->
293 <#if slideUrl?contains("vimeo")>
294 <#assign slideUrl = stringUtil.replace(slideUrl, 'http://vimeo.com/', 'https://player.vimeo.com/video/') />
295 <#assign slideVimeoId = stringUtil.extractLast(slideUrl, 'https://player.vimeo.com/video/') />
296 <#if slideVimeoId?has_content>
297 <#assign slideVimeoJsonPath = 'http://vimeo.com/api/v2/video/${slideVimeoId}.json' />
298 <#assign slideVimeoJsonContent = getUrlContent.getContent(slideVimeoJsonPath)! />
299 <#if slideVimeoJsonContent?has_content>
300 <#assign slideVimeoJsonArray = jsonFactoryUtil.createJSONArray(slideVimeoJsonContent) />
301 <#assign slideVimeoJsonItem = slideVimeoJsonArray.get(0) />
302 <#assign slideThumbnail2 = slideVimeoJsonItem.thumbnail_medium />
303 </#if>
304 </#if>
305 </#if>
306
307 <div id="slide-${Slide?index}" class="slide">
308 <a class="card card-simple card-video" href="#" onclick="javascript: event.preventDefault(); showDialogIframe('${slideUrl}', '${slideTitle}', 800, 600, 'videoPopup', 'videoPopupIframe');" title="${slideTitle}">
309 <span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');">
310 <img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}">
311 </a>
312 </div>
313 <#else>
314
315 <#assign slideTitle = "${languageUtil.get(request, 'image')} ${Slide?index}" />
316 <#if Slide.SlideTitulo.data?has_content>
317 <#assign slideTitle = Slide.SlideTitulo.data />
318 </#if>
319
320 <div class="slide">
321 <a class="card card-simple lightbox" href="${slidePath}" title="${slideTitle}">
322 <span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');">
323 <img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}">
324 </a>
325 </div>
326 </#if>
327 </#if>
328 </#list>
329 </div>
330 </#if>
331
332
333 <#if hasTab1>
334 <#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) />
335 <div id="tab1" class="article-section accordion-item">
336 <a href="#tabContent1" id="tabHeading1" class="h3 accordion-header <#if !showFirstTab>collapsed</#if>" aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent1" role="button">
337 ${languageUtil.get(request,'map')}
338 </a>
339 <div id="tabContent1" class="article-section-content accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading2">
340 <div id="article-map-wrapper-${articleId}" class="article-map-wrapper">
341 <div id="article-map-content-${articleId}" style="width: 100%; height: 388px; z-index:1"><!-- MAP --></div>
342 <div class="article-map-form">
343 <div class="name important">${title}</div>
344 <div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${Geolocalizacion.Coordenadas.data}</span></div>
345 <form action="https://maps.google.es/maps" method="get" target="_blank">
346 <input type="hidden" name="daddr" value="${coordenadas[0]},${coordenadas[1]}">
347 <label for="saddr"><span class="label">${languageUtil.get(request,'infoasturias-from')}: </span></label>
348 <input class="form-control" type="text" maxlength="40" name="saddrText" id="saddrText" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}">
349 <input class="form-control" type="hidden" name="saddr" id="saddr" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}">
350 <button class="btn btn-text" type="submit">${languageUtil.get(request,'infoasturias-como-llegar')} </button>
351 </form>
352 </div>
353 </div>
354 <script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script>
355 <script type="text/javascript">
356 AUI().ready('aui-base', function(A){
357 var lat = ${coordenadas[0]},
358 lng = ${coordenadas[1]},
359 zoom = 16;
360 mapContent = new L.map('article-map-content-${articleId}', {center: [lat, lng], zoom: 16});
361
362 //Marker
363 var defaultIconTheme = '/o/turismo-asturias-theme/css/images/icons/mark-box.png';
364 var defaultIcon = L.icon({
365 iconUrl: defaultIconTheme,
366 iconSize: [36, 53],
367 iconAnchor: [18, 53],
368 iconShadow: [0,0],
369 popupAnchor: [0, -30]
370 });
371 var marker = L.marker([lat, lng], {icon: defaultIcon}).addTo(mapContent);
372
373 var contentString = '<div class="row">';
374 contentString += '<div class="col-12">';
375 contentString += '<div class="h4">${htmlUtil.escape(title)}</div>';
376 contentString += '</div>';
377 contentString += '</div>';
378
379 contentString += '<div class="row">';
380 contentString += '<div class="col-12">';
381 <#if validator.isNotNull(articleMainImageThumbnail1)>
382 contentString += '<img class="pull-right mb-2 ml-2" src="${articleMainImageThumbnail1}" alt="$title"/>';
383 </#if>
384 contentString += '<dl class="mb-0">';
385 <#if address?has_content>
386 contentString += '<dt>${languageUtil.get(request,'address')}</dt>';
387 contentString += '<dd>${htmlUtil.escape(address)}</dd>';
388 </#if>
389 <#if Contacto.Telefono.data?has_content>
390 contentString += '<dt>${languageUtil.get(request,'phone')}</dt>';
391 contentString += '<dd>${Contacto.Telefono.data}</dd>';
392 </#if>
393 <#if Contacto.Email.getData()?has_content>
394 contentString += '<dt>${languageUtil.get(request,'email')}</dt>';
395 <#list Contacto.Email.getSiblings() as Item>
396 contentString += '<dd><a href="mailto:${Item.data}" title="${languageUtil.format(request,'go-to-x', 'email')}">${Item.data}</a></dd>';
397 </#list>
398 </#if>
399 <#if Contacto.Web.data?has_content>
400 <#assign linkURL = Contacto.Web.data/>
401
402 <#if !stringUtil.startsWith(linkURL, "http")>
403 <#assign linkURL = "https://${Contacto.Web.data}"/>
404 </#if>
405 contentString += '<dt>${languageUtil.get(request,'site')}</dt>';
406 contentString += '<dd><a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}">${Contacto.Web.data}</a></dd';
407 </#if>
408 contentString += '</dl>';
409 contentString += '</div>';
410 contentString += '</div>';
411 <#if validator.isNotNull(description)>
412 contentString += '<div class="row"><div class="col-12">${htmlUtil.escape(description)}</div></div>';
413 </#if>
414 marker.bindPopup(contentString);
415
416 //Contributor
417 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
418 attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.'
419 }).addTo(mapContent);
420
421 }); //AUI.ready
422 </script>
423 </div>
424 </div>
425 <#assign showFirstTab = false>
426 </#if>
427
428 <#if hasTab2>
429 <div id="tab2" class="article-section accordion-item">
430 <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">${languageUtil.get(request,'infoasturias-servicios')}</a>
431 <div id="tabContent2" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading2">
432 <#if Servicios.data?has_content>
433 ${Servicios.data}
434 </#if>
435 </div>
436 </div>
437 <#assign showFirstTab = false>
438 </#if>
439
440 <#if hasTab3>
441 <div id="tab3" class="article-section accordion-item">
442 <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,'languages')}</a>
443 <div id="tabContent3" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading3">
444 <#if Idiomas.data?has_content>
445 ${Idiomas.data}
446 </#if>
447 </div>
448 </div>
449 <#assign showFirstTab = false>
450 </#if>
451
452 </div>
453
454 <#if OtrosDatos.DatosFacilitadosPor?has_content || CodigoDGT.data?has_content>
455 <div class="article-border">
456 <div class="info-datos">
457 <#if OtrosDatos.DatosFacilitadosPor?has_content>
458 <span class="mr-1">${languageUtil.get(request,'infoasturias-datos-facilitados-por')}</span>
459 <span class="important mr-1">${OtrosDatos.DatosFacilitadosPor.data}</span>
460 </#if>
461 <#if CodigoDGT.data?has_content>
462 <span class="mr-1">${languageUtil.get(request, "infoasturias-dondedormir-datosfacilitados-dgt")}:</span>
463 <span class="important">${CodigoDGT.getData()}.</span>
464 </#if>
465 </div>
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</article>