Noticias
SALUD Y CIENCIA
Se ha producido un error al procesar la plantilla.
The string doesn't match the expected date/time/date-time format. The string to parse was: "". The expected format was: "yyyy-MM-dd".
The nested reason given follows:
Unparseable date: ""
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign dateToUse = aArticleXML.value... [in template "10136#10174#153676729" at line 102, column 33]
----
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
87 <#assign contentFecha = article.getDisplayDate()>
88 <#if contentFecha??>
89 <#assign contentFechaURLString = contentFecha?string["dd/MM/yyyy"] />
90 <#assign contentFechaString = contentFecha?string["dd | MM | yyyy"] />
91<#else>
92 <#assign contentFechaURLString = "00/00/0000">
93 <#assign contentFechaString = "00 | 00 | 0000">
94</#if>
95
96 <#assign contentFechaURLString = contentFecha?date?string["dd/MM/yyyy"] />
97 <#assign contentFechaString = contentFecha?date?string["dd | MM | yyyy"] />
98 <#assign journalArticleStructure = article.getDDMStructure().getName(locale)/>
99 <#assign dateToUse = article.getDisplayDate()/>
100 <#if journalArticleStructure = "7_Noticia">
101 <#assign aArticleXML = saxReaderUtil.read(article.getContentByLocale(locale)) />
102 <#assign dateToUse = aArticleXML.valueOf("//dynamic-element[@name='Fecha_noticia']/dynamic-content/text()")?date("yyyy-MM-dd") />
103 <#assign contentFechaURLString = aArticleXML.valueOf("//dynamic-element[@name='Fecha_noticia']/dynamic-content/text()")?date("yyyy-MM-dd")?string["dd/MM/yyyy"] />
104 <#assign contentFechaString = aArticleXML.valueOf("//dynamic-element[@name='Fecha_noticia']/dynamic-content/text()")?date("yyyy-MM-dd")?string["dd | MM | yyyy"]/>
105 </#if>
106
107
108 <#assign aArticleXML = saxReaderUtil.read(article.getContentByLocale(locale)) />
109 <#assign tituloNoticia = aArticleXML.valueOf("//dynamic-element[@name='Titulo_noticia']/dynamic-content/text()") />
110 <#assign autorNombre = aArticleXML.valueOf("//dynamic-element[@name='Nombre_autor']/dynamic-content/text()") />
111 <#assign autorImagen = aArticleXML.valueOf("//dynamic-element[@name='Autor_imagen']/dynamic-content/text()") />
112 <#assign jsonObjectString = aArticleXML.valueOf("//dynamic-element[@name='Imagen']/dynamic-content/text()") />
113
114 <#assign video = aArticleXML.valueOf("//dynamic-element[@name='Video_youtube']/dynamic-content/text()") />
115
116 <#assign friendlyContentURL = assetPublisherHelper.getAssetViewURL(portalUtil.getLiferayPortletRequest(renderRequest), portalUtil.getLiferayPortletResponse(renderResponse), curEntry,true) />
117
118 <#assign tituloNoticiaEncoded = friendlyUrlDecode(tituloNoticia)>
119
120 <#-- Asset publisher instance id in main domain -->
121 <#assign mainDomainInstanceId = "lovPblW1fC70">
122 <#-- Urls generated always the same page for unav requirements-->
123 <#-- In main domain, go to main news page and use that asset publisher id. Causes issues with other domains -->
124 <#-- TODO: remove once custom fields are created-->
125 <#assign urlNews = languageUtil.get(locale, "url.news.details", "/noticias")>
126 <#assign instanceId = mainDomainInstanceId>
127
128 <#-- Configure url and asset publisher instance id with customFields-->
129 <#-- By default configured with main domain news page and asset publisher id. Other domains have to configure it manually in the site configuration -->
130 <#if site_news_url_value??>
131 <#assign urlNews = site_news_url_value>
132 </#if>
133 <#if site_news_asset_publisher_instance_id??>
134 <#assign instanceId = site_news_asset_publisher_instance_id>
135 </#if>
136
137 <#-- WORKAROUND FOR TEMPORAL SITES GO LIVE -->
138 <#-- lfr.cloud domain urls work differently, redirection to site news has to be adapted for it-->
139 <#if actualURLFriendly?contains("lfr.cloud")>
140 <#-- 1. Site with default news page. if using the default value, redirect to main site and use mainDomainInstanceId.-->
141 <#if site_news_url_default_value == site_news_url_value>
142 <#assign urlNews = site_news_url_value>
143 <#assign instanceId = mainDomainInstanceId>
144 <#else>
145 <#-- 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-->
146 <#if site_news_url_value?contains("/web"+groupFriendlyURL)>
147 <#assign urlNews = site_news_url_value>
148 <#assign instanceId = originalInstanceId>
149
150 <#-- 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-->
151 <#else>
152 <#assign urlNews = "/web"+groupFriendlyURL + site_news_url_value>
153 <#assign instanceId = originalInstanceId>
154 </#if>
155 </#if>
156
157 </#if>
158
159 <#assign urlDetail = urlNews+"/-/contents/"+contentFechaURLString+"/"+tituloNoticiaEncoded+"/content/"+instanceId+"/"+curEntry.getEntryId()>
160
161<#assign foto = "" >
162 <a href="${urlDetail}" class="unav-news-list__item">
163 <#if jsonObjectString?? && jsonObjectString?has_content>
164 <#attempt>
165 <#assign jsonObject = jsonObjectString?eval>
166 <#assign entryUuid = jsonObject.uuid />
167 <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) />
168 <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) />
169 <#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) />
170 <#assign assetRenderer = assetEntry.assetRenderer />
171 <#assign foto = assetRenderer.getURLDownload(themeDisplay) />
172
173 <div class="unav-news-list__img" style="background-image: url('${foto});"> </div>
174 <#recover>
175
176 </#attempt>
177 </#if>
178 <#if video?has_content>
179 <#if foto == "">
180
181 <div class="unav-news-list__img" style="background-image:url(http://img.youtube.com/vi/${video}/0.jpg)">
182 </div>
183 </#if>
184 </#if>
185
186 <div class="unav-news-list__container-txt">
187 <p class="unav__text__date">${contentFechaString}</p>
188
189 <p class="unav__text unav__text--m">${tituloNoticia}</p>
190
191 <div class="unav-news-list__info">
192 <#if autorNombre?has_content>
193 <p class="unav-writing__info-txt"><span class="unav-writing__info-bold">${texto}</span>${autorNombre}</p>
194 </#if>
195 <#if autorImagen?has_content>
196 <p class="unav-writing__info-txt"><span class="unav-writing__info-bold">${imagen}</span>${autorImagen}</p>
197 </#if>
198 </div>
199 </div>
200 </a>
201 </#list>
202 </#if>
203
204
205</section>
206
207<script>
208 $(document).ready( function() {
209 // Avoid lost focus when paginate
210 if ($('.lfr-pagination-buttons')) {
211 var paginationButtons = $('.lfr-pagination-buttons').children();
212 for (const paginationButton of paginationButtons) {
213 var link = $(paginationButton).children();
214 if(link) {
215 $(link).click(function(e){
216 e.preventDefault();
217 var url = $(this).attr('href');
218 window.location.href = url + '#unav-news-list';
219 });
220 }
221 }
222 }
223 });
224
225 function _com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_lovPblW1fC70_handleDropdownKeyPress(button, list, options, pageIterator) {}
226</script>
227
228<#function friendlyUrlDecode title>
229
230 <#assign titleFriendly = title?replace("[^A-Za-z0-9À-ú ]", "", "r")?lower_case>
231 <#assign titleFriendly = titleFriendly?replace("á", "a", "r")>
232 <#assign titleFriendly = titleFriendly?replace("é", "e", "r")>
233 <#assign titleFriendly = titleFriendly?replace("í", "i", "r")>
234 <#assign titleFriendly = titleFriendly?replace("ó", "o", "r")>
235 <#assign titleFriendly = titleFriendly?replace("ú", "u", "r")>
236 <#assign titleFriendly = titleFriendly?replace("ñ", "n", "r")>
237 <#assign titleFriendly = URLEncoder.encode(titleFriendly)>
238 <#assign titleFriendly = titleFriendly?replace("\\+", "-","r")>
239 <#return titleFriendly>
240</#function>