Novedades - MEN
Novedades
Boletines
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> saxReaderUtil.createXPath("dynamic-element[@name='Imagenes']/dynamic-content").selectSingleNode(rootES) [in template "48155#48801#NEWSLETTER" at line 57, column 35] ---- 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 imagen = saxReaderUtil.create... [in template "48155#48801#NEWSLETTER" in macro "printApartado" at line 57, column 17] - Reached through: @printApartado "", Noticias [in template "48155#48801#NEWSLETTER" at line 192, column 9] ----
1<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
2<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
3<#assign themeDisplay = serviceContext.getThemeDisplay() />
4
5<#assign apartado = "" />
6<#macro printApartado apartado contenidos>
7
8 <#if contenidos.getSiblings()?has_content>
9
10 <#assign imgTitulo = "" />
11 <#assign imgSeparador = "https://turismoprofesional.navarra.es/documents/8257989/22745023/linea-black.jpg" />
12 <#assign bgColor = "#ffffff" />
13 <#assign txtColor = "#000000" />
14
15 <#list contenidos.getSiblings() as curContenido>
16 <#assign jsonArticle = jsonFactoryUtil.createJSONObject(curContenido.Noticias_Contenido.getData()) />
17 <#assign botonTextoES = curContenido.Noticias_Boton.Noticias_Boton_TextoES.getData() />
18 <#assign botonTextoEU = curContenido.Noticias_Boton.Noticias_Boton_TextoEU.getData() />
19 <#assign botonUrlES = curContenido.Noticias_Boton.Noticias_Boton_UrlES.getData() />
20 <#assign botonUrlEU = curContenido.Noticias_Boton.Noticias_Boton_UrlEU.getData() />
21 <#assign botonColor = curContenido.Noticias_Boton.Noticias_Boton_Color.getData() />
22
23 <#if jsonArticle != "{}">
24 <#if curContenido?is_first && imgTitulo?has_content>
25 <tr>
26 <td colspan="2" bgcolor="${bgColor}" style="background-color: ${bgColor}; padding: 0;">
27 <img src="${imgTitulo}" alt="${apartado}" style="width: 650px; max-width: 100%;">
28 </td>
29 </tr>
30 <#elseif !curContenido?is_first>
31 <tr>
32 <td colspan="2" bgcolor="${bgColor}" style="padding: 0;">
33 <img src="${imgSeparador}" alt="" style="width: 650px; max-width: 100%;">
34 </td>
35 </tr>
36 </#if>
37
38 <#assign resourcePrimKey = jsonArticle.classPK?number />
39 <#assign curArticle = JournalArticleLocalService.fetchLatestArticle(resourcePrimKey) />
40 <#if themeDisplay.getPortalURL()?contains("www.navarra.es")>
41 <#assign viewURL = themeDisplay.getPortalURL() + "/es/web/museo-etnologico-de-navarra/-/" + curArticle.getUrlTitle() />
42 <#assign viewURLEU = themeDisplay.getPortalURL() + "/eu/web/museo-etnologico-de-navarra/-/" + curArticle.getUrlTitle() />
43 <#else>
44 <#assign viewURL = themeDisplay.getPortalURL() + "/es/-/" + curArticle.getUrlTitle() />
45 <#assign viewURLEU = themeDisplay.getPortalURL() + "/eu/-/" + curArticle.getUrlTitle() />
46 </#if>
47
48 <#assign rootES = saxReaderUtil.read(curArticle.getContentByLocale("es_ES")).getRootElement() />
49 <#assign rootEU = saxReaderUtil.read(curArticle.getContentByLocale("eu_ES")).getRootElement() />
50
51 <#assign tituloES = curArticle.getTitle("es_ES") />
52 <#assign tituloEU = curArticle.getTitle("eu_ES") />
53
54 <#assign entradillaES = saxReaderUtil.createXPath("dynamic-element[@name='Entradilla']").selectSingleNode(rootES).getStringValue()?trim />
55 <#assign entradillaEU = saxReaderUtil.createXPath("dynamic-element[@name='Entradilla']").selectSingleNode(rootEU).getStringValue()?trim />
56
57 <#assign imagen = saxReaderUtil.createXPath("dynamic-element[@name='Imagenes']/dynamic-content").selectSingleNode(rootES).getStringValue()?trim />
58 <#if imagen?has_content>
59 <#assign imagenJson = jsonFactoryUtil.createJSONObject(imagen) />
60 <#assign imagenURL = "https://www.navarra.es/documents/" + imagenJson.groupId + "/" + imagenJson.uuid />
61
62 <#if !imgTitulo?has_content && curContenido?is_first>
63 <tr>
64 <td colspan="2">
65 <img src="${imagenURL}" width="650">
66 </td>
67 </tr>
68 <#else>
69 <tr>
70 <td colspan="2" bgcolor="${bgColor}" style="background-color: ${bgColor}; padding: 0 20px 0 20px;">
71 <img src="${imagenURL}" width="610">
72 </td>
73 </tr>
74 </#if>
75 </#if>
76
77 <tr>
78 <td colspan="1" bgcolor="${bgColor}" style="width: 50%; padding: 30px 20px 30px 20px; vertical-align: initial;">
79 <a href="${viewURL}" style="text-decoration: none;">
80 <p style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 24px; font-weight: 600; margin: 0 0 20px 0;">
81 ${tituloES}
82 </p>
83 <#if entradillaES?has_content>
84 <p style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 16px; margin: 20px 0 30px 0;">
85 ${entradillaES}
86 </p>
87 </#if>
88 </a>
89 <@printBoton botonTextoES botonUrlES botonColor bgColor txtColor />
90 </td>
91 <td colspan="1" bgcolor="${bgColor}" style="width: 50%; padding: 30px 20px 30px 20px; vertical-align: initial;">
92 <a href="${viewURLEU}" style="text-decoration: none;">
93 <p style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 24px; font-weight: 600; margin: 0 0 20px 0;">
94 ${tituloEU}
95 </p>
96 <#if entradillaEU?has_content>
97 <p style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 16px; margin: 20px 0 30px 0;">
98 ${entradillaEU}
99 </p>
100 </#if>
101 </a>
102 <@printBoton botonTextoEU botonUrlEU botonColor bgColor txtColor />
103 </td>
104 </tr>
105
106 <#if curContenido?is_last>
107 <tr>
108 <td colspan="2" bgcolor="#ffffff" style="height: 30px; background-color: #ffffff;"></td>
109 </tr>
110 </#if>
111 </#if>
112 </#list>
113 </#if>
114</#macro>
115
116<#macro printBoton botonTexto botonUrl botonColor bgColor txtColor>
117 <#if botonTexto?has_content && botonUrl?has_content && botonColor?has_content>
118 <#if botonColor == "white">
119 <div colspan="1" bgcolor="#ffffff" style="text-align: center; padding: 0.5em 1em; vertical-align: initial; background-color:#ffffff; border-radius: 25px;">
120 <a href="${botonUrl}" title="${botonTexto}" bgcolor="#ffffff" style="font-family: 'Bould', Arial, sans-serif; background-color: #ffffff; color: #000000; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em;">
121 ${botonTexto}
122 </a>
123 </div>
124 <#elseif botonColor == "green">
125 <div colspan="1" bgcolor="#2a905f" style="text-align: center; vertical-align: initial; background-color:#2a905f; border:10px solid #2a905f">
126 <a href="${botonUrl}" title="${botonTexto}" bgcolor="#000000" style="font-family: 'Bould', Arial, sans-serif; background: #2a905f; color: #ffffff; font-size: 16px; font-weight: 600; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em; ">
127 ${botonTexto}
128 </a>
129 </div>
130 <#elseif botonColor == "black">
131 <div colspan="1" bgcolor="#000000" style="text-align: center; vertical-align: initial; background-color:#000000; border:10px solid #000000">
132 <a href="${botonUrl}" title="${botonTexto}" bgcolor="#000000" style="font-family: 'Bould', Arial, sans-serif; background: #000000; color: #ffffff; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em; ">
133 ${botonTexto}
134 </a>
135 </div>
136 <#elseif botonColor == "gray">
137 <div colspan="1" bgcolor="#eeeeee" style="text-align: center; padding: 0.5em 1em; vertical-align: initial; background-color:#eeeeee; border-radius: 25px;">
138 <a href="${botonUrl}" title="${botonTexto}" bgcolor="#eeeeee" style="font-family: 'Bould', Arial, sans-serif; background-color: #eeeeee; color: #000000; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em;">
139 ${botonTexto}
140 </a>
141 </div>
142 <#elseif botonColor == "transparent">
143 <div colspan="1" bgcolor="${bgColor}" style="text-align: center; padding: 0.5em 1em; vertical-align: initial; background-color:${bgColor}; border: 2px solid ${txtColor}; border-radius: 25px;">
144 <a href="${botonUrl}" title="${botonTexto}" bgcolor="${bgColor}" style="font-family: 'Bould', Arial, sans-serif; background-color: ${bgColor}; color: ${txtColor}; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em;">
145 ${botonTexto}
146 </a>
147 </div>
148 <#elseif botonColor == "none">
149 <a href="${botonUrl}" title="${botonTexto}" style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none;">
150 » ${botonTexto}
151 </a>
152 </#if>
153 </#if>
154</#macro>
155
156
157<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
158<html xmlns="http://www.w3.org/1999/xhtml">
159 <head>
160 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
161 <title>Newsletter Turismo Profesional</title>
162 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
163 </head>
164</html>
165
166<body style="margin: 0; padding: 0;" >
167 <table border="0" cellpadding="0" cellspacing="0" width="650" style="border-collapse: collapse; margin: 0 auto;" >
168 <tr>
169 <td colspan="2">
170 <small style="display: block; text-align: center; font-family: 'Bould', Arial, sans-serif; font-size: 0.7em; color: #aaa; padding: 0em 0em 1em 0em">Si no puede ver bien este boletín haga click <a href="https://museoetnologico.navarra.es/es/ultimo-boletin" title="Último boletín del Museo Etnológico">aquí</a></small>
171 <h1 style="margin: 0;">
172 <a href="https://museoetnologico.navarra.es/es/" title="Museo Etnológico de Navarra">
173 <img width="650" src="https://www.navarra.es/documents/20361361/39455346/Newsletter_Banner.png/fc8a5cb7-12c9-1fcf-20f5-8190e0df8041?t=1725516882948" alt="Museo Etnológico de Navarra | Nafarroako museo etnologikoa" style="width: 650px; max-width: 100%;">
174 </a>
175 </h1>
176 </td>
177 </tr>
178
179 <tr>
180 <td colspan="1" bgcolor="#000000" style="background-color: #A5A7AA; padding: 10px 20px 5px 20px;">
181 <p style="font-family: 'Bould', Arial, sans-serif; color: #ffffff; font-size: 16px; font-weight: 600; text-align: left; margin: 0em 0em 0.5em 0em;">
182 ${Cabecera.Fecha.getData()?date("yyyy-MM-dd")?string("dd/MM/yyyy")}
183 </p>
184 </td>
185 <td colspan="1" bgcolor="#000000" style="background-color: #A5A7AA; padding: 10px 20px 5px 20px;">
186 <p style="font-family: 'Bould', Arial, sans-serif; color: #ffffff; font-size: 16px; font-weight: 600; text-align: right; margin: 0em 0em 0.5em 0em;">
187 ${Cabecera.Fecha.getData()?date("yyyy-MM-dd")?string("yyyy/MM/dd")}
188 </p>
189 </td>
190 </tr>
191
192 <@printApartado "" Noticias />
193
194 <#if Pie.Banner.getSiblings()?has_content>
195 <#list Pie.Banner.getSiblings() as banner>
196 <#if banner.Pie_Banner_Imagen.getData()?has_content && banner.Pie_Banner_Url.getData()?has_content>
197 <#if !banner?is_first>
198 <tr>
199 <td colspan="2" bgcolor="#ffffff" style="height: 30px; background-color: #ffffff;"></td>
200 </tr>
201 </#if>
202
203 <tr>
204 <td colspan="2">
205 <a href="${banner.Pie_Banner_Url.getData()}" title="${banner.Pie_Banner_Imagen.getAttribute('alt')}">
206 <img width="650" src="https://www.navarra.es${banner.Pie_Banner_Imagen.getData()}" alt="" style="width: 650px; max-width: 100%;">
207 </a>
208 </td>
209 </tr>
210
211 <#if banner?is_last>
212 <tr>
213 <td colspan="2" bgcolor="#ffffff" style="height: 30px; background-color: #ffffff;"></td>
214 </tr>
215 </#if>
216 </#if>
217 </#list>
218 </#if>
219 </table>
220</body>