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 177:
Lexical error: encountered "u" (117), after "\"Elma Saiz, durante su participaci\u00f3n en un di\u00e1logo organizado por el Cercle d\u00b4Economia en Barcelona sobre \\".
---end-message---
The failing expression:
==> newsImage?eval [in template "20097#20123#NOTICIA" at line 185, column 126]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign imageData = newsImage?eval [in template "20097#20123#NOTICIA" in macro "getRelatedNews" at line 185, column 105]
- Reached through: @getRelatedNews [in template "20097#20123#NOTICIA" at line 130, 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
127</div>
128
129 <!-- Contenidos relacionados -->
130 <@getRelatedNews />
131
132<script type="text/javascript">
133 // Correccion del scroll automatico que se realiza en el detalle de las noticias
134 var esDetalleNoticia = true;
135</script>
136
137<!-- Contenidos relacionados -->
138<#macro getRelatedNews>
139
140 <#assign tagsListIds = []>
141 <#list tagList as tag>
142 <#assign tagsListIds = tagsListIds + [tag.tagId]>
143 </#list>
144
145 <#assign groupIds = [groupId]>
146 <#assign void = assetEntryQuery.setGroupIds(groupIds)>
147 <#assign void = assetEntryQuery.setClassName(className)>
148 <#assign void = assetEntryQuery.setAnyTagIds(tagsListIds)>
149 <#assign void = assetEntryQuery.setOrderByCol1("publishDate")>
150 <#assign relatedNews = assetEntryLocalService.getEntries(assetEntryQuery)>
151
152 <#if relatedNews?has_content && (relatedNews?size > 1) && (tagsListIds?size >= 1)>
153
154 <#assign baseUrl = themeDisplay.getScopeGroup().getPathFriendlyURL(themeDisplay.getLayout().isPrivateLayout(),themeDisplay)>
155 <#assign groupUrl = groupLocalService.getGroup(themeDisplay.getLayout().getGroupId()).getFriendlyURL()>
156
157 <#assign relatedCount = 0 >
158 <nav class="row mb-5 mt-5">
159 <div class="h4 col-12 mb-4"><@liferay_ui["message"] key="related.news" /></div>
160 <ul class="row mb-5 mt-5 list-related-news list-related-news">
161 <#list relatedNews as related>
162 <#if journalArticleLocalService.getArticlesByResourcePrimKey(related.getClassPK())?has_content && (journalArticleLocalService.getArticlesByResourcePrimKey(related.getClassPK())?size >= 1)>
163 <#if relatedCount < 3>
164
165 <#if related.getClassName() == className>
166
167 <#assign relatedCount = relatedCount + 1/>
168
169 <#assign assetRenderer = related.getAssetRenderer()/>
170 <#assign journalArticle = assetRenderer.getAssetObject() />
171
172 <#-- Si es contenido web y de la misma estructura-->
173 <#if articleId != journalArticle.articleId && currentArticle.getDDMStructureKey() == journalArticle.getDDMStructureKey()>
174 <li class="col-12 col-md-6 col-xl-4">
175 <#assign document = saxReaderUtil.read(journalArticle.getContent())>
176 <#assign rootElement = document.getRootElement()>
177 <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)>
178 <#assign layoutURL = journalArticle.urlTitle />
179 <#assign newsTitle = getField("title", locale, defaultLanguageId, rootElement)!>
180 <#assign newsImage = getField("newsImage", locale, defaultLanguageId, rootElement)!>
181 <div class="ss-card ss-card--news card">
182 <#if newsImage?has_content>
183 <div class="card-img-top">
184
185 <#assign imageData = newsImage?eval />
186 <#assign image = getDocumentURL(imageData)/>
187 <img src="${image}" alt="${imageAlt}"/>
188 </div>
189 </#if>
190 <#if newsTitle?has_content && newsTitle != "">
191 <#assign newsUrl = getterUtil.getString(assetRenderer.getURLViewInContext(renderRequest, renderResponse,null)) />
192 <#if validator.isNotNull(newsUrl) >
193 <div class="card-body shadow">
194 <a class="ss-text-link"
195 href="${newsUrl}"
196 title="Ir al contenido relacionado: ${newsTitle}">${newsTitle}</a>
197 </div>
198 <#elseif renderRequest.portlet.portletName == "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" >
199 <div class="card-body shadow">
200 <a class="ss-text-link"
201 href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, related)}" title="Ir al contenido relacionado: ${newsTitle}">${newsTitle}</a>
202 </div>
203 </#if>
204 </#if>
205 </div>
206 </li>
207 </#if>
208 </#if>
209 </#if>
210 </#if>
211 </#list>
212 </ul>
213 </nav>
214 </#if>
215</#macro>
216
217<#function getField field languageId defaultLanguageId xml>
218 <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]">
219 <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]">
220 <#local selector = saxReaderUtil.createXPath(localeSelector)>
221 <#local value = selector.selectSingleNode(xml)!>
222 <#if value?has_content><#return value.getText()></#if>
223 <#local selector = saxReaderUtil.createXPath(defaultSelector)>
224 <#local value = selector.selectSingleNode(xml)!>
225 <#if value?has_content><#return value.getText()></#if>
226 <#return "">
227</#function>
228
229<#function parseXml xpath xml>
230 <#local selector = saxReaderUtil.createXPath(xpath)>
231 <#local result = selector.selectSingleNode(xml)!>
232 <#if result?has_content><#return result.getStringValue()></#if>
233 <#return "">
234</#function>
235
236<#function getDocumentURL documentJson>
237
238 <#attempt>
239 <#if documentJson?has_content>
240 <#assign
241 uuid = documentJson.uuid
242 groupId = documentJson.groupId
243 dlFile = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid,groupId?number)
244 documentURL = dlUtil.getPreviewURL(dlFile, dlFile.getFileVersion(), themeDisplay, '')
245 />
246 <#return documentURL>
247 </#if>
248 <#recover>
249
250 <#assign documentURL ="${themeDisplay.getPathThemeImages()}/ImagenDefectoNoticia.png"/>
251 <#return documentURL>
252 <!-- Si se produce una excepción, haz algo aquí -->
253
254 </#attempt>
255
256 <#return ''>
257</#function>
258
259<#function getImageAlt imageVar>
260 <#assign imageAlt = imageVar.getAttribute("alt")>
261 <#if !imageAlt?has_content>
262 <#assign imageAlt =.vars['reserved-article-title'].data>
263 </#if>
264 <#return imageAlt>
265
266</#function>
Publicador de contenidos
- 0
- 1
- 2
- 3
Lo más leído





