Ruta de navegación
Publicador de contenidos
Se ha producido un error al procesar la plantilla.
Failed to "?eval" string with this error:
---begin-message---
Syntax error in ?eval-ed string in line 1, column 201:
Lexical error: encountered "u" (117), after "\"La directora general del Instituto Nacional de la Seguridad Social (INSS), Carmela Armesto, durante su intervenci\u00f3n en el encuentro \\".
---end-message---
The failing expression:
==> newsImage?eval [in template "20097#20123#NOTICIA" at line 182, column 70]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign imageData = newsImage?eval [in template "20097#20123#NOTICIA" in macro "getRelatedNews" at line 182, column 49]
- Reached through: @getRelatedNews [in template "20097#20123#NOTICIA" at line 127, column 4]
----
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">
32 ${Antetitulo.getData()}
33 </div>
34 </#if>
35 <#if title?? && title.getData() != "">
36 <div 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 </div>
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 <div class="h4 col-12 mb-4"><@liferay_ui["message"] key="related.news" /></div>
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}"
193 title="Ir al contenido relacionado: ${newsTitle}">${newsTitle}</a>
194 </div>
195 <#elseif renderRequest.portlet.portletName == "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" >
196 <div class="card-body shadow">
197 <a class="ss-text-link"
198 href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, related)}" title="Ir al contenido relacionado: ${newsTitle}">${newsTitle}</a>
199 </div>
200 </#if>
201 </#if>
202 </div>
203 </div>
204 </#if>
205 </#if>
206 </#if>
207 </#if>
208 </#list>
209 </div>
210 </#if>
211</#macro>
212
213<#function getField field languageId defaultLanguageId xml>
214 <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]">
215 <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]">
216 <#local selector = saxReaderUtil.createXPath(localeSelector)>
217 <#local value = selector.selectSingleNode(xml)!>
218 <#if value?has_content><#return value.getText()></#if>
219 <#local selector = saxReaderUtil.createXPath(defaultSelector)>
220 <#local value = selector.selectSingleNode(xml)!>
221 <#if value?has_content><#return value.getText()></#if>
222 <#return "">
223</#function>
224
225<#function parseXml xpath xml>
226 <#local selector = saxReaderUtil.createXPath(xpath)>
227 <#local result = selector.selectSingleNode(xml)!>
228 <#if result?has_content><#return result.getStringValue()></#if>
229 <#return "">
230</#function>
231
232<#function getDocumentURL documentJson>
233
234 <#attempt>
235 <#if documentJson?has_content>
236 <#assign
237 uuid = documentJson.uuid
238 groupId = documentJson.groupId
239 dlFile = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid,groupId?number)
240 documentURL = dlUtil.getPreviewURL(dlFile, dlFile.getFileVersion(), themeDisplay, '')
241 />
242 <#return documentURL>
243 </#if>
244 <#recover>
245
246 <#assign documentURL ="${themeDisplay.getPathThemeImages()}/ImagenDefectoNoticia.png"/>
247 <#return documentURL>
248 <!-- Si se produce una excepción, haz algo aquí -->
249
250 </#attempt>
251
252 <#return ''>
253</#function>
254
255<#function getImageAlt imageVar>
256 <#assign imageAlt = imageVar.getAttribute("alt")>
257 <#if !imageAlt?has_content>
258 <#assign imageAlt =.vars['reserved-article-title'].data>
259 </#if>
260 <#return imageAlt>
261
262</#function>
Publicador de contenidos
- 0
- 1
- 2
- 3
Lo más leído
Para que el componente funcione correctamente, debe configurar el código de la vista





