Notes de Premsa
The following has evaluated to null or missing: ==> enlaces [in template "20101#20128#ADIF-NOTA-PRENSA-TEMPLATE" at line 271, column 14] ---- 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: #if enlaces.getSiblings()?has_content [in template "20101#20128#ADIF-NOTA-PRENSA-TEMPLATE" at line 271, column 9] ----
1<#assign currentURL = portalUtil.getCurrentCompleteURL(request)/>
2<#assign plMode = httpUtil.getParameter(currentURL, "p_l_mode", false)/>
3<#assign articleId = .vars['reserved-article-id'].data />
4<#assign journalResourceService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")/>
5<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService")/>
6<#assign classPK = journalResourceService.getArticleResourcePrimKey(groupId, articleId) />
7<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>
8<#assign statuses = [0,2,3,1,7,4,8,5,6]/>
9<#if plMode == "preview" && permissionChecker.isSignedIn()>
10 <#assign actualJournalArticle = journalArticleService.fetchLatestArticle(classPK,statuses)>
11<#else>
12 <#assign actualJournalArticle = journalArticleService.fetchArticle(groupId,articleId)>
13</#if>
14
15<#assign uuid = actualJournalArticle.getUuid()>
16<#assign pdfDownloadServletUrl = (themeDisplay.getColorScheme().getColorSchemeId()=="02")?then("/o/pdf/prensa-av?pdf=","/o/pdf/prensa?pdf=")+uuid>
17
18
19<!-- If Preview -->
20<#if plMode == "preview" && permissionChecker.isSignedIn()>
21 <#assign articlePreview = journalArticleService.getLatestArticle(classPK, -1, false) />
22 <#if articlePreview.getStatus() != 0 && articlePreview.getVersion() != 1.0>
23 <#assign classPK = articlePreview.getId() />
24 </#if>
25</#if>
26
27<#assign categorias = assetCategoryService.getCategories("com.liferay.journal.model.JournalArticle", classPK) />
28
29<#assign notasPrensaFriendlyUrl = (themeDisplay.getColorScheme().getColorSchemeId()=="02")?then("/comunicacion-y-prensa/notas-prensa","/comunicacion-prensa/notas-prensa")>
30
31<#assign nologos = (ocultarIconosPredefinidos?? && getterUtil.getBoolean(ocultarIconosPredefinidos.getData())) &&
32 !(IconoPersonalizado?? && IconoPersonalizado.getSiblings()?has_content && (IconoPersonalizado.getSiblings()?size gt 0) && (IconoPersonalizado.getSiblings()[0]??) && (IconoPersonalizado.getSiblings()[0].getData()!="")) >
33
34<div class="nota-prensa-detalle <#if nologos>no-logos</#if>">
35 <!-- LOGOS -->
36 <div class="logos-prensa">
37 <#assign numPersUsados = 0>
38 <#if SelectorIconosPredefinidos.getSiblings()?has_content && !(ocultarIconosPredefinidos?? && getterUtil.getBoolean(ocultarIconosPredefinidos.getData()))>
39 <div class="logos-prensa-oficial">
40 <#assign listPred = SelectorIconosPredefinidos.getSiblings()?size
41 existePers = (IconoPersonalizado??) && (IconoPersonalizado.getSiblings()?has_content)>
42 <#assign numPersUsados = 0>
43 <div role="img" alt="<@liferay.language key='es.adif.header.ministerio' />" class="iconflag Ministerio"></div>
44 <#switch listPred>
45 <#case 1>
46 <#assign necesito3 = true>
47 <#assign offsetUSado = 0>
48 <#if (SelectorIconosPredefinidos.getSiblings()[0]??) && (SelectorIconosPredefinidos.getSiblings()[0].getData()!="")>
49 <#if existePers && (IconoPersonalizado.getSiblings()[0]??) && (IconoPersonalizado.getSiblings()[0].getData()!="")>
50 <#assign dataPers = IconoPersonalizado.getSiblings()[0]>
51 <img alt="${dataPers.getAttribute("alt")}" data-fileentryid="${dataPers.getAttribute("fileEntryId")}" src="${dataPers.getData()}" />
52 <#assign offsetUSado = 1>
53 <#assign numPersUsados = 1>
54 </#if>
55 <div role="img" alt="Logo ${parseIconData(SelectorIconosPredefinidos.getSiblings()[0].getData())}" class="iconflag ${parseIconData(SelectorIconosPredefinidos.getSiblings()[0].getData())}"></div>
56 <#assign necesito3 = false>
57 </#if>
58 <#if existePers && (IconoPersonalizado.getSiblings()[0+offsetUSado]??) && (IconoPersonalizado.getSiblings()[0+offsetUSado].getData()!="")>
59 <#assign dataPers = IconoPersonalizado.getSiblings()[0+offsetUSado]>
60 <img alt="${dataPers.getAttribute("alt")}" data-fileentryid="${dataPers.getAttribute("fileEntryId")}" src="${dataPers.getData()}" />
61 <#assign numPersUsados = 1+offsetUSado>
62 <#if (necesito3) && (IconoPersonalizado.getSiblings()[1]??) && (IconoPersonalizado.getSiblings()[1].getData()!="")>
63 <#assign dataPers = IconoPersonalizado.getSiblings()[1]>
64 <img alt="${dataPers.getAttribute("alt")}" data-fileentryid="${dataPers.getAttribute("fileEntryId")}" src="${dataPers.getData()}" />
65 <#assign numPersUsados = 2>
66 <#if (IconoPersonalizado.getSiblings()[2]??) && (IconoPersonalizado.getSiblings()[2].getData()!="")>
67 <#assign dataPers = IconoPersonalizado.getSiblings()[2]>
68 <img alt="${dataPers.getAttribute("alt")}" data-fileentryid="${dataPers.getAttribute("fileEntryId")}" src="${dataPers.getData()}" />
69 <#assign numPersUsados = 3>
70 </#if>
71 </#if>
72 </#if>
73 <#break>
74 <#case 2>
75 <div role="img" alt="Logo ${parseIconData(SelectorIconosPredefinidos.getSiblings()[0].getData())}" class="iconflag ${parseIconData(SelectorIconosPredefinidos.getSiblings()[0].getData())}"></div>
76 <div class="iconflag ${parseIconData(SelectorIconosPredefinidos.getSiblings()[1].getData())}"></div>
77 <#if existePers && (IconoPersonalizado.getSiblings()[0]??) && (IconoPersonalizado.getSiblings()[0].getData()!="")>
78 <#assign dataPers = IconoPersonalizado.getSiblings()[0]>
79 <img alt="${dataPers.getAttribute("alt")}" data-fileentryid="${dataPers.getAttribute("fileEntryId")}" src="${dataPers.getData()}" />
80 <#assign numPersUsados = 1>
81 </#if>
82 <#break>
83 <#default>
84 <div role="img" alt="Logo ${parseIconData(SelectorIconosPredefinidos.getSiblings()[0].getData())}" class="iconflag ${parseIconData(SelectorIconosPredefinidos.getSiblings()[0].getData())}"></div>
85 <div role="img" alt="Logo ${parseIconData(SelectorIconosPredefinidos.getSiblings()[1].getData())}" class="iconflag ${parseIconData(SelectorIconosPredefinidos.getSiblings()[1].getData())}"></div>
86 <div role="img" alt="Logo ${parseIconData(SelectorIconosPredefinidos.getSiblings()[2].getData())}" class="iconflag ${parseIconData(SelectorIconosPredefinidos.getSiblings()[2].getData())}"></div>
87 </#switch>
88 <div role="img" alt="<@liferay.language key='es.adif.header.adif' />" class="iconflag ${getSiteIcon()}"></div>
89
90 </div>
91 <div class="logos-prensa-no_oficial">
92 <#else>
93 <div class="logos-prensa-oficial">
94 </#if>
95 <#if IconoPersonalizado??>
96 <#if IconoPersonalizado.getSiblings()?has_content>
97 <#assign listPers = IconoPersonalizado.getSiblings()?size>
98 <#if listPers gt numPersUsados>
99 <#list IconoPersonalizado.getSiblings() as cur_IconoPersonalizado>
100 <#if (cur_IconoPersonalizado?index + 1 > numPersUsados) && (cur_IconoPersonalizado.getData()??) && (cur_IconoPersonalizado.getData() != "")>
101 <#if (cur_IconoPersonalizado?index - numPersUsados) != 0 && ((cur_IconoPersonalizado?index - numPersUsados) % 5) == 0 >
102 </div>
103 <div class="logos-prensa-no_oficial">
104 </#if>
105 <img alt="${cur_IconoPersonalizado.getAttribute("alt")}" data-fileentryid="${cur_IconoPersonalizado.getAttribute("fileEntryId")}" src="${cur_IconoPersonalizado.getData()}" />
106 </#if>
107 </#list>
108 </#if>
109 </#if>
110 </#if>
111 </div>
112</div>
113
114
115
116<div class="rs-content-template press-release">
117 <!-- HEADER -->
118 <header class="rs-content-template__header">
119 <#if Entradilla.getData()?? && Entradilla.getData() != "">
120 <div class="rs-content-template__header__entrance">
121 ${Entradilla.getData()}
122 </div>
123 </#if>
124 <@adif.header title=titulo.getData()/>
125 <#if subtitulo.getData()?? && subtitulo.getData() != "">
126 <h2>${subtitulo.getData()}</h2>
127 </#if>
128 <div class="rs-content-template__header__underlined-date">
129 <#assign dateFormat = "dd/MM/yyyy" />
130 <#assign displaydate = .vars['reserved-article-display-date'].data>
131 <#assign originalLocale = .locale>
132 <#setting locale = localeUtil.getDefault()>
133 <#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
134 <#assign fechaFormateada = displaydate?string["dd MMMM yyyy"] >
135 <p>${fechaFormateada}</p>
136 </div>
137 </header>
138
139 <!-- ETIQUETAS -->
140 <#if categorias?has_content>
141 <ul class="rs-content-template__tags">
142 <#assign categoriasOrd= []>
143 <#assign listNumber= 0>
144 <#list categorias as category>
145 <#switch category.getVocabularyId()>
146 <#case 333398>
147 <#-- Set listNumber to 0, in order to hide categories from voc 333398 (Comunidades) -->
148 <#assign listNumber= 0>
149 <#break>
150 <#case 939037>
151 <#assign listNumber= 2>
152 <#break>
153 <#case 939036>
154 <#assign listNumber= 3>
155 <#break>
156 <#case 595001>
157 <#assign listNumber= 4>
158 <#break>
159 <#default>
160 <#assign listNumber= 0>
161 </#switch>
162 <#if listNumber gt 0 >
163 <#assign categoriasOrd = categoriasOrd + [{"list": listNumber, "name": category.getName(), "cId":category.getCategoryId()}]>
164 </#if>
165 </#list>
166 <#list categoriasOrd?sort_by("list") as i>
167 <li class="rs-content-template__tags__tag adif-link-accessible-wrapper">
168 <a href="${notasPrensaFriendlyUrl}?buscador-prensa-categorias=${i.cId}">
169 <span class="sr-only"><@liferay.language key='es.adif.prensa.tipo-categoria' /></span> ${i.name}</a>
170 </li>
171 </#list>
172 </ul>
173 </#if>
174
175 <!-- CUERPO (TEXTO E IMAGEN) -->
176 <div class="rs-content-template__paragraphs">
177 <div class="rs-content-template__paragraphs__paragraph">
178 <#assign overflowHiddenStyle = "" />
179 <#if imagen.getData()?? && imagen.getData() != "">
180 <#assign overflowHiddenStyle = "rs-content-template__paragraphs__paragraph__description--overflow-hidden" />
181 <img class="rs-content-template__paragraphs__paragraph__img rs-content-template__paragraphs__paragraph__img--left" alt="${imagen.getAttribute('alt')}" data-fileentryid="${imagen.getAttribute("fileEntryId")}" src="${imagen.getData()}" />
182 </#if>
183 <div role="paragraph" class="rs-content-template__paragraphs__paragraph__description ${overflowHiddenStyle}">
184 ${cuerpo.getData()}
185 </div>
186 </div>
187 </div>
188
189 <!-- ADIF SHARE -->
190
191 <#assign
192 currentURL = portalUtil.getCurrentURL(request)
193 titulo = htmlUtil.escapeURL(titulo.getData())
194 currentUrl = currentURL
195 textoCola = " a través de @Adif_es"
196 urlTwitter = "https://twitter.com/intent/tweet?text="
197 facebookURL = 'https://www.facebook.com/sharer/sharer.php?u='
198 serverName = request.getServerName()
199 url = "https://"+serverName
200 url=url+currentUrl
201 urlFinalTwitter=urlTwitter+titulo+' '+url+textoCola
202 urlFinalFacebook=facebookURL+url+'&scrape=true'
203 />
204
205 <div class="rs-content-template__share">
206 <div class="rs-content-template__share__item">
207 <p>
208 <span role="heading" aria-level="3" class="rs-content-template__share__item__label">
209 <@liferay.language key='es.adif.prensa.compartir-en' />
210 </span>
211 </p>
212 <ul class="rs-content-template__share__item__icons">
213 <li><a class="icono-twitter adif-icon ai-twitter c-dark-aquamarine" id="twitter-nota-prensa" href="${urlFinalTwitter}" target="_blank"><span class="sr-only"><@liferay.language key='es.adif.prensa.compartir-nota-twitter' /></span></a></li>
214 <li><a class="icono-facebook adif-icon ai-facebook c-dark-aquamarine" id="facebook-nota-prensa" href="${urlFinalFacebook}" target="_blank"><span class="sr-only"><@liferay.language key='es.adif.prensa.compartir-nota-facebook' /></span></a></li>
215 </ul>
216
217 </div>
218 <div class="rs-content-template__share__item">
219 <p>
220 <span role="heading" aria-level="3" class="rs-content-template__share__item__label">
221 <@liferay.language key='es.adif.prensa.descargar' />
222 </span>
223 </p>
224 <a
225 href="${pdfDownloadServletUrl}"
226 target="_blank"
227 class="download-file-link"
228 id="download-nota-prensa">
229 <span class="sr-only"><@liferay.language key='es.adif.prensa.descargar-nota-prensa' /></span>
230 </a>
231 </div>
232 </div>
233
234 <!-- SLIDER IMAGENES Y VIDEOS -->
235 <#assign haySlider = 'false'/>
236 <#if (images?? && images.getData()!= "") || (videos?? && videos.getData()!= "")>
237 <div class="rs-content-template__slider press_release_slider">
238 <#if images.getSiblings()?has_content>
239 <#list images.getSiblings() as cur_images>
240 <#if cur_images.getData()?? && cur_images.getData() != ''>
241 <#assign haySlider = 'true'/>
242 <div>
243 <div class="rs-content-template__slider__slide-img" data-descarga="${cur_images.getData()}" style="background-image:url('${cur_images.getData()}');">
244 <img src="${cur_images.getData()}" />
245 </div>
246 </div>
247 </#if>
248
249 </#list>
250 </#if>
251 <#if videos.getSiblings()?has_content>
252 <#list videos.getSiblings() as cur_videos>
253 <#if cur_videos.getData()?? && cur_videos.getData() != ''>
254 <#assign haySlider = 'true'/>
255 <div class="rs-content-template__slider__slide-video" data-descarga="${cur_videos.getData()}" >
256 <video loop controls>
257 <source src="${cur_videos.getData()}" type="video/mp4">
258 <source src="${cur_videos.getData()}" type="video/ogg">
259 <@liferay.language key="es.adif.browser.does.not.support.video.tag"/>
260 </video>
261 </div>
262 </#if>
263 </#list>
264 </#if>
265 </div>
266 </#if>
267 <input id="haySlider" type="hidden" value="${haySlider}"/>
268
269 <!-- DOCUMENTOS-->
270 <#assign hayEnlaces = 'false' />
271 <#if enlaces.getSiblings()?has_content>
272 <#list enlaces.getSiblings() as enlace>
273 <#if enlace?? && enlace.getData()!= "">
274 <#assign hayEnlaces = 'true'/>
275 </#if>
276 </#list>
277 </#if>
278 <#assign hayDocumentos = 'false' />
279 <#if (docs?? && docs.getData()!= "") || (images?? && images.getData()!= "") || (videos?? && videos.getData()!= "") >
280 <#assign hayDocumentos = 'true'>
281 </#if>
282 <div class="rs-content-template__related<#if hayEnlaces=='true' && hayDocumentos='true'> rs-2column<#else> rs-1column</#if>">
283 <#if (docs?? && docs.getData()!= "") || (images?? && images.getData()!= "") || (videos?? && videos.getData()!= "") >
284 <div>
285 <div class="rs-content-template__related__header">
286 <div class="rs-content-template__related__header__icon adif-icon ai-cloud-download c-navy"></div>
287 <span role="heading" aria-level="3"><@liferay.language key='es.adif.related.document' /></span>
288 </div>
289 <ul class="list-of-links">
290 <#if images.getSiblings()?has_content>
291 <#list images.getSiblings() as cur_images>
292 <#if cur_images?? && cur_images.getData()!= "">
293 <li>
294 <div class="adif-link-accessible-wrapper">
295 <#if cur_images.labelImagen?? && cur_images.labelImagen.getData()!= "">
296 <@adif.docSize doc=cur_images.getData() locale=locale label=cur_images.labelImagen.getData()/>
297 <#else>
298 <@adif.docSize doc=cur_images.getData() locale=locale/>
299 </#if>
300 </div>
301 </li>
302 </#if>
303 </#list>
304 </#if>
305 <#if videos.getSiblings()?has_content>
306 <#list videos.getSiblings() as cur_videos>
307 <#if cur_videos?? && cur_videos.getData()!= "">
308 <li>
309 <div class="adif-link-accessible-wrapper">
310 <#if cur_videos.labelVideo?? && cur_videos.labelVideo.getData()!= "">
311 <@adif.docSize doc=cur_videos.getData() locale=locale label=cur_videos.labelVideo.getData()/>
312 <#else>
313 <@adif.docSize doc=cur_videos.getData() locale=locale/>
314 </#if>
315 </div>
316 </li>
317 </#if>
318 </#list>
319 </#if>
320 <#if docs.getSiblings()?has_content>
321 <#list docs.getSiblings() as cur_docs>
322 <#if cur_docs?? && cur_docs.getData()!= "">
323 <li>
324 <div class="adif-link-accessible-wrapper">
325 <#if cur_docs.labelDocumento?? && cur_docs.labelDocumento.getData()!= "">
326 <@adif.docSize doc=cur_docs.getData() locale=locale label=cur_docs.labelDocumento.getData()/>
327 <#else>
328 <@adif.docSize doc=cur_docs.getData() locale=locale/>
329 </#if>
330 </div>
331 </li>
332 </#if>
333 </#list>
334 </#if>
335 </ul>
336
337 </div>
338 </#if>
339
340 <!-- TAMBIEN TE PUEDE INTERESAR -->
341 <#if enlaces.getSiblings()?has_content>
342 <div>
343 <#assign elementoVacio = 'false' />
344 <#list enlaces.getSiblings() as cur_enlaces>
345 <#if cur_enlaces?? && cur_enlaces.getData()!= "">
346 <#assign elementoVacio = 'true'/>
347 </#if>
348 </#list>
349 <#if elementoVacio == 'true'>
350 <div class="rs-content-template__related__header">
351 <div class="rs-content-template__related__header__icon adif-icon ai-links c-navy"></div>
352 <span role="heading" aria-level="3"><@liferay.language key='es.adif.also.like' /></span>
353 </div>
354
355 <ul class="list-of-links">
356 <#list enlaces.getSiblings() as cur_enlaces>
357 <li>
358 <a href="${cur_enlaces.getData()}" target="_blank">
359 <#if cur_enlaces.textoEnlace?? && cur_enlaces.textoEnlace.getData()?has_content>
360 ${cur_enlaces.textoEnlace.getData()}
361 <#else>
362 ${cur_enlaces.getData()}
363 </#if>
364 </a>
365 </li>
366 </#list>
367 </ul>
368 </#if>
369 </div>
370 </#if>
371 </div>
372</div>
373
374<!-- SÓLO PARA PDF -->
375<div style="display:none">
376 ${TipoDeNotaDePrensa.getData()}
377</div>
378
379<!-- PIÉ DE PÁGINA -->
380<div style="display:none">
381 ${PieDePagina.getData()}
382</div>
383
384<script>
385 $(document).ready(function () {
386 $('.press_release_slider').slick({
387 dots: false,
388 infinite: true,
389 speed: 500,
390 fade: true,
391 arrows: true,
392 cssEase: 'linear'
393 });
394 });
395</script>
396
397
398<#function parseIconData iconData >
399 <#assign parsedIconData = iconData />
400
401 <#if iconData == "AdifAV" >
402 <#assign parsedIconData = getAltSiteIcon() />
403 </#if>
404
405 <#return parsedIconData>
406</#function>
407
408<#function getAltSiteIcon >
409 <#assign altSiteIcon = "AdifAV" />
410
411 <#if groupId == 34745 >
412 <#assign altSiteIcon = "Adif" />
413 </#if>
414
415 <#return altSiteIcon>
416</#function>
417
418<#function getSiteIcon >
419 <#assign siteIcon = "Adif" />
420
421 <#if groupId == 34745 >
422 <#assign siteIcon = "AdifAV" />
423 </#if>
424
425 <#return siteIcon>
426</#function>
27 de novembre 2025
Nota de prensa
25 de novembre 2025
23 d’octubre 2025
09 de juliol 2025
16 de juny 2025
09 de maig 2025
24 de setembre 2021
14 de febrer 2025