People
No se han encontrado usuarios con estos criterios de búsqueda
Publicador de contenidos
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> PortalClassLoaderUtil  [in template "10153#10191#7998722" at line 67, column 112]

----
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 dynamicQuery = DynamicQueryFa...  [in template "10153#10191#7998722" at line 67, column 17]
----
1<#-- ### CONSTANTES - IMPORTS - FUNCIONES ### --> 
2<#include "${templatesPath}/TEMPLATE_INIT" /> 
3<#include "${templatesPath}/TEMPLATE_FUNCTIONS" /> 
4 
5 
6<#-- ### CONSTANTES CUSTOM ### --> 
7<#assign VOCABULARY_INFO_NAMES = [CATEGORIES_VOCABULARY_NAME] /> 
8<#assign DATE_PATTERN = "dd.MM.yyyy" /> 
9<#assign URL_CURRENT = THEME_DISPLAY.getURLCurrent() /> 
10 
11<#-- ### SPECIAL LIBS ### --> 
12<#attempt> 
13	<#assign i18nblogsentryLocalService = serviceLocator.findService("org.isglobal.customblog.service.i18nblogsentryLocalService") /> 
14	<#assign ExternalPersonnelLocalService = serviceLocator.findService("org.isglobal.customblog.service.ExternalPersonnelLocalService") /> 
15	<#assign PersonaLocalService = serviceLocator.findService("org.isglobal.people.service.PersonaLocalService") /> 
16	<#assign DynamicQueryFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil"] /> 
17	<#assign RestrictionsFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil"] /> 
18	<#assign PropertyFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil"] /> 
19																																																					   
20	 
21	<#assign CUSTOM_LIBS_OK =  true /> 
22<#recover> 
23	<#assign ERROR_LIST =  ERROR_LIST + [ "Error getting libs from custom-blog-portlet or isglobal-people-portlet" ] /> 
24	<#assign CUSTOM_LIBS_OK =  false /> 
25</#attempt> 
26 
27<#function _getPersonaIdFromRequest request > 
28	<#attempt> 
29		<#local originalServletRequest = portalUtil.getOriginalServletRequest(request) /> 
30		<#local parameterMap = (originalServletRequest.getParameterNames())!EMPTY_LIST /> 
31		<#list parameterMap as parameterKey > 
32			<#if parameterKey?matches(".*_personaId$") > 
33				<#return originalServletRequest.getParameter(parameterKey)?number > 
34			</#if> 
35		</#list> 
36	<#recover> 
37	</#attempt> 
38	<#return -1 > 
39</#function> 
40 
41 
42<#-- ### INFORMACION ### --> 
43 
44<#-- Estructura JSON ejemplo 
45	{"blogs" : [ 
46
47			"title" : ${}, 
48			"content" : ${}, 
49			"description" : ${}, 
50			"date" : ${}, 
51			"url" : ${}, 
52			"image" : ${}, 
53			"image_alt" : ${}, 
54			"categoryListName" : [], 
55			"categoriesString" : ${} 
56
57	]} 
58--> 
59 
60<#-- Get related posts from file author --> 
61<#assign listPosts = [] /> 
62<#assign personaId = _getPersonaIdFromRequest(request) /> 
63<#if CUSTOM_LIBS_OK && (personaId > 0) > 
64	<#assign persona = PersonaLocalService.getPersona(personaId) /> 
65	<#assign blogUserId = persona.getUserId() /> 
66	<#if (blogUserId > 0) > 
67		<#assign dynamicQuery = DynamicQueryFactoryUtil.forClass("com.liferay.blogs.model.BlogsEntry", PortalClassLoaderUtil.getClassLoader()) /> 
68		<#assign VOID = dynamicQuery.add(RestrictionsFactoryUtil.eq("userId", blogUserId)) /> 
69		<#assign VOID = dynamicQuery.addOrder(PropertyFactoryUtil.forName("displayDate").desc()) /> 
70		<#assign personaBlogs = BlogsEntryLocalService.dynamicQuery(dynamicQuery) /> 
71		<#list personaBlogs as personaBlog > 
72			<#assign personaBlogId = personaBlog.getEntryId() /> 
73			<#attempt> 
74				<#if personaBlog.getStatus() == 0 > 
75					<#assign i18nBlog = i18nblogsentryLocalService.geti18nblogsentry(personaBlogId, locale) /> 
76					<#if i18nBlog?has_content > 
77						<#assign i18nBlogId = i18nBlog.getEntryId() /> 
78						<#if !(ExternalPersonnelLocalService.findBlogId(i18nBlogId)?has_content) > 
79							<#-- El autor es interno (de ISGlobal) --> 
80							<#assign listPosts = listPosts + [personaBlog] /> 
81						</#if> 
82					</#if> 
83				</#if> 
84			<#recover> 
85			</#attempt> 
86		</#list> 
87	</#if> 
88</#if> 
89 
90<#assign blogs = [] /> 
91<#if listPosts?has_content > 
92 
93	<#-- Get Blog Info --> 
94	<#list listPosts as blogEntry> 
95 
96		<#-- creacion del objeto JSON a rellenar --> 
97			<#assign data = {} /> 
98			<#assign title = "" /> 
99			<#assign content = "" /> 
100			<#assign description = "" /> 
101			<#assign date = "" /> 
102			<#assign url = "" /> 
103			<#assign image = "" /> 
104 
105		<#-- Extraccion de informacion --> 
106			 
107			<#-- Blog info --> 
108			<#assign blogEntryId = blogEntry.getEntryId() /> 
109			<#assign blogEntryUrl = blogEntry.getUrlTitle() /> 
110			 
111			<#assign title = blogEntry.getTitle() /> 
112			<#assign content = blogEntry.getContent() /> 
113			<#if CUSTOM_LIBS_OK > 
114				<#attempt> 
115					<#assign i18nEntry = i18nblogsentryLocalService.geti18nblogsentry(blogEntryId, locale.toString()) /> 
116					<#if i18nEntry.getTitle()?has_content > 
117						<#assign title = i18nEntry.getTitle() /> 
118					</#if> 
119					<#if i18nEntry.getContent()?has_content > 
120						<#assign content = i18nEntry.getContent() /> 
121					</#if> 
122				<#recover> 
123					<#assign ERROR_LIST =  ERROR_LIST + [ "Error getting i18n Blog Title" ] /> 
124				</#attempt> 
125			</#if> 
126			<#assign description = stringUtil.shorten(htmlUtil.stripHtml(content), 150) /> 
127			 
128			<#assign date = dateUtil.getDate(blogEntry.getDisplayDate(), DATE_PATTERN, locale) /> 
129			 
130			<#assign blogUserExternalId = 0 /> 
131			<#assign url = "${HEALTH_BLOG_PATH}/${blogEntryUrl}" /> 
132			 
133			<#assign image = DEFAULT_BLOG_IMAGE /> 
134			<#if blogEntry.getSmallImageURL()?has_content > 
135				<#assign image = blogEntry.getSmallImageURL() /> 
136			</#if> 
137			 
138		<#-- Guardado de la informacion modo JSON --> 
139		 
140			<#assign data = data + {"title" : "${title}"} /> 
141			<#assign data = data + {"content" : "${content}"} /> 
142			<#assign data = data + {"description" : "${description}"} /> 
143			<#assign data = data + {"date" : "${date}"} /> 
144			<#assign data = data + {"url" : "${url}"} /> 
145			<#assign data = data + {"image" : "${image}"} /> 
146			<#assign data = data + {"image_alt" : _getAltImage(image)} /> 
147			 
148		<#-- JSON añadido a la lista de elementos --> 
149			<#assign blogs = blogs + [data] /> 
150		 
151	</#list> 
152</#if> 
153 
154<#-- ### HTML ### --> 
155<#if blogs?has_content > 
156	<aside class="interesting-items llista-blog"> 
157		<h2 class="h3"><@liferay.language key="blog-posts"/></h2> 
158		<section class="ultimes-noticies container-fluid"> 
159			<div class="container"> 
160				<div class="row slider-mixed "> 
161					<div class="slider-noticies owl-carousel owl-theme noticies-state"> 
162						 
163						<#list blogs as elem> 
164							<article class="item item-list item-post text-center col-12" data-link="${elem.url}"> 
165								<div class="wrap-image wrap-image-icon"> 
166									<img class="img-responsive" src="${elem.image}" alt="${elem.image_alt}"> 
167								</div> 
168								<div class=""> 
169									<h3 class="title"> 
170										<a href="${elem.url}">${elem.title}</a> 
171									</h3> 
172									<p class="description">${elem.description}</p> 
173									<span class="info-date">${elem.date}</span> 
174								</div> 
175							</article> 
176						</#list> 
177						 
178					</div> 
179				</div> 
180			</div> 
181		</section> 
182	</aside> 
183</#if> 
184 
185<#-- Error control --> 
186<@_errorMessage hasPermission=VIEW_ERROR_PERMISSION msgList=ERROR_LIST /> 
187<@_jsonInfo hasPermission=ADMIN_PERMISSION info=blogs />