Publicador de contenidos

Atrás Noticia Título

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy1192.getLatestArticle(long, String, int)" threw an exception when invoked on com.sun.proxy.$Proxy1192 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@3d8b8096"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign currentArticle = journalArtic...  [in template "20097#20123#" at line 14, column 1]
----
1<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
2<#assign dlAppLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"] > 
3<#assign dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] > 
4<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") > 
5<#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')> 
6<#assign assetPublisherHelper = serviceLocator.findService('com.liferay.asset.publisher.util.AssetPublisherHelper')> 
7<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 
8<#assign assetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")> 
9<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
10<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
11 
12<#assign articleId = .vars['reserved-article-id'].data> 
13<#assign className = "com.liferay.journal.model.JournalArticle"> 
14<#assign currentArticle = journalArticleLocalService.getLatestArticle(groupId, articleId, 0)/> 
15<#assign categoryList = assetCategoryLocalServiceUtil.getCategories(className, currentArticle.resourcePrimKey) > 
16<#assign tagList=assetTagLocalService.getTags(className, currentArticle.resourcePrimKey) > 
17<#assign tagSearchLayoutURL = portalUtil.getLayoutURL(layoutLocalService.fetchLayoutByFriendlyURL(themeDisplay.getLayoutSet().getGroupId(), themeDisplay.getLayoutSet().getPrivateLayout(), "/tag-search"),themeDisplay) > 
18 
19<#if (newsImage.getData())?? && newsImage.getData() != ""> 
20<#assign imageAlt = newsImage.getAttribute("alt")>   
21</#if> 
22 
23<#if !imageAlt?has_content> 
24     
25    <#assign imageAlt =.vars['reserved-article-title'].data> 
26</#if> 
27 
28 
29<div class="container ss-news"> 
30    <#if Antetitulo?? && Antetitulo.getData() != ""> 
31        <div class="row pt-2 pb-4 ml-1" style="text-decoration:underline; font-weight: bold"> 
32        ${Antetitulo.getData()} 
33        </div> 
34    </#if> 
35    <#if title?? && title.getData() != ""> 
36        <h2 class="h3 row border-bottom pb-3 w-100 d-flex flex-nowrap"> 
37            <i class="ss-icon ss-icon-portal ss-icon--24 mr-3 mt-3"> 
38                <i class="path path1"></i> 
39                <i class="path path2"></i> 
40                <i class="path path3"></i> 
41            </i> 
42            <span> ${title.getData()}</span> 
43        </h2> 
44    </#if> 
45 
46    <div class="row pt-2 pb-4 ml-1"> 
47        <div class="col-6 col-lg-2 p-0"> 
48            ${dateUtil.getDate(currentArticle.displayDate, "dd/MM/yyyy", locale, timeZone)} 
49        </div> 
50 
51        <div class="col-6 col-lg-4 p-0"> 
52            <#list categoryList as category> 
53                <p class="text--color mb-0"> 
54                    <strong> 
55                        ${category.getTitle(locale)} 
56                    </strong> 
57                </p> 
58            </#list> 
59        </div> 
60    </div> 
61 
62    <#if getterUtil.getBoolean(showImageInDetail.getData())> 
63        <#assign marginBottom = "pb-4" /> 
64    <#else> 
65        <#assign marginBottom = "pb-2" /> 
66    </#if> 
67 
68    <div class="row pt-2 ${marginBottom} ml-1"> 
69        ${author.getData()} 
70    </div> 
71 
72    <#if getterUtil.getBoolean(showImageInDetail.getData())> 
73        <div class="row pb-5 w-100"> 
74            <#if newsImage.getData()?? && newsImage.getData() != ""> 
75                <img class="w-100" alt="${getImageAlt(newsImage)}" 
76                     data-fileentryid="${newsImage.getAttribute("fileEntryId")}" src="${newsImage.getData()}"/> 
77            </#if> 
78        </div> 
79    </#if> 
80 
81    <#if mainText?? && mainText.getData() != ""> 
82        <div class="row"> 
83            <div class="col-12 p-0"> 
84            ${mainText.getData()} 
85            </div> 
86        </div> 
87    </#if> 
88 
89    <#if documenTitle?? && documenTitle.getData() != "" && documenTitle.getSiblings()?has_content> 
90        <div class="row mt-3 mb-3"> 
91            <#list documenTitle.getSiblings() as cur_documenTitle> 
92                <div class="col-12 col-md-6 col-lg-4"> 
93                    <a class="ss-text-link card ss-card shadow p-4 d-flex flex-column justify-content-between" href="${cur_documenTitle.document.getData()}" target="_blank" title="<@liferay_ui["message"] key="accesibility.new-window" />"> 
94                        <span class="h5 font-weight-bold">${cur_documenTitle.getData()}</span> 
95                        <i class="ss-icon ss-icon-download ss-icon--24 align-self-end"></i> 
96                    </a> 
97                </div> 
98            </#list> 
99        </div> 
100    </#if> 
101 
102    <div class="asset-tags mb-3"> 
103        <span class="taglib-asset-tags-summary"> 
104            <#if tagSearchLayoutURL?contains("/portal/layout")> 
105                <#list tagList as tag>       
106                    ${tag.name}  
107                </#list> 
108            <#else> 
109                <#list tagList as tag>   
110                    <#assign tagURL = renderResponse.createRenderURL() /> 
111 
112                    ${tagURL.setParameter("resetCur", "true")} 
113                    ${tagURL.setParameter("tag", tag.name)} 
114 
115                    <#assign searchURL = tagURL?keep_after("?")/> 
116                    <#assign searchURL = "${tagSearchLayoutURL}?" + searchURL /> 
117 
118                    <a class="label label-lg label-secondary text-uppercase" href="${searchURL}"> 
119                        ${tag.name} 
120                    </a> 
121                </#list> 
122            </#if> 
123        </span> 
124    </div> 
125 
126    <!-- Contenidos relacionados --> 
127   <@getRelatedNews /> 
128</div> 
129 
130<script type="text/javascript"> 
131    // Correccion del scroll automatico que se realiza en el detalle de las noticias 
132    var esDetalleNoticia = true; 
133</script> 
134 
135<!-- Contenidos relacionados --> 
136<#macro getRelatedNews> 
137 
138    <#assign tagsListIds = []> 
139    <#list tagList as tag> 
140        <#assign tagsListIds = tagsListIds + [tag.tagId]> 
141    </#list> 
142 
143    <#assign groupIds = [groupId]> 
144    <#assign void = assetEntryQuery.setGroupIds(groupIds)> 
145    <#assign void = assetEntryQuery.setClassName(className)> 
146    <#assign void = assetEntryQuery.setAnyTagIds(tagsListIds)> 
147    <#assign void = assetEntryQuery.setOrderByCol1("publishDate")> 
148    <#assign relatedNews = assetEntryLocalService.getEntries(assetEntryQuery)> 
149 
150    <#if relatedNews?has_content && (relatedNews?size > 1) &&  (tagsListIds?size >= 1)> 
151 
152        <#assign baseUrl = themeDisplay.getScopeGroup().getPathFriendlyURL(themeDisplay.getLayout().isPrivateLayout(),themeDisplay)> 
153        <#assign groupUrl = groupLocalService.getGroup(themeDisplay.getLayout().getGroupId()).getFriendlyURL()> 
154 
155        <#assign relatedCount = 0 > 
156        <div class="row mb-5 mt-5"> 
157            <h2 class="col-12 mb-4"><@liferay_ui["message"] key="related.news" /></h2> 
158            <#list relatedNews as related> 
159                <#if journalArticleLocalService.getArticlesByResourcePrimKey(related.getClassPK())?has_content && (journalArticleLocalService.getArticlesByResourcePrimKey(related.getClassPK())?size >= 1)> 
160                    <#if relatedCount < 3> 
161 
162                        <#if related.getClassName() == className> 
163 
164                            <#assign relatedCount = relatedCount + 1/> 
165 
166                            <#assign assetRenderer = related.getAssetRenderer()/> 
167                            <#assign journalArticle =  assetRenderer.getAssetObject() /> 
168 
169                        <#-- Si es contenido web y de la misma estructura--> 
170                            <#if articleId != journalArticle.articleId && currentArticle.getDDMStructureKey() == journalArticle.getDDMStructureKey()> 
171                                <div class="col-12 col-md-6 col-xl-4"> 
172                                    <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
173                                    <#assign rootElement = document.getRootElement()> 
174                                    <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 
175                                    <#assign layoutURL = journalArticle.urlTitle /> 
176                                    <#assign newsTitle = getField("title", locale, defaultLanguageId, rootElement)!> 
177                                    <#assign newsImage = getField("newsImage", locale, defaultLanguageId, rootElement)!> 
178                                    <div class="ss-card ss-card--news card"> 
179                                        <#if newsImage?has_content> 
180                                            <div class="card-img-top"> 
181 
182                                                <#assign imageData = newsImage?eval /> 
183                                                <#assign image = getDocumentURL(imageData)/> 
184                                                <img src="${image}" alt="${imageAlt}"/> 
185                                            </div> 
186                                        </#if> 
187                                        <#if newsTitle?has_content && newsTitle != ""> 
188                                            <#assign newsUrl = getterUtil.getString(assetRenderer.getURLViewInContext(renderRequest, renderResponse,null)) /> 
189                                            <#if validator.isNotNull(newsUrl) > 
190                                                <div class="card-body shadow"> 
191                                                    <a class="ss-text-link" 
192                                                        href="${newsUrl}">${newsTitle}</a> 
193                                                </div> 
194                                            <#elseif renderRequest.portlet.portletName == "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" > 
195                                                <div class="card-body shadow">   
196                                                    <a class="ss-text-link" 
197                                                        href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, related)}">${newsTitle}</a> 
198                                                </div> 
199                                            </#if> 
200                                        </#if> 
201                                    </div> 
202                                </div> 
203                            </#if> 
204                        </#if> 
205                    </#if> 
206                </#if> 
207            </#list> 
208        </div> 
209    </#if> 
210</#macro> 
211 
212<#function getField field languageId defaultLanguageId xml> 
213    <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]"> 
214    <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]"> 
215    <#local selector = saxReaderUtil.createXPath(localeSelector)> 
216    <#local value = selector.selectSingleNode(xml)!> 
217    <#if value?has_content><#return value.getText()></#if> 
218    <#local selector = saxReaderUtil.createXPath(defaultSelector)> 
219    <#local value = selector.selectSingleNode(xml)!> 
220    <#if value?has_content><#return value.getText()></#if> 
221    <#return ""> 
222</#function> 
223 
224<#function parseXml xpath xml> 
225    <#local selector = saxReaderUtil.createXPath(xpath)> 
226    <#local result = selector.selectSingleNode(xml)!> 
227    <#if result?has_content><#return result.getStringValue()></#if> 
228    <#return ""> 
229</#function> 
230 
231<#function getDocumentURL documentJson> 
232     
233    <#attempt> 
234    <#if documentJson?has_content> 
235        <#assign 
236        uuid = documentJson.uuid 
237        groupId = documentJson.groupId 
238        dlFile = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid,groupId?number) 
239        documentURL =  dlUtil.getPreviewURL(dlFile, dlFile.getFileVersion(), themeDisplay, '') 
240        /> 
241        <#return documentURL> 
242    </#if> 
243    <#recover> 
244     
245    <#assign documentURL ="${themeDisplay.getPathThemeImages()}/ImagenDefectoNoticia.png"/> 
246    <#return documentURL> 
247    <!-- Si se produce una excepción, haz algo aquí --> 
248     
249    </#attempt> 
250     
251    <#return ''> 
252</#function> 
253 
254<#function getImageAlt imageVar> 
255    <#assign imageAlt = imageVar.getAttribute("alt")> 
256    <#if !imageAlt?has_content> 
257        <#assign imageAlt =.vars['reserved-article-title'].data> 
258    </#if> 
259    <#return imageAlt> 
260     
261</#function> 
Twitter RvstaSegSocial
Organismos lista