actualidad

Actualidad

Estas son las últimas noticias publicadas por la Facultad de Farmacia y Nutrición: 

Publicador de contenidos

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			<#if actualURLFriendly?contains("lfr.cloud")> 
121				<#assign urlNews = "/web"+groupFriendlyURL + currentLayoutFriendlyUrl> 
122				<#assign instanceId = originalInstanceId> 
123			</#if> 
124 
125            <#assign urlDetail = urlNews+"/-/contents/"+contentFechaURLString+"/"+tituloNoticiaEncoded+"/content/"+instanceId+"/"+curEntry.getEntryId()> 
126             
127<#assign foto = "" > 
128            <a href="${urlDetail}" class="unav-news-list__item"> 
129    		 
130    		  <#if jsonObjectString??> 
131    		         <#attempt> 
132                        <#assign jsonObject = jsonObjectString?eval> 
133                        <#assign entryUuid = jsonObject.uuid /> 
134                        <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) /> 
135                        <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) /> 
136                        <#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) /> 
137                        <#assign assetRenderer = assetEntry.assetRenderer /> 
138                        <#assign foto = assetRenderer.getURLDownload(themeDisplay) /> 
139                         
140            	        <div class="unav-news-list__img" style="background-image: url('${foto});">&nbsp;</div> 
141                    <#recover> 
142                       
143                    </#attempt> 
144                  </#if>     
145                 <#if video?has_content> 
146                    <#if foto == "">  
147                          
148						<div class="unav-news-list__img" style="background-image:url(http://img.youtube.com/vi/${video}/0.jpg)">&nbsp; 
149						</div>        
150					</#if> 
151                  </#if> 
152                   
153                    <div class="unav-news-list__container-txt"> 
154                        <p class="unav__text__date">${contentFechaString}</p> 
155                         
156                        <p class="unav__text unav__text--m">${tituloNoticia}</p> 
157                     
158                        <div class="unav-news-list__info"> 
159                            <#if autorNombre?has_content> 
160                                <p class="unav-writing__info-txt"><span class="unav-writing__info-bold">${texto}</span>${autorNombre}</p> 
161                            </#if> 
162                            <#if autorImagen?has_content> 
163                                <p class="unav-writing__info-txt"><span class="unav-writing__info-bold">${imagen}</span>${autorImagen}</p> 
164                            </#if> 
165                        </div> 
166                    </div> 
167            </a> 
168    	</#list> 
169    </#if> 
170 
171     
172</section> 
173 
174 
175<#function friendlyUrlDecode title> 
176 
177    <#assign titleFriendly = title?replace("[^A-Za-z0-9À-ú ]", "", "r")?lower_case> 
178    <#assign titleFriendly = titleFriendly?replace("á", "a", "r")> 
179    <#assign titleFriendly = titleFriendly?replace("é", "e", "r")> 
180    <#assign titleFriendly = titleFriendly?replace("í", "i", "r")> 
181    <#assign titleFriendly = titleFriendly?replace("ó", "o", "r")> 
182    <#assign titleFriendly = titleFriendly?replace("ú", "u", "r")> 
183    <#assign titleFriendly = titleFriendly?replace("ñ", "n", "r")> 
184    <#assign titleFriendly = URLEncoder.encode(titleFriendly)> 
185    <#assign titleFriendly = titleFriendly?replace("\\+", "-","r")> 
186    <#return titleFriendly> 
187</#function>