Berriak

Deialdi Irekiak

null

Irakasle elkartua: 2020/10/14ko IRAKASLE ELKARTUEN DEIALDIA

Onartuen eta baztertuen zerrenda - Behin-betiko emaitza

Hartzaileak

  • Irakaskuntza eta Ikerkuntzako Pertsonala - Irakasle elkartua
Deialdiaren data:
2020-10-14

Deialdi bideratuak

Errorea gertatu da txantiloia prozesatzerakoan.
Java method "com.sun.proxy.$Proxy644.getArticleContent(com.liferay.journal.model.JournalArticle, String, String, String, com.liferay.portal.kernel.theme.ThemeDisplay)" threw an exception when invoked on com.sun.proxy.$Proxy644 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@4f50a0c5"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${journalArticleLocalService.getArtic...  [in template "10112#522485#8158018" at line 194, column 42]
----
1<#assign liferay_ui = taglibLiferayHash["/META-INF/liferay-ui.tld"] /> 
2 
3<#-- ---------- UPV/EHU  -------- --> 
4<#-- Identificador de contenido dentro del publicador. Por defecto empieza en 0, excepto si hay filtrado por categoria o si se ignora el parametro compartido "categoryId", lo que supone no destacar el primer contenido del listado --> 
5<#assign itemNumber = 0 /> 
6 
7<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
8 
9<ul class="asset-list asset-list-summary"> 
10<#-- ---------- UPV/EHU - UPV/EHU ---------- --> 
11    <#list entries as entry> 
12 
13	<#assign entry = entry /> 
14	 
15	<#assign assetRenderer = entry.getAssetRenderer() /> 
16	 
17	<#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) /> 
18         
19	<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
20	 
21	<#--- UPV/EHU - UPV/EHU   ---> 
22	<#--- Si el contenido web tiene página de visualización (página detalle) se hará uso de la friendly URL---> 
23	<#if assetRenderer?has_content && assetRenderer.getArticle??> 
24	    <#assign journalArticle = assetRenderer.getArticle() /> 
25	    <#if journalArticle?has_content> 
26	        <#assign layoutUuid = journalArticle.getLayoutUuid() /> 
27	       	<#if layoutUuid?has_content > 
28        		<#assign urlViewContext = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) /> 
29        		<#assign viewURL = urlViewContext /> 
30        	</#if>  
31	    </#if> 
32	</#if> 
33	 
34	 
35	 
36	<#-- ---------- UPV/EHU  -------- --> 
37	<#-- Si la URL para mostrar el contenido completo es de la parte publica del sitio web guest se quita de la URL --> 
38	<#assign guestPublicSiteURL = "/web/guest" /> 
39	<#if viewURL?contains(guestPublicSiteURL) > 
40            <#assign viewURL = viewURL?replace(guestPublicSiteURL, "") /> 
41	</#if> 
42	 
43            <li class="asset-summary item-${itemNumber}"> 
44		<div class="lfr-meta-actions asset-actions"> 
45			<@getEditIcon /> 
46		</div> 
47 
48		<#-- ---------- UPV/EHU  -------- --> 
49		<#-- Si el publicador muestra solo contenidos, se muestra cada contenido con la plantilla summary correspondiente al tipo del contenido si existe dicha plantilla, sino aparece mensaje de error --> 
50		 
51		<#assign journalArticleClass = "com.liferay.journal.model.JournalArticle" /> 
52		<#assign ddmTemplateKey = 0 /> 
53		 
54		<#if assetRenderer.getClassName() == journalArticleClass > 
55                         
56                        <#assign structureIdStr = assetRenderer.getArticle().getStructureId() /> 
57                        <#assign globalGroupId = themeDisplay.getCompanyGroupId() /> 
58                        <#assign localGroupId = themeDisplay.getSiteGroupId() /> 
59                        <#assign classNameId = portalUtil.getClassNameId(journalArticleClass)/> 
60                        <#assign ddmStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService") /> 
61                         
62                    <#-- se controla la excepcion que puede producirse al intentar recuperar una estructura que no está en global, forzando así, que en este caso, se ejecute la recuperación de la estructura en el site local -->					 
63                        <#-- Si existe la estructura/tipo de contenido en el ambito Global --> 
64                        <#if ddmStructureLocalService.fetchStructure(globalGroupId,classNameId,structureIdStr)?? >                             
65                            <#assign ddmStructure = ddmStructureLocalService.fetchStructure(globalGroupId,classNameId,structureIdStr) /> 
66                        </#if> 
67                         
68                        <#-- Si existe la estructura/tipo de contenido en el ambito Local -->     
69                            <#-- Si existe la estructura/tipo de contenido en el ambito Local -->     
70                            <#if !ddmStructure?? && ddmStructureLocalService.fetchStructure(localGroupId,classNameId,structureIdStr)??> 
71                                <#assign ddmStructure = ddmStructureLocalService.fetchStructure(localGroupId,classNameId,structureIdStr) /> 
72                            </#if>      
73                     
74                        <#-- Si existe la estructura/tipo de contenido --> 
75                        <#if ddmStructure?? >  
76                            <#assign templateName = "Summary" /> 
77                            <#assign ddmTemplates = ddmStructure.getTemplates() /> 
78                            <#-- ---------- Si la estructura/tipo de contenido tiene asociadas plantillas/visualizaciones --> 
79                            <#assign isCall = false /> 
80                            <#assign isOutStanding = false /> 
81                            <#if (ddmTemplates??)>                                
82                                <#list ddmTemplates as ddmTemplate>                                    
83                                    <#-- Si la plantilla/visualizacion es de tipo resumen --> 
84                                    <#if ddmTemplate.getName()?contains("Summary") || ddmTemplate.getName()?contains("Laburpena") || ddmTemplate.getName()?contains("Resumen") > 
85                                        <#assign ddmTemplateKeyStr = ddmTemplate.getTemplateKey()/> 
86                                        <#assign ddmTemplateKey = getterUtil.getLongStrict(ddmTemplateKeyStr)/>     
87                                    </#if>     
88                                    <#if ddmStructure.getName()?contains("Call")> 
89                                    	 <#assign isCall = true /> 
90			                        <#else> 
91		                                <#if ddmStructure.getName()?contains("Outstanding")> 
92	                                    	 <#assign isOutStanding = true /> 
93										</#if>    
94									</#if>    
95                                </#list> 
96                            </#if> 
97                             
98                            <#-- Si existe la plantilla de nombre Summary --> 
99                            <#if (ddmTemplateKey != 0)> 
100								<#if isCall> 
101									<#assign document = saxReaderUtil.read(assetRenderer.getArticle().getContentByLocale(locale)) /> 
102									<#assign phases = document.getRootElement().selectNodes("//dynamic-element[@name='ehuphases']") /> 
103									<#assign infoStateUrl = '' /> 
104									<#assign provisionalStateUrl = '' /> 
105									<#assign finalStateUrl = '' /> 
106									<#assign ref = '' /> 
107									<#list phases as phase> 
108										<#assign subfields = phase.elements("dynamic-element")> 
109										<#list subfields as subfield > 
110											<#if subfield.attributeValue("name") == "ehuinfostate"> 
111												 <#if (subfield.elements("dynamic-element")??)> 
112													<#assign subfields2 = subfield.elements("dynamic-element")> 
113													<#list subfields2 as subfield2 > 
114														<#if subfield2.attributeValue("name") == "ehuinfostateurl"> 
115															<#assign infoStateUrl = subfield2.elementText("dynamic-content") />  
116														</#if> 
117													</#list><#-- list subfields2 --> 
118												</#if> 
119											<#elseif subfield.attributeValue("name") == "ehuprovisionalstate"> 
120												<#if (subfield.elements("dynamic-element")??)> 
121													<#assign subfields2 = subfield.elements("dynamic-element")> 
122													<#list subfields2 as subfield2 >	 
123														<#if subfield2.attributeValue("name") == "ehuprovisionalstateurl"> 
124															<#assign provisionalStateUrl = subfield2.elementText("dynamic-content") />  
125														</#if> 
126													</#list><#-- list subfields2 --> 
127												</#if> 
128											<#elseif subfield.attributeValue("name") == "ehufinalstate"> 
129												 <#if (subfield.elements("dynamic-element")??)> 
130													<#assign subfields2 = subfield.elements("dynamic-element")> 
131													<#list subfields2 as subfield2 > 
132														<#if subfield2.attributeValue("name") == "ehufinalstateurl"> 
133															<#assign finalStateUrl = subfield2.elementText("dynamic-content") />  
134														</#if> 
135													</#list><#-- list subfields2 --> 
136												</#if> 
137											</#if><#-- if subfield --> 
138										</#list><#-- list subfields --> 
139									</#list> <#-- list phases --> 
140									 
141									<#if infoStateUrl?? && !validator.isBlank(infoStateUrl)> 
142										<#assign ref = infoStateUrl />  
143									</#if><#--  infoUrl --> 
144									<#if provisionalStateUrl?? && !validator.isBlank(provisionalStateUrl)> 
145										<#assign ref = provisionalStateUrl />  
146									</#if><#--  provisionalUrl --> 
147									<#if finalStateUrl?? && !validator.isBlank(finalStateUrl)> 
148										<#assign ref = finalStateUrl />  
149									</#if><#--  finalUrl --> 
150 
151									<#assign protocol = httpUtil.getProtocol( request ) /> 
152									<#assign refProtocol = httpUtil.getProtocol( ref ) /> 
153									<#if ref?? && !validator.isBlank( ref )> 
154										<#if refProtocol??> 
155											<#if ref?contains( refProtocol )> 
156												<#assign viewURL = ref/> 
157											<#else> 
158												<#assign viewURL = refProtocol + "://" + ref/> 
159											</#if> 
160										<#else> 
161											<#assign viewURL =  protocol + "://" + ref/> 
162										</#if> 
163									</#if> 
164 
165								</#if><#-- if call --> 
166								<#-- EJEMPLO para acceso a valores del xml y llamada a funciones de libreria (entrada freemarker.engine.macro.library del portal-ext.properties) 
167								<#if isOutStanding> 
168									<#assign document = saxReaderUtil.read(assetRenderer.getArticle().getContentByLocale(locale)) /> 
169									<#assign fieldLink = "//dynamic-element[@name='ehu-outstanding-link']" /> 
170									<#assign link = document.valueOf( fieldLink + "/dynamic-content/text()" ) /> 
171									<#assign linkTitle = document.valueOf( fieldLink + "/dynamic-element[@name='ehu-outstanding-link-title']") /> 
172									<#assign linkInNewTab = getterUtil.getBoolean( document.valueOf( fieldLink + "/dynamic-element[@name='ehu-outstanding-url-new-tab']") ) /> 
173									<#assign formatedURL = ehu.formatURL( link ) > 
174									<#assign hrefOpts = ehu.hrefOptions( linkInNewTab, linkTitle ) > 
175									<div class="p1">linkTitle: ${linkTitle}</div> 
176									<div class="p2">formatedURL: ${formatedURL}</div> 
177									<div class="p3">hrefTitle: ${hrefOpts.hrefTitle}</div> 
178									<div class="p4">hrefTarget: ${hrefOpts.hrefTarget}</div> 
179								 </#if> 
180								Fin EJEMPLO para acceso a valores del xml y llamada a funciones --> 
181								<#assign journalArticle = assetRenderer.getAssetObject()/> 
182								<#if !isOutStanding > 
183									<a href="${viewURL}"> 
184								</#if> 
185								 
186									<#--<@liferay_journal["journal-article"] 
187											articleId=assetRenderer.getArticle().getArticleId() 
188											ddmTemplateKey="${ddmTemplateKey}" 
189											groupId=journalArticle.getGroupId() 
190											languageId=locale.toString()											 
191										/> --> 
192									<#-- Se controla que exista el article --> 
193                                    <#if journalArticleLocalService.fetchDisplayArticle(journalArticle.getGroupId(),assetRenderer.getArticle().getArticleId())?? >     
194                                         ${journalArticleLocalService.getArticleContent(journalArticle, ddmTemplateKeyStr,"VIEW", locale, themeDisplay)} 
195                                    </#if> 
196										 
197									   	 
198									 
199										 
200								<#if !isOutStanding > 
201									</a> 
202								</#if> 
203                                    
204                           	<#-- Si NO existe la plantilla de nombre Summary mensaje de error --> 
205                            <#else>     
206                                <div class="alert alert-error"> ${ddmStructure.getNameCurrentValue()} <@liferay.language key="ehu.error.structure-has-no-summary-template-select-another-template" /></div> 
207                            </#if>     
208                             
209                            <@getMetadataField fieldName="tags" /> 
210 
211                            <@getMetadataField fieldName="create-date" /> 
212 
213                            <@getMetadataField fieldName="view-count" /> 
214 
215                            <@getMetadataField fieldName="author" /> 
216 
217                            <@getRatings /> 
218 
219                            <@getRelatedAssets /> 
220 
221                            <@getDiscussion /> 
222                     </#if> 
223                 <#assign itemNumber = itemNumber + 1 />      
224                 
225                <#-- ---------- UPV/EHU - UPV/EHU ---------- -->         
226                <#else> 
227                    <h3 class="asset-title"> 
228                        <#if assetRenderer?has_content && assetRenderer.getIconPath?has_content>         
229                            <a href="${viewURL}"><img alt="" src="${assetRenderer.getIconPath(renderRequest)}" />${entryTitle}</a> 
230                        </#if> 
231                        </h3> 
232 
233                        <@getMetadataField fieldName="tags" /> 
234 
235                        <@getMetadataField fieldName="create-date" /> 
236 
237                        <@getMetadataField fieldName="view-count" /> 
238 
239                        <div class="asset-content"> 
240                                <@getSocialBookmarks /> 
241 
242                                <div class="asset-summary"> 
243                                        <@getMetadataField fieldName="author" /> 
244                                         
245                                        
246                                        ${htmlUtil.escape(assetRenderer.getSummary(renderRequest, renderResponse))} 
247                                         
248                                        <a href="${viewURL}"><@liferay.language key="read-more" /><span class="hide-accessible"><@liferay.language key="about" />${entryTitle}</span> &raquo;</a> 
249                                </div> 
250 
251                                <@getRatings /> 
252 
253                                <@getRelatedAssets /> 
254 
255                                <@getDiscussion /> 
256                        </div> 
257                </#if> 
258		 
259	</li> 
260    </#list> 
261</ul> 
262 
263<#macro getDiscussion > 
264	<#if assetRenderer?? &&  assetRenderer.getDiscussionPath()?? && (enableComments == "true")> 
265		<br /> 
266 
267		<#assign discussionURL = renderResponse.createActionURL() /> 
268 
269		${discussionURL.setParameter("struts_action", "/asset_publisher/" + assetRenderer.getDiscussionPath())} 
270 
271		<@liferay_ui["discussion"] 
272			className=entry.getClassName() 
273			classPK=entry.getClassPK() 
274			formAction=discussionURL?string 
275			formName="fm" + entry.getClassPK() 
276			ratingsEnabled=enableCommentRatings == "true" 
277			redirect=portalUtil.getCurrentURL(request) 
278			userId=assetRenderer.getUserId() 
279		/> 
280	</#if> 
281</#macro> 
282 
283<#macro getEditIcon> 
284	<#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
285		<#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("NORMAL"), themeDisplay.getURLCurrent())!"" /> 
286 
287		<#if validator.isNotNull(editPortletURL)> 
288			<#assign title = languageUtil.format(locale, "edit-x", entryTitle) /> 
289 
290			<@liferay_ui["icon"] 
291				image="edit" 
292				message=title 
293				url=editPortletURL.toString() 
294			/> 
295		</#if> 
296	</#if> 
297</#macro> 
298 
299<#macro getFlagsIcon> 
300	<#if enableFlags == "true"> 
301		<@liferay_ui["flags"] 
302			className=entry.getClassName() 
303			classPK=entry.getClassPK() 
304			contentTitle=entry.getTitle(locale) 
305			label=false 
306			reportedUserId=entry.getUserId() 
307		/> 
308	</#if> 
309</#macro> 
310 
311<#macro getMetadataField 
312	fieldName 
313
314	<#if stringUtil.split(metadataFields)?seq_contains(fieldName)> 
315		<span class="metadata-entry metadata-"${fieldName}"> 
316			<#assign dateFormat = "dd MMM yyyy - HH:mm:ss" /> 
317 
318			<#if fieldName == "author"> 
319				<@liferay.language key="by" /> ${portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName())} 
320			<#elseif fieldName == "categories"> 
321				<@liferay_ui["asset-categories-summary"] 
322					className=entry.getClassName() 
323					classPK=entry.getClassPK() 
324					portletURL=renderResponse.createRenderURL() 
325				/> 
326			<#elseif fieldName == "create-date"> 
327				${dateUtil.getDate(entry.getCreateDate(), dateFormat, locale)} 
328			<#elseif fieldName == "expiration-date"> 
329				${dateUtil.getDate(entry.getExpirationDate(), dateFormat, locale)} 
330			<#elseif fieldName == "modified-date"> 
331				${dateUtil.getDate(entry.getModifiedDate(), dateFormat, locale)} 
332			<#elseif fieldName == "priority"> 
333				${entry.getPriority()} 
334			<#elseif fieldName == "publish-date"> 
335				${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)} 
336			<#elseif fieldName == "tags"> 
337				<@liferay_ui["asset-tags-summary"] 
338					className=entry.getClassName() 
339					classPK=entry.getClassPK() 
340					portletURL=renderResponse.createRenderURL() 
341				/> 
342			<#elseif fieldName == "view-count"> 
343				<@liferay_ui["icon"] 
344					image="history" 
345				/> 
346 
347				${entry.getViewCount()} <@liferay.language key="views" /> 
348			</#if> 
349		</span> 
350	</#if> 
351</#macro> 
352 
353<#macro getPrintIcon> 
354	<#if enablePrint == "true" > 
355		<#assign printURL = renderResponse.createRenderURL() /> 
356 
357		${printURL.setParameter("struts_action", "/asset_publisher/view_content")} 
358		${printURL.setParameter("assetEntryId", entry.getEntryId()?string)} 
359		${printURL.setParameter("viewMode", "print")} 
360		${printURL.setParameter("type", entry.getAssetRendererFactory().getType())} 
361 
362		<#if (validator.isNotNull(assetRenderer.getUrlTitle()))> 
363			<#if (assetRenderer.getGroupId() != themeDisplay.getScopeGroupId())> 
364				${printURL.setParameter("groupId", assetRenderer.getGroupId()?string)} 
365			</#if> 
366 
367			${printURL.setParameter("urlTitle", assetRenderer.getUrlTitle())} 
368		</#if> 
369 
370		${printURL.setWindowState("pop_up")} 
371 
372		<@liferay_ui["icon"] 
373			image="print" 
374			message="print" 
375			url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "printAsset', title: '" + languageUtil.format(locale, "print-x-x", ["hide-accessible", entryTitle]) + "', uri: '" + htmlUtil.escapeURL(printURL.toString()) + "'});" 
376		/> 
377	</#if> 
378</#macro> 
379 
380<#macro getRatings> 
381	<#if (enableRatings == "true")> 
382		<div class="asset-ratings"> 
383			<@liferay_ui["ratings"] 
384				className=entry.getClassName() 
385				classPK=entry.getClassPK() 
386			/> 
387		</div> 
388	</#if> 
389</#macro> 
390 
391<#macro getRelatedAssets> 
392	<#if assetEntry?? && enableRelatedAssets == "true"> 
393		    <@liferay_ui["asset-links"] 
394			    assetEntryId=entry.getEntryId()/> 
395	</#if> 
396</#macro> 
397 
398<#macro getSocialBookmarks> 
399	<#if enableSocialBookmarks?has_content && enableSocialBookmarks == "true"> 
400		<@liferay_ui["social-bookmarks"] 
401			displayStyle="${socialBookmarksDisplayStyle}" 
402			target="_blank" 
403			title=entry.getTitle(locale) 
404			url=viewURL 
405		/> 
406	</#if> 
407</#macro>