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')} &raquo;</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: '&copy; <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>