Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> null  [in template "8191648#8191687#438724" at line 21, column 25]

----
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 Vocabulary = null  [in template "8191648#8191687#438724" at line 21, column 3]
----
1<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
2<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
3<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
4<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
5 
6 
7<#assign JournalArticle = JournalArticleLocalService.getArticle(themeDisplay.getScopeGroupId(), .vars['reserved-article-id'].data) /> 
8<#assign classPK = JournalArticle.getResourcePrimKey() /> 
9 
10<#assign AssetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", classPK) /> 
11 
12<#attempt> 
13  <#assign urlRedirect = request.getParameter("redirect") /> 
14<#recover> 
15  <#assign urlRedirect = "/blog-turismo-navarra" /> 
16</#attempt> 
17 
18<#attempt> 
19  <#assign Vocabulary = AssetVocabularyLocalService.searchVocabularies(themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), "Etiquetas del blog", -1, -1).getBaseModels()[0] /> 
20<#recover> 
21  <#assign Vocabulary = null /> 
22</#attempt> 
23 
24<#assign title = .vars['reserved-article-title'].data + " | Visit Navarra" /> 
25 
26 
27${themeDisplay.getLayout().setTitle(title)} 
28${themeDisplay.getLayout().setDescription(.vars['reserved-article-description'].data)} 
29${themeDisplay.getLayout().setKeywords(CamposSEO.getData(), themeDisplay.getLocale(), themeDisplay.getSiteDefaultLocale())} 
30<@liferay_util["html-top"]> 
31  <meta property="og:title" content="${title}" /> 
32  <meta property="og:description" content="${.vars['reserved-article-description'].data} " /> 
33  <meta property="og:updated_time" content="${.now?string("yyyy-MM-dd'T'HH:mm:ssZZZ")}" /> 
34  <meta property="og:type" content="website" /> 
35  <meta property="og:url" content="${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()}" /> 
36</@> 
37<#if FotoCabecera.getData()?has_content> 
38  <@liferay_util["html-top"]> 
39    <meta property="og:image" content="${themeDisplay.getPortalURL() + FotoCabecera.getData()}" /> 
40  </@>     
41</#if> 
42 
43<script> 
44	document.addEventListener('lazybeforeunveil', function(e) { 
45		var bg = e.target.getAttribute('data-bg'); 
46		if (bg) { 
47			// Reemplazar paréntesis antes de codificar la URL 
48			bg = bg.replace(/\(/g, '%28').replace(/\)/g, '%29'); 
49			var encodedBg = encodeURI(bg); 
50			e.target.style.backgroundImage = 'url(' + encodedBg + ')'; 
51
52	}); 
53	 
54</script> 
55	 
56<script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js" async=""></script> 
57 
58<section class="detail_blog"> 
59   
60  <#if FotoCabecera.getData()?has_content> 
61      <#assign imageUrl = "/o/adaptive-media/image/" + FotoCabecera.getAttribute("fileEntryId") + "/turismo-navarra-2600xauto/" + FotoCabecera.getAttribute("name") /> 
62	  <div class="image_background lazyload" data-bg="${imageUrl}" style="background:url('${imageUrl}');"></div> 
63  </#if> 
64   
65  <div class="content_blog container"> 
66    <p class="fecha"> 
67        <#assign fecha = .vars['reserved-article-display-date'].data?date("EEE',' dd MMM yyyy HH:mm:ss Z") /> 
68        <#if themeDisplay.getLanguageId() == "eu_ES"> 
69            ${fecha?string("yyyy.MM.dd")} 
70        <#else> 
71            ${fecha?string("dd MMM',' yyyy")?lower_case} 
72        </#if> 
73    </p> 
74    <h1 class="title_blog">${.vars['reserved-article-title'].data}</h1> 
75    <p style="margin: 1em 2em 0; font-weight: bold; font-size: 18px;">${Entradilla.getData()}</p> 
76    <div class="line_gray"></div> 
77    <div class="categorys_and_rrss"> 
78 
79      <ul class="list_categorys"> 
80        <#list AssetEntry.getCategories() as Category> 
81          <#if Vocabulary?? && Vocabulary.getVocabularyId() != Category.getVocabularyId()> 
82            <li><a href="${urlRedirect}/-/categories/${Category.getCategoryId()}?p_r_p_resetCur=true&p_r_p_categoryId=${Category.getCategoryId()}" target="_blank">${Category.getTitle(locale)}</a></li> 
83          </#if> 
84        </#list> 
85      </ul> 
86 
87      <#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
88      <ul class="rrss"> 
89          <li><a href="https://www.facebook.com/sharer/sharer.php?p[title]=${.vars['reserved-article-title'].data}&u=${currentUrl}" target="_blank"><i class="fab fa-facebook"></i><span class="sr-only">Facebook</span></a></li> 
90          <li><a href="http://twitter.com/share?text=${.vars['reserved-article-title'].data}&url=${currentUrl}" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><style>svg{fill:#000000}</style><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg><span class="sr-only">Twitter</span></a></li> 
91          <li><a href="mailto:?subject=${.vars['reserved-article-title'].data}&body=${currentUrl}" target="_blank"><i class="fas fa-envelope"></i><span class="sr-only">Correo electrónico</span></a></li> 
92          <li><a href="whatsapp://send?text=${currentUrl}" target="_blank"><i class="fab fa-whatsapp"></i><span class="sr-only">WhatsApp</span></a></li> 
93      </ul> 
94    </div> 
95 
96    <a class="button_blog_home" href="/blog-turismo-navarra"> 
97        <i class="fas fa-home"></i> 
98        <span>Blog</span> 
99    </a> 
100 
101    <div class="content_text"> 
102      <#if Articulo.Bloque.getSiblings()?has_content> 
103        <#list Articulo.Bloque.getSiblings() as Bloque> 
104          <#if Bloque.Titulo.getData()?has_content> 
105            <h2>${Bloque.Titulo.getData()}</h2> 
106          </#if> 
107		      <#if Bloque.Contenido?? && Bloque.Contenido.getSiblings()?has_content> 
108            <#list Bloque.Contenido.getSiblings() as Contenido> 
109              <#if Contenido.Texto.getData()?has_content> 
110                ${Contenido.Texto.getData()} 
111              </#if> 
112 
113              <#if Contenido.Multimedia.getSiblings()?size lte 2> 
114                  <#list Contenido.Multimedia.getSiblings() as Multimedia> 
115                    <#if Multimedia.Imagen.getData()?has_content> 
116 
117                      <#if Multimedia?is_first> 
118                        <div class="row"> 
119                      </#if> 
120                        <div class="col-12 <#if Contenido.Multimedia.getSiblings()?size == 1>col-md-12<#else>col-md-6</#if>"> 
121                            <#if Multimedia.UrlVideo.getData()?has_content> 
122                            <a class="video_blog" href="${Multimedia.UrlVideo.getData()}" target="_blank"> 
123                                <i class="far fa-play-circle video"></i> 
124                            </a> 
125                            </#if> 
126 
127                            <#attempt> 
128                                <#assign imageData = Multimedia.Imagen.getData()?split("/") /> 
129                                <#assign image = DLFileEntryLocalService.fetchFileEntryByFileName(imageData[2]?number, imageData[3]?number, imageData[4]?replace("+", " ")) /> 
130                                <#assign imageUrl = "/o/adaptive-media/image/" + image.getFileEntryId() + "/turismo-navarra-1000xauto/" + image.getTitle() /> 
131                                <img src="${imageUrl}" alt="${Multimedia.Accesibilidad.getData()}" loading="lazy"> 
132                            <#recover> 
133                                <img src="${Multimedia.Imagen.getData()}" alt="${Multimedia.Accesibilidad.getData()}" loading="lazy"> 
134                            </#attempt> 
135                        </div> 
136                      <#if Multimedia?is_last> 
137                        </div> 
138                      </#if> 
139                    </#if> 
140                  </#list> 
141              </#if> 
142            </#list> 
143          </#if> 
144        </#list> 
145      </#if> 
146    </div> 
147 
148    <#if CTA.UrlCTA.getData()?has_content && CTA.TextoCTA.getData()?has_content> 
149      <div class="link_global"> 
150        <a href="${CTA.UrlCTA.getData()}" <#if CTA.TargetCTA.getData()?has_content>target="${CTA.TargetCTA.getData()}"</#if> class="btn button-base red">${CTA.TextoCTA.getData()}</a> 
151      </div> 
152    </#if> 
153  </div> 
154</section> 
155 
156<#if Vocabulary??> 
157  <#assign tagColors = ["blue", "yellow", "green"] /> 
158  <#assign tagColorIndex = 0 /> 
159 
160  <section class="nube_tags_blog container">     
161    <div class="line_gray"></div> 
162    <h2 class="title">${Vocabulary.getDescription(locale)}</h2> 
163    <ul class="list_tags_blog"> 
164      <#list Vocabulary.getCategories() as Category> 
165        <li> 
166          <a class="type_tag ${tagColors[tagColorIndex]}"  
167             href="${urlRedirect}/-/categories/${Category.getCategoryId()}?p_r_p_resetCur=true&p_r_p_categoryId=${Category.getCategoryId()}"> 
168            ${Category.getTitle(locale)} 
169          </a> 
170        </li> 
171 
172        <#assign tagColorIndex += 1 /> 
173        <#if tagColorIndex == 3> 
174            <#assign tagColorIndex = 0 /> 
175        </#if> 
176      </#list> 
177    </ul> 
178  </section> 
179</#if> 
180 
181<#if checkLogos?exists> 
182    <#if getterUtil.getBoolean(checkLogos.getData())> 
183        <#if checkLogos.logo.getSiblings()?has_content> 
184            <ul class="list_logos_blog"> 
185                <#list checkLogos.logo.getSiblings() as curLogo> 
186                    <#if (curLogo.getData())?? && curLogo.getData() != ""> 
187                        <li class="item_logo"> 
188                            <img class="logo" alt="${curLogo.getAttribute("alt")}" data-fileentryid="${curLogo.getAttribute("fileEntryId")}" src="${curLogo.getData()}" /> 
189                        </li> 
190                    </#if> 
191                </#list> 
192            </ul> 
193        </#if> 
194    </#if> 
195</#if>