Actualidad
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> journalArticleLocalService.fetchLatestArticle(curEntry.getClassPK()) [in template "10136#10174#29238558" at line 84, column 36] ---- 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 article = journalArticleLocal... [in template "10136#10174#29238558" at line 84, column 17] ----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
2<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
3<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4
5
6
7
8<#assign groupFriendlyURL = themeDisplay.getScopeGroup().getFriendlyURL() />
9<#assign friendlyURL = themeDisplay.getScopeGroup().getPathFriendlyURL(false,themeDisplay) + groupFriendlyURL />
10<#assign actualURLFriendly = portalUtil.getHost(request) + friendlyURL />
11<#assign scopeGroupId = themeDisplay.getScopeGroupId() />
12
13<#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
14<#assign URLEncoder = staticUtil["java.net.URLEncoder"] />
15<#assign Normalizer = staticUtil["java.text.Normalizer"] />
16<#assign currentGroupSite = themeDisplay.getLayout().getGroup().getFriendlyURL() />
17<#if themeDisplay.getLayout().getPrivateLayout() == true >
18 <#assign state = themeDisplay.getPathFriendlyURLPrivateGroup()/>
19<#else>
20 <#assign state = themeDisplay.getPathFriendlyURLPublic()/>
21</#if>
22
23
24
25<#assign imagen = languageUtil.get(locale, "listado.noticia.imagen")>
26<#assign texto = languageUtil.get(locale, "listado.noticia.texto")>
27<#assign instanceId = themeDisplay.getPortletDisplay().getId()?replace("com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_", "")>
28<#assign originalInstanceId = themeDisplay.getPortletDisplay().getId()?replace("com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_", "")>
29<#assign currentPageUrl = PortalUtil.getLayoutURL(themeDisplay.getLayout(),themeDisplay)>
30<#assign currentLayoutFriendlyUrl = themeDisplay.getLayoutFriendlyURL(themeDisplay.getLayout())>
31
32<#-- custom fields
33<#assign expandos = themeDisplay.getScopeGroup().getExpandoBridge().getAttributes()>
34<#list expandos?keys as key>
35 ${key}
36</#list>
37-->
38
39
40<#-- site_news_asset_publisher_instance_id name of the custom field for the asset publisher instance id of the site -->
41<#assign site_news_asset_publisher_instance_id = layout.getGroup().getExpandoBridge().getAttribute("site_news_asset_publisher_instance_id")>
42<#-- by default the main site asset publisher id -->
43<#assign site_news_asset_publisher_instance_id_default = layout.getGroup().getExpandoBridge().getAttributeDefault("site_news_asset_publisher_instance_id")>
44<#-- site_news_url name of the custom field url of the news page of the site -->
45<#assign site_news_url = themeDisplay.getScopeGroup().getExpandoBridge().getAttribute("site_news_url")>
46<#-- by default the main site news page -->
47<#assign site_news_url_default = themeDisplay.getScopeGroup().getExpandoBridge().getAttributeDefault("site_news_url")>
48
49
50<#-- get site_news_url custom field value for the site -->
51<#list site_news_url?keys as key>
52 <#if key == locale>
53 <#assign site_news_url_value = site_news_url?values[key?index]>
54 </#if>
55</#list>
56
57<#-- get site_news_url custom field default value-->
58<#list site_news_url_default?keys as key>
59 <#if key == locale>
60 <#assign site_news_url_default_value = site_news_url_default?values[key?index]>
61 </#if>
62</#list>
63
64<#-- assign the url if the site has custom field. Use the default value otherwise-->
65<#if site_news_url_value??>
66<#else>
67 <#if site_news_url_default_value??>
68 <#assign site_news_url_value = site_news_url_default_value>
69 </#if>
70</#if>
71
72<#-- assign the instance id if the site has custom field. Use the default value otherwise-->
73<#if site_news_asset_publisher_instance_id??>
74<#else>
75 <#if site_news_asset_publisher_instance_id_default??>
76 <#assign site_news_asset_publisher_instance_id = site_news_asset_publisher_instance_id_default>
77 </#if>
78</#if>
79
80
81<section class="unav-news-list">
82 <#if entries?has_content>
83 <#list entries as curEntry>
84 <#assign article = journalArticleLocalService.fetchLatestArticle(curEntry.getClassPK()) />
85 <#assign assetRendererDate = curEntry.getAssetRenderer() />
86 <#assign contentFecha = assetRendererDate.getDisplayDate()?date />
87 <#assign contentFechaURLString = contentFecha?date?string["dd/MM/yyyy"] />
88 <#assign contentFechaString = contentFecha?date?string["dd | MM | yyyy"] />
89
90 <#assign aArticleXML = saxReaderUtil.read(article.getContentByLocale(locale)) />
91 <#assign tituloNoticia = aArticleXML.valueOf("//dynamic-element[@name='Titulo_noticia']/dynamic-content/text()") />
92 <#assign autorNombre = aArticleXML.valueOf("//dynamic-element[@name='Nombre_autor']/dynamic-content/text()") />
93 <#assign autorImagen = aArticleXML.valueOf("//dynamic-element[@name='Autor_imagen']/dynamic-content/text()") />
94 <#assign jsonObjectString = aArticleXML.valueOf("//dynamic-element[@name='Imagen']/dynamic-content/text()") />
95
96 <#assign video = aArticleXML.valueOf("//dynamic-element[@name='Video_youtube']/dynamic-content/text()") />
97
98 <#assign friendlyContentURL = assetPublisherHelper.getAssetViewURL(portalUtil.getLiferayPortletRequest(renderRequest), portalUtil.getLiferayPortletResponse(renderResponse), curEntry,true) />
99
100 <#assign tituloNoticiaEncoded = friendlyUrlDecode(tituloNoticia)>
101
102 <#-- Asset publisher instance id in main domain -->
103 <#assign mainDomainInstanceId = "lovPblW1fC70">
104 <#-- Urls generated always the same page for unav requirements-->
105 <#-- In main domain, go to main news page and use that asset publisher id. Causes issues with other domains -->
106 <#-- TODO: remove once custom fields are created-->
107 <#assign urlNews = languageUtil.get(locale, "url.news.details", "/noticias")>
108 <#assign instanceId = mainDomainInstanceId>
109
110 <#-- Configure url and asset publisher instance id with customFields-->
111 <#-- By default configured with main domain news page and asset publisher id. Other domains have to configure it manually in the site configuration -->
112 <#if site_news_url_value??>
113 <#assign urlNews = site_news_url_value>
114 </#if>
115 <#if site_news_asset_publisher_instance_id??>
116 <#assign instanceId = site_news_asset_publisher_instance_id>
117 </#if>
118
119 <#-- WORKAROUND FOR TEMPORAL SITES GO LIVE -->
120 <#-- lfr.cloud domain urls work differently, redirection to site news has to be adapted for it-->
121 <#if actualURLFriendly?contains("lfr.cloud")>
122 <#-- 1. Site with default news page. if using the default value, redirect to main site and use mainDomainInstanceId.-->
123 <#if site_news_url_default_value == site_news_url_value>
124 <#assign urlNews = site_news_url_value>
125 <#assign instanceId = mainDomainInstanceId>
126 <#else>
127 <#-- 2. Site with custom news page. if site site_news_url_value contains /web/site/, use site_news_url_value as is and use originalInstanceId to redirect within the site-->
128 <#if site_news_url_value?contains("/web"+groupFriendlyURL)>
129 <#assign urlNews = site_news_url_value>
130 <#assign instanceId = originalInstanceId>
131
132 <#-- 3. Site with custom domain and custom news page. if site site_news_url_value doesn't contain /web/site/ , prepend /web/site to it, to redirect within the site-->
133 <#else>
134 <#assign urlNews = "/web"+groupFriendlyURL + site_news_url_value>
135 <#assign instanceId = originalInstanceId>
136 </#if>
137 </#if>
138
139 </#if>
140
141 <#assign urlDetail = urlNews+"/-/contents/"+contentFechaURLString+"/"+tituloNoticiaEncoded+"/content/"+instanceId+"/"+curEntry.getEntryId()>
142
143<#assign foto = "" >
144 <a href="${urlDetail}" class="unav-news-list__item">
145 <#if jsonObjectString?? && jsonObjectString?has_content>
146 <#attempt>
147 <#assign jsonObject = jsonObjectString?eval>
148 <#assign entryUuid = jsonObject.uuid />
149 <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) />
150 <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) />
151 <#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) />
152 <#assign assetRenderer = assetEntry.assetRenderer />
153 <#assign foto = assetRenderer.getURLDownload(themeDisplay) />
154
155 <div class="unav-news-list__img" style="background-image: url('${foto});"> </div>
156 <#recover>
157
158 </#attempt>
159 </#if>
160 <#if video?has_content>
161 <#if foto == "">
162
163 <div class="unav-news-list__img" style="background-image:url(http://img.youtube.com/vi/${video}/0.jpg)">
164 </div>
165 </#if>
166 </#if>
167
168 <div class="unav-news-list__container-txt">
169 <p class="unav__text__date">${contentFechaString}</p>
170
171 <p class="unav__text unav__text--m">${tituloNoticia}</p>
172
173 <div class="unav-news-list__info">
174 <#if autorNombre?has_content>
175 <p class="unav-writing__info-txt"><span class="unav-writing__info-bold">${texto}</span>${autorNombre}</p>
176 </#if>
177 <#if autorImagen?has_content>
178 <p class="unav-writing__info-txt"><span class="unav-writing__info-bold">${imagen}</span>${autorImagen}</p>
179 </#if>
180 </div>
181 </div>
182 </a>
183 </#list>
184 </#if>
185
186
187</section>
188
189<script>
190 $(document).ready( function() {
191 // Avoid lost focus when paginate
192 if ($('.lfr-pagination-buttons')) {
193 var paginationButtons = $('.lfr-pagination-buttons').children();
194 for (const paginationButton of paginationButtons) {
195 var link = $(paginationButton).children();
196 if(link) {
197 $(link).click(function(e){
198 e.preventDefault();
199 var url = $(this).attr('href');
200 window.location.href = url + '#unav-news-list';
201 });
202 }
203 }
204 }
205 });
206</script>
207
208<#function friendlyUrlDecode title>
209
210 <#assign titleFriendly = title?replace("[^A-Za-z0-9À-ú ]", "", "r")?lower_case>
211 <#assign titleFriendly = titleFriendly?replace("á", "a", "r")>
212 <#assign titleFriendly = titleFriendly?replace("é", "e", "r")>
213 <#assign titleFriendly = titleFriendly?replace("í", "i", "r")>
214 <#assign titleFriendly = titleFriendly?replace("ó", "o", "r")>
215 <#assign titleFriendly = titleFriendly?replace("ú", "u", "r")>
216 <#assign titleFriendly = titleFriendly?replace("ñ", "n", "r")>
217 <#assign titleFriendly = URLEncoder.encode(titleFriendly)>
218 <#assign titleFriendly = titleFriendly?replace("\\+", "-","r")>
219 <#return titleFriendly>
220</#function>
—
5 Resultados por página