Voltar Planos para desfrutar das Astúrias no inverno
Ocorreu um erro ao processar o template.
The following has evaluated to null or missing:
==> layoutTool.getLayoutByLayoutId(getterUtil.getLong(groupId), false, getterUtil.getLong(layoutJson.layoutId)) [in template "37703#37743#943631" at line 559, column 99]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign selectedLayout = layoutTool.g... [in template "37703#37743#943631" at line 559, column 73]
----
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 localizationUtil = serviceLocator.findService("com.liferay.portal.kernel.util.LocalizationUtil")/>
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 displayDate=.vars["reserved-article-display-date"].data />
12<#assign request = .vars['request']>
13
14<#-- Init -->
15<#assign assetEntry = journalTool.getAssetEntryByArticleId(groupId, articleId)>
16<#assign journalArticle = journalTool.getJournalArticleByAssetEntry(assetEntry)>
17<#assign articleURL = themeDisplay.getURLPortal()+themeDisplay.getURLCurrent()>
18<#assign articleSocialBookmarks = themeDisplay.getThemeSetting("article-social-bookmarks")!>
19<#assign layoutSetBannerPath = layoutTool.getLayoutSetBannerPath(groupId, themeDisplay.getLayout().isPrivateLayout())!>
20<#assign articleMainImageThumbnail3 = dlTool.getThumbnail(smallImageUrl, "3", layoutSetBannerPath)! />
21<#assign articleMainImageThumbnail1 = dlTool.getThumbnail(smallImageUrl, "1")! />
22<#assign ddmStructureNameNormalize = "template-${friendlyURLNormalizerTool.normalize(journalArticle.getDDMStructure().getName(localeUtil.getDefault()))}" />
23
24<#assign layoutSet = layout.getLayoutSet() />
25<#assign categoriesBlog = journalTool.getCategories(scopeGroupId, articleId, ["Blog"])! />
26<#assign tags = journalTool.getTags(scopeGroupId, articleId)! />
27
28<#if TituloH1?? && validator.isNotNull(TituloH1.data)>
29 <#assign title = TituloH1.data>
30</#if>
31<#assign altImgDestacada = "${languageUtil.get(request, 'image')} Post" />
32<#if AltImagenDestacada ??>
33 <#if validator.isNotNull(AltImagenDestacada.getData())>
34 <#assign altImgDestacada = AltImagenDestacada.getData() />
35 </#if>
36</#if>
37<article class="template ${ddmStructureNameNormalize}" role="article" itemscope="" itemtype="http://schema.org/BlogPosting">
38
39 <div class="page-header wide-container" style="background-image: url('${smallImageUrl}') ; " role="img" aria-label="${altImgDestacada}">
40 <img class="page-header-image d-sm-none" src="${smallImageUrl}" alt="" />
41 <div class="page-title-wrapper">
42 <div class="page-title ">
43 <div class="container">
44 <div class="title-wrapper mb-5">
45 <div class="title-inner">
46 <h1 class="title mb-4" itemprop="name">${title}</h1>
47 <#if description?has_content>
48 <p class="description mb-4" itemprop="description">${htmlUtil.extractText(description)}</p>
49 </#if>
50 </div>
51 </div>
52 </div>
53 </div>
54 </div>
55 </div>
56 <div class="container mt-2 mt-sm-5">
57 <div class="row">
58 <section class="col-12 col-xl-8 col-xxl-9 pr-xl-8">
59 <span class="hide-accessible" itemprop="dateCreated">${dateUtil.getDate(journalArticle.getDisplayDate(), "yyyy-MM-dd HH:mm:ss'.'SSS", locale, timeZone)}</span>
60 <div class="blog-entry-date text-uppercase border-bottom pb-3 mb-4">
61 ${dateUtil.getDate(journalArticle.getDisplayDate(), "MMMM yyyy", locale, timeZone)}
62 </div>
63
64 <div class="article-social-bookmarks mb-5">
65 <@liferay_social_bookmarks["bookmarks"]
66 className="com.liferay.journal.model.JournalArticle"
67 classPK=assetEntry.getEntryId()
68 displayStyle="menu"
69 target="_blank"
70 title=title
71 types=articleSocialBookmarks
72 url="${articleURL}"
73 />
74 </div>
75
76 <#if RedesSociales.RedesSocialesTwitter.data?has_content>
77 <div class="article-section blog-social blog-social-twitter">
78 <a class="link-share twitter bold font-size-09" href="https://twitter.com/intent/tweet?text=${RedesSociales.RedesSocialesTwitter.data}!&url=${portalUtil.getCurrentCompleteURL(request)}&via=TurismoAsturias" title="${languageUtil.get(locale,'share')} en Twitter" target="_blank">
79 <span class="fa-brands fa-x-twitter font-size-14 mr-2">
80 <span class="hide-accessible">${languageUtil.get(request,'share')} en Twitter</span>
81 </span>
82 ${RedesSociales.RedesSocialesTwitter.data}
83 </a>
84 </div>
85 </#if>
86
87 <#if RedesSociales.RedesSocialesFacebook.data?has_content>
88 <div class="article-section blog-social blog-social-facebook">
89 <a class="link-share facebook bold font-size-09" href="https://www.facebook.com/sharer/sharer.php?u=${portalUtil.getCurrentCompleteURL(request)}" title="${languageUtil.get(locale,'share')} en Facebook" target="_blank" onclick="window.open(this.href, 'Compartir', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no,width=500,height=450'); return false;">
90 <span class="fab fa-facebook font-size-14 mr-2">
91 <span class="hide-accessible">${languageUtil.get(request,'share')} en Facebook</span>
92 </span>
93 ${RedesSociales.RedesSocialesFacebook.data}
94 </a>
95 </div>
96 </#if>
97 <#if intro ??>
98 <#if intro.IntroTitulo.data?has_content || intro.IntroTexto.data?has_content || intro.IntroTextoTabla.data?has_content>
99 <div class="article-section-blog">
100 <div class="article-section-info">
101 <#if intro.IntroTexto.data?has_content>
102 <div class="text text-justify">${intro.IntroTexto.data}</div>
103 </#if>
104 </div>
105 <#if intro.IntroTitulo.data?has_content>
106 <h2 class="h3 text-center">${intro.IntroTitulo.data}</h2>
107 </#if>
108 <div class="article-section-info">
109 <#if intro.IntroTextoTabla.data?has_content>
110 <div class="text text-justify">${intro.IntroTextoTabla.data}</div>
111 </#if>
112 </div>
113 <div id="TablaContenidos"></div>
114 </div>
115 </#if>
116 </#if>
117 <#list Parrafo.getSiblings() as parrafo>
118 <#if parrafo.ParrafoTitulo.data?has_content || parrafo.ParrafoTexto.data?has_content || parrafo.ParrafoImagen.data?has_content>
119 <#assign curImgAlt = parrafo.ParrafoImagen.ParrafoImagenTexto.getData()/>
120 <#if parrafo.ParrafoImagen.altImg??>
121 <#if validator.isNotNull(parrafo.ParrafoImagen.altImg.getData())>
122 <#assign curImgAlt = parrafo.ParrafoImagen.altImg.getData()/>
123 </#if>
124 </#if>
125 <#assign curImgTitle = parrafo.ParrafoImagen.ParrafoImagenTexto.getData()/>
126 <#if parrafo.ParrafoImagen.titleImg??>
127 <#if validator.isNotNull(parrafo.ParrafoImagen.titleImg.getData())>
128 <#assign curImgTitle = parrafo.ParrafoImagen.titleImg.getData()/>
129 </#if>
130 </#if>
131 <#assign tipoHeading = ""/>
132 <#if parrafo.headingTipo??>
133 <#if validator.isNotNull(parrafo.headingTipo.getData())>
134 <#assign tipoHeading = parrafo.headingTipo.getData()/>
135 </#if>
136 </#if>
137 <div class="article-section-blog">
138 <#if themeDisplay.isSignedIn()>
139 <div class="portlet-msg-info infoparrafo">
140
141 <p class="text-center">
142 <#assign pIndex = parrafo?index + 1 />
143 <span class="important">Párrafo <#if parrafo?index gt 0> ${pIndex}</#if></span>
144 (Información visible únicamente para usuarios logueados)
145 </p>
146 </div>
147 </#if>
148 <#if parrafo.ParrafoTitulo.data?has_content>
149 <#if parrafo.headingTipo?? && validator.isNull(parrafo.headingTipo.getData())>
150 <h3 class="h3">
151 ${parrafo.ParrafoTitulo.data}
152 </h3>
153 <#elseif tipoHeading == "h2">
154 <h2 class="h3 text-center">
155 ${parrafo.ParrafoTitulo.data}
156 </h2>
157 <#else>
158 <h3 class="h3">
159 ${parrafo.ParrafoTitulo.data}
160 </h3>
161 </#if>
162 </#if>
163 <div class="article-section-info">
164 <#if parrafo.ParrafoTexto.data?has_content>
165 <div class="text text-justify">${parrafo.ParrafoTexto.data}</div>
166 </#if>
167 <#if parrafo.ParrafoImagen.data?has_content>
168 <div class="article-section-image-wrapper">
169 <div class="article-section-image">
170 <img src="${dlTool.getThumbnail(parrafo.ParrafoImagen.data, '3')}" class="rounded" alt="${curImgAlt}" title="${curImgTitle}"/>
171 <#if parrafo.ParrafoImagen.ParrafoImagenTexto.data?has_content>
172 <div class="article-section-image-footer">${parrafo.ParrafoImagen.ParrafoImagenTexto.data}</div>
173 </#if>
174 </div>
175 </div>
176 </#if>
177 </div>
178 </div>
179 </#if>
180 </#list>
181
182 <#if Contenido.data?has_content>
183 <div class="article-section blog-content">${Contenido.data}</div>
184 </#if>
185
186 <#if Geolocalizacion??>
187 <#if validator.isNotNull(Geolocalizacion.Coordenadas.data)>
188 <#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) />
189 <div class="h3">
190 ${languageUtil.get(request,'map')}
191 </div>
192 </a>
193 <div id="article-map-wrapper-${articleId}" class="article-map-wrapper">
194 <div id="article-map-content-${articleId}" style="width: 100%; height: 500px; z-index:1"><!-- MAP --></div>
195 <div class="article-map-form">
196 <div class="name important">${title}</div>
197 <div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${Geolocalizacion.Coordenadas.data}</span></div>
198 <form action="https://maps.google.es/maps" method="get" target="_blank">
199 <input type="hidden" name="daddr" value="${coordenadas[0]},${coordenadas[1]}">
200 <label for="saddr"><span class="label">${languageUtil.get(request,'infoasturias-from')}: </span></label>
201 <input class="form-control" type="text" maxlength="40" name="saddrText" id="saddrText" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}">
202 <input class="form-control" type="hidden" name="saddr" id="saddr" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}">
203 <button class="btn btn-text" type="submit">${languageUtil.get(request,'infoasturias-como-llegar')} »</button>
204 </form>
205 </div>
206 </div>
207 <script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script>
208 <script type="text/javascript">
209 AUI().ready('aui-base', function(A){
210 var lat = ${coordenadas[0]},
211 lng = ${coordenadas[1]},
212 zoom = 16;
213 mapContent = new L.map('article-map-content-${articleId}', {center: [lat, lng], zoom: 16});
214
215 //Marker
216 var defaultIconTheme = '/o/turismo-asturias-theme/css/images/icons/mark-box.png';
217 var defaultIcon = L.icon({
218 iconUrl: defaultIconTheme,
219 iconSize: [36, 53],
220 iconAnchor: [18, 53],
221 iconShadow: [0,0],
222 popupAnchor: [0, -30]
223 });
224 var marker = L.marker([lat, lng], {icon: defaultIcon}).addTo(mapContent);
225
226 var contentString = '<div class="row">';
227 contentString += '<div class="col-12">';
228 contentString += '<div class="h4">${htmlUtil.escape(title)}</div>';
229 contentString += '</div>';
230 contentString += '</div>';
231
232 contentString += '<div class="row">';
233 contentString += '<div class="col-12">';
234 <#if validator.isNotNull(articleMainImageThumbnail1)>
235 contentString += '<img class="pull-right mb-2 ml-2" src="${articleMainImageThumbnail1}" alt="$title"/>';
236 </#if>
237 contentString += '<dl class="mb-0">';
238 <#if address?has_content>
239 contentString += '<dt>${languageUtil.get(request,'address')}</dt>';
240 contentString += '<dd>${address}</dd>';
241 </#if>
242 contentString += '</dl>';
243 contentString += '</div>';
244 contentString += '</div>';
245 <#if validator.isNotNull(description)>
246 contentString += '<div class="row"><div class="col-12">${description}</div></div>';
247 </#if>
248 marker.bindPopup(contentString);
249
250 //Contributor
251 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
252 attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.'
253 }).addTo(mapContent);
254
255 }); //AUI.ready
256 </script>
257
258 </#if>
259 </#if>
260 <#if Colaborador.ColaboradorImagen.data?has_content || Colaborador.ColaboradorNombre.data?has_content || Colaborador.ColaboradorCopyright.data?has_content>
261 <div class="article-section blog-collaborator-wrapper">
262 <div class="d-flex">
263 <#if Colaborador.ColaboradorImagen.data?has_content>
264 <div class="blog-colaborador-image image-wrapper aspect-ratio-bg-cover mr-4" style="background-image: url('${dlTool.getThumbnail(Colaborador.ColaboradorImagen.data, '3')}');">
265 <img class="hide-accessible" src="${dlTool.getThumbnail(Colaborador.ColaboradorImagen.data, '1')}"/>
266 </div>
267 </#if>
268 <#if Colaborador.ColaboradorNombre.data?has_content>
269 <div class="text-justify w-100" itemprop="author">${languageUtil.get(request,'metadata.MSOffice.AUTHOR')}: ${Colaborador.ColaboradorNombre.data}</div>
270 </#if>
271 </div>
272 <div class="article-section blog-copyright-wrapper">
273 <#if Colaborador.ColaboradorCopyright.data?has_content>
274 <span class="blog-copyright">${Colaborador.ColaboradorCopyright.data}</span>
275 </#if>
276 </div>
277 </div>
278 </#if>
279
280 <#-- ===== Promociones ===== -->
281 <#assign bonoTagContentMap = {
282 "bono": "promocion-bonos",
283 "familia": "banner-familia"
284 } />
285 <#assign bonoContentTags = [] />
286 <#if tags?has_content>
287 <#list tags as tag>
288 <#assign tagLower = tag.getName()?lower_case />
289 <#if bonoTagContentMap[tagLower]??>
290 <#assign bonoContentTags = bonoContentTags + [bonoTagContentMap[tagLower]] />
291 </#if>
292 </#list>
293 </#if>
294 <#if bonoContentTags?has_content>
295 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
296 <#assign assetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService") />
297 <#assign bonoMaxResults = 3 />
298 <#assign journalArticleClassName = "com.liferay.journal.model.JournalArticle" />
299 <#assign bonoArticlesFound = [] />
300 <#assign bonoEntryPKs = [] />
301
302 <#list bonoContentTags as contentTag>
303 <#if bonoArticlesFound?size gte bonoMaxResults>
304 <#break />
305 </#if>
306 <#assign bonoTag = assetTagLocalService.fetchTag(groupId?long, contentTag)! />
307 <#if bonoTag?has_content>
308 <#assign tagEntries = assetEntryLocalServiceUtil.getAssetTagAssetEntries(bonoTag.getTagId())! />
309 <#if tagEntries?has_content>
310 <#list tagEntries as entry>
311 <#if bonoArticlesFound?size gte bonoMaxResults>
312 <#break />
313 </#if>
314 <#if entry.getClassName()?lower_case == journalArticleClassName?lower_case && entry.isVisible() && !bonoEntryPKs?seq_contains(entry.getClassPK())>
315 <#assign bonoArticle = journalArticleLocalService.fetchLatestArticle(entry.getClassPK())! />
316 <#if bonoArticle?has_content && bonoArticle.isApproved()>
317 <#assign bonoArticlesFound = bonoArticlesFound + [bonoArticle] />
318 <#assign bonoEntryPKs = bonoEntryPKs + [entry.getClassPK()] />
319 </#if>
320 </#if>
321 </#list>
322 </#if>
323 </#if>
324 </#list>
325 <#if bonoArticlesFound?has_content>
326 <div class="bono-inline-content mt-5 pt-4 border-top">
327 <#list bonoArticlesFound as bonoArticle>
328 <#assign bonoTitulo = journalTool.getJournalArticleFieldValue(bonoArticle, "Titulo", locale)! />
329 <#if !bonoTitulo?has_content>
330 <#assign bonoTitulo = journalTool.getJournalArticleFieldValue(bonoArticle, "Contenido.Titulo", locale)! />
331 </#if>
332 <#assign bonoTexto = journalTool.getJournalArticleFieldValue(bonoArticle, "Texto", locale)! />
333 <#if !bonoTexto?has_content>
334 <#assign bonoTexto = journalTool.getJournalArticleFieldValue(bonoArticle, "Contenido.Texto", locale)! />
335 </#if>
336 <#if bonoTexto?has_content>
337 <div class="bono-item mb-5">
338 <#if bonoTitulo?has_content>
339 <h2 class="h3 mb-3">${htmlUtil.escape(bonoTitulo)}</h2>
340 </#if>
341 <div class="bono-item-text">
342 ${bonoTexto}
343 </div>
344 </div>
345 </#if>
346 </#list>
347 </div>
348 </#if>
349 </#if>
350 <#-- ===== Fin Promociones ===== -->
351
352 <#if (SeccionBanner.BannerCTA.getData())??>
353 <#if SeccionBanner.BannerCTA.data?has_content>
354 <div class="mt-5 text-center">
355 ${SeccionBanner.BannerCTA.getData()}
356 </div>
357 </#if>
358 </#if>
359 <div class="border-top mt-5">
360 <div class="article-social-bookmarks mt-5">
361 <@liferay_social_bookmarks["bookmarks"]
362 className="com.liferay.journal.model.JournalArticle"
363 classPK=assetEntry.getEntryId()
364 displayStyle="menu"
365 target="_blank"
366 title=title
367 types=articleSocialBookmarks
368 url="${articleURL}"
369 />
370 </div>
371
372 <#if (categoriesBlog?has_content && categoriesBlog?size gt 0) || (tags?has_content && tags?size gt 0)>
373 <div class="categories-tags-container mt-5">
374 <#if categoriesBlog?has_content && categoriesBlog?size gt 0>
375 <span class="categories mr-3">
376 <#list categoriesBlog as categoryBlog>
377 <span class="category bold text-uppercase border-right pr-3">${categoryBlog.getName()}</span>
378 </#list>
379 </span>
380 </#if>
381
382 <#if tags?has_content && tags?size gt 0>
383 <span class="tags">
384 <#list tags as tag>
385 <span class="tag mr-3 text-secondary"><i class="fas fa-tag mr-1"><!--Icon--></i>${tag.getName()}</span>
386 </#list>
387 </span>
388 </#if>
389 </div>
390 </#if>
391 </div>
392 </section>
393
394 <section class="col-12 col-xl-4 col-xxl-3 px-4 pt-4 portlet-background-grey-container blog-info-extra">
395 <div class="social-container mb-6">
396 <div class="title h3">${languageUtil.get(request,'infoasturias-siguenos-en-las-redes')}</div>
397 <ul class="list-inline items socials">
398
399 <#if layoutSet.getSettingsProperty("instagram")?has_content>
400 <li class="list-inline-item item instagram mr-2"><a href="${layoutSet.getSettingsProperty("instagram")}" title="${languageUtil.format(request,'go-to-x','Instagram')}" onclick="this.target='_blank'"><i class="fab fa-instagram"><!-- icon --></i><span class="hide-accessible">${languageUtil.format(request,'go-to-x','Instagram')}</span></a></li>
401 </#if>
402
403 <#if layoutSet.getSettingsProperty("facebook")?has_content>
404 <li class="list-inline-item item facebook mr-2"><a href="${layoutSet.getSettingsProperty("facebook")}" title="${languageUtil.format(request,'go-to-x','Facebook')}" onclick="this.target='_blank'"><i class="fab fa-facebook"><!-- icon --></i><span class="hide-accessible">${languageUtil.format(request,'go-to-x','Facebook')}</span></a></li>
405 </#if>
406
407 <#if layoutSet.getSettingsProperty("twitter")?has_content>
408 <li class="list-inline-item item twitter mr-2"><a href="${layoutSet.getSettingsProperty("twitter")}" title="${languageUtil.format(request,'go-to-x','Twitter')}" onclick="this.target='_blank'"><i class="fa-brands fa-x-twitter"><!-- icon --></i><span class="hide-accessible">${languageUtil.format(request,'go-to-x','Twitter')}</span></a></li>
409 </#if>
410
411 <#if layoutSet.getSettingsProperty("youtube")?has_content>
412 <li class="list-inline-item item youtube mr-2"><a href="${layoutSet.getSettingsProperty("youtube")}" title="${languageUtil.format(request,'go-to-x','Youtube')}" onclick="this.target='_blank'"><i class="fab fa-youtube"><!-- icon --></i><span class="hide-accessible">${languageUtil.format(request,'go-to-x','Youtube')}</span></a></li>
413 </#if>
414
415 <#if layoutSet.getSettingsProperty("tiktok")?has_content>
416 <li class="list-inline-item item tiktok mr-22"><a href="${layoutSet.getSettingsProperty("tiktok")}" title="${languageUtil.format(request,'go-to-x','Tiktok')}" onclick="this.target='_blank'"><i class="fab fa-tiktok"><!-- icon --></i><span class="hide-accessible">${languageUtil.format(request,'go-to-x','Tiktok')}</span></a></li>
417 </#if>
418
419 <#if layoutSet.getSettingsProperty("pinterest")?has_content>
420 <li class="list-inline-item item pinterest mr-2"><a href="${layoutSet.getSettingsProperty("pinterest")}" title="${languageUtil.format(request,'go-to-x','Pinterest')}" onclick="this.target='_blank'"><i class="fab fa-pinterest"><!-- icon --></i><span class="hide-accessible">${languageUtil.format(request,'go-to-x','Pinterest')}</span></a></li>
421 </#if>
422 </ul>
423 </div>
424
425 <div class="newsletter-container mb-6 mt-9">
426 <#assign imgBackground = "/o/turismo-asturias-theme/images/adt/newsletter-background-mask.jpg"/>
427 <div class="template template-image-background template-image-background-right rounded" style="background-image: url('${imgBackground}'); background-position: right;">
428 <img alt="${title}" class="image" src="${imgBackground}" />
429
430 <div class="panel-text panel-text-secondary panel-text-round text-left mb-2 w-75 p-4">
431 <div class="panel-text-content">
432 <p class="text-white bold mb-3">${languageUtil.get(request,'infoasturias-contact-default-newsletter-blog')}</p>
433
434 <#assign suscribeteLayout = layoutTool.getLayoutByFriendlyURL(groupId, false, "/suscribete")!>
435 <#if validator.isNotNull(suscribeteLayout)>
436 <#assign suscribeteLayoutURL = layoutTool.getLayoutFullURLByLayout(suscribeteLayout, locale)>
437 <a class="btn btn-primary w-100" href="${suscribeteLayoutURL}" title="${languageUtil.get(request,'subscribe')}">
438 <i class="far fa-envelope-open"><!--icon--></i>
439 ${languageUtil.get(request,'subscribe')}
440 </a>
441 </#if>
442 </div>
443 </div>
444 </div>
445 </div>
446
447 <#-- Related -->
448 <#assign relatedJournalArticles = assetTool.getRelatedJournalArticlesApproved(assetEntry)/>
449 <#if validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0>
450 <div class="article-related-container mb-6">
451 <div class="title h3">${languageUtil.get(request,'infoasturias-we-recommend')}</div>
452 <div class="article-related article-related-list">
453 <#if relatedJournalArticles?size gt 4 >
454 <#assign relatedJournalArticles = relatedJournalArticles[0..3]/>
455 </#if>
456 <#list relatedJournalArticles as article>
457 <#assign asset = journalTool.getAssetEntryByArticleId(groupId, article.getArticleId())/>
458 <#assign thumbnail = assetTool.getAssetThumbnailPath(asset)/>
459 <#assign viewURL = assetPublisherTool.getAssetViewURL(renderRequest, renderResponse, asset) />
460 <a class="d-flex align-items-center mb-4" href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', article.getTitle(locale))}">
461 <span class="image-wrapper aspect-ratio-bg-cover rounded-circle" style="background-image: url('${article.getSmallImageURL()}'); width: 136px; height:87px;">
462 <img class="hide-accessible" src="${article.getSmallImageURL()}" alt="${article.getTitle(locale)}">
463 </span>
464 <span class="article-related-body ml-3 w-100">
465 <span class="title extra-bold">${article.getTitle(locale)}</span>
466 <span class="subtitle text-uppercase semil-bold hide">${dateUtil.getDate(article.getDisplayDate(), "MMMM yyyy", locale, timeZone)}</span>
467 </span>
468 </a>
469 </#list>
470 </div>
471 </div>
472 </#if>
473
474 <div class="categories-container mb-6">
475 <div class="title h3">${languageUtil.get(request,'categories')}</div>
476 <@liferay_portlet["runtime"]
477 instanceId="assetCategoriesNavigationBlog"
478 portletName="com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet"
479 />
480 </div>
481
482 </section>
483 </div>
484 </div>
485
486
487 <#if SeccionCTA?? && SeccionCTA.ImagenCTA?? && SeccionCTA.Enlaces.EnlaceExterno?? && SeccionCTA.Enlaces.EnlaceInterno?? && SeccionCTA.ScriptCTA??>
488 <#if SeccionCTA.ImagenCTA.data?has_content>
489 <div class="script-cta-container container mt-6">
490 <#assign imagenCTA = dlTool.getThumbnail(SeccionCTA.ImagenCTA.data, "3")! />
491 <#assign enlace = "" />
492 <#assign target = "" />
493
494 <#if SeccionCTA.Enlaces.EnlaceExterno.data?has_content>
495 <#assign enlace = SeccionCTA.Enlaces.EnlaceExterno.data !/>
496 <#assign target = "_blank" />
497 <#if !stringUtil.matches(enlace, "//")>
498 <#assign enlace = "//${enlace}" />
499 </#if>
500 <#elseif SeccionCTA.Enlaces.EnlaceInterno.data?has_content>
501 <#assign enlace = SeccionCTA.Enlaces.EnlaceInterno.getUrl() !/>
502 </#if>
503
504 <a class="banner-cta" href="${enlace}" title="${languageUtil.format(request, 'go-to-x', enlace)}" target="${target}">
505 <span class="background card-background-9-14 image-wrapper aspect-ratio-bg-cover d-block" style="background-image: url('${imagenCTA}'); height:300px;">
506 <img class="hide-accessible" src="${imagenCTA}" alt="Imagen ${enlace}">
507 </span>
508 </a>
509
510 <#if SeccionCTA.ScriptCTA.data?has_content>
511 ${SeccionCTA.ScriptCTA.data}
512 </#if>
513 </div>
514 </#if>
515 </#if>
516
517 <#-- Related -->
518 <#assign relatedJournalArticles = assetTool.getRelatedJournalArticlesApproved(assetEntry)/>
519 <#if PaginasRelacionadas?? && PaginasRelacionadas.Pagina.getSiblings()?has_content || validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0>
520 <div class="article-related portlet-background-grey-container">
521 <div class="container">
522 <div class="title-section font-size-15 h3">${languageUtil.get(request,'related-assets')}</div>
523 <div class="row">
524 <#if validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0>
525 <#if relatedJournalArticles?size gt 4>
526 <#assign relatedJournalArticles = relatedJournalArticles[0..3]/>
527 </#if>
528 <#list relatedJournalArticles as article>
529 <#assign asset = journalTool.getAssetEntryByArticleId(groupId, article.getArticleId())/>
530 <#assign thumbnail = assetTool.getAssetThumbnailPath(asset)/>
531 <#assign viewURL = assetPublisherTool.getAssetViewURL(renderRequest, renderResponse, asset) />
532 <#assign enlace = journalTool.getJournalArticleFieldValue(article, "Enlace" locale)!/>
533 <#assign relatedTitle = article.getTitle(locale)/>
534 <#if validator.isNotNull(enlace)>
535 <#assign viewURL = enlace/>
536 <#assign nombre = journalTool.getJournalArticleFieldValue(article, "Nombre" locale)!/>
537 <#if validator.isNotNull(nombre)>
538 <#assign relatedTitle = nombre/>
539 </#if>
540 </#if>
541 <div class="col-sm-6 col-12">
542 <div class="card card-hover-wrapper">
543 <a href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', article.getTitle(locale))}" style="background-image: url('${article.getSmallImageURL()}');" class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-16-to-9">
544 <img class="hide-accessible" alt="${article.getTitle(locale)}" src="${article.getSmallImageURL()}">
545 <p class="card-hover">
546 <span class="card-text text-uppercase font-size-11" style="font-weight:700;">${relatedTitle}</span>
547 </p>
548 </a>
549 </div>
550 </div>
551 </#list>
552 </#if>
553 <#if PaginasRelacionadas??>
554 <#if PaginasRelacionadas.Pagina.getSiblings()?has_content>
555 <#list PaginasRelacionadas.Pagina.getSiblings() as currentLayout>
556 <#if validator.isNotNull(currentLayout.data)>
557 <#assign link = currentLayout.getFriendlyUrl() />
558 <#assign layoutJson = currentLayout.data?eval/>
559 <#assign selectedLayout = layoutTool.getLayoutByLayoutId(getterUtil.getLong(groupId), false, getterUtil.getLong(layoutJson.layoutId))/>
560 <#assign layoutBackgroundImageUuid = selectedLayout.getTypeSettingsProperty("background") !/>
561 <#if validator.isNull(layoutBackgroundImageUuid)>
562 <#assign layoutBackgroundImageUuid = layoutTool.getLayoutSetSetting(themeDisplay.getLayoutSet(), "banner")! />
563 </#if>
564 <#assign layoutBackgroundImage = dlTool.getPathByUuid(layoutBackgroundImageUuid, themeDisplay.getScopeGroupId())! />
565 <#assign layoutName = selectedLayout.getName(locale)/>
566 <#if selectedLayout.getTypeSettingsProperty("title")?has_content >
567 <#assign titleXML = selectedLayout.getTypeSettingsProperty("title")! />
568 <#if validator.isNotNull(currentLayout.NombrePagina.getData())>
569 <#assign layoutName = currentLayout.NombrePagina.getData() />
570 <#elseif validator.isNotNull(titleXML)>
571 <#assign titleMap = localizationUtil.getLocalizationMap(titleXML)/>
572 <#list titleMap as key, value>
573 <#if key == locale>
574 <#assign layoutName = value />
575 <#break>
576 </#if>
577 </#list>
578 </#if>
579
580 </#if>
581 <#assign layoutName = htmlUtil.extractText(layoutName)/>
582 <div class="col-sm-6 col-12">
583 <div class="card card-hover-wrapper">
584 <a href="${link}" title="${languageUtil.format(request, 'go-to-x', layoutName)}" style="background-image: url('${layoutBackgroundImage}');" class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-16-to-9">
585 <img class="hide-accessible" alt="${layoutName}" src="${layoutBackgroundImage}">
586 <p class="card-hover">
587 <span class="card-text text-uppercase font-size-11" style="font-weight:700;">${layoutName}</span>
588 </p>
589 </a>
590 </div>
591 </div>
592 </#if>
593
594 </#list>
595 </#if>
596 </#if>
597 </div>
598 </div>
599 </div>
600 </#if>
601
602 <script type="text/javascript">
603 AUI().ready('aui-base', function(A){
604 var tabla = A.one("#TablaContenidos");
605 var tablaTitle = A.one(".tabla-title");
606 if(tabla && tablaTitle == null){
607 $('head').append('<link rel="stylesheet" href="/documents/39908/67587/blog.css" type="text/css" />');
608 creaToc();
609 }
610 }); //AUI.ready
611
612 </script>
613</article>