La Universidad está en el proceso de finalizar su Estrategia 2025 y, con ello, comienza a definir los próximos pasos para los años venideros con la elaboración de la Estrategia 2530. La Estrategia 2025 se propuso abordar los desafíos globales emergentes y reafirmar el compromiso de la Universidad con la búsqueda de la verdad, el bienestar humano y el desarrollo sostenible. El nuevo plan se forjará mediante un proceso de reflexión conjunta con toda la comunidad universitaria

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>


