Centro Cultural de Malabo
Content with CCE Categorías Exposiciones .
An error occurred while processing the template.
Failed to "?eval" string with this error:
---begin-message---
Syntax error in ?eval-ed string in line 1, column 53:
Lexical error: encountered "u" (117), after "\"Exposici\u00f3n de pintura \\".
---end-message---
The failing expression:
==> imgGS?eval [in template "20096#20122#7822989" at line 112, column 46]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign imgUuidGS = imgGS?eval.uuid!"" [in template "20096#20122#7822989" at line 112, column 25]
----
1<!-- AECID-CC-Listado-Recomendaciones -->
2
3<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
5<#assign journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService") />
6<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
7<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
8
9<#assign publicPath = themeDisplay.getPathFriendlyURLPublic() />
10<#assign siteFriendlyURL = themeDisplay.getSiteGroup().getFriendlyURL() />
11
12<#-- ID del vocabulario global (cambia esto por el ID real) -->
13<#assign vocabularyId = 7623391 />
14
15<style>
16.lfr-pagination, .taglib-categorization-filter {
17 max-width: 1260px;
18 margin: 1.5rem auto;
19 align-items: center;
20 display: flex;
21 padding: 0 1rem;
22}
23
24.aecid-main .cat-Accesibilidad {background-color: #09861e;}
25.aecid-main .cat-Artes {background-color: #f5bce9;}
26.aecid-main .cat-Ciencia {background-color: #034ea2;}
27.aecid-main .cat-Cine {background-color: #540081;}
28.aecid-main .cat-Ciudadania {background-color: #33b6ba;}
29.aecid-main .cat-Cultura {background-color: #7d2721;}
30.aecid-main .cat-Debate {background-color: #8f98dc;}
31.aecid-main .cat-Diversidad {background-color: #ca09f1;}
32.aecid-main .cat-Escenicas {background-color: #f5c109;}
33.aecid-main .cat-Examenes {background-color: #ec0909;}
34.aecid-main .cat-Exposiciones {background-color: #000000;}
35.aecid-main .cat-Formacion {background-color: #e01451;}
36.aecid-main .cat-Infantil {background-color: #a4cb22;}
37.aecid-main .cat-Letras {background-color: #f39918;}
38.aecid-main .cat-Mediacion {background-color: #e5de8a;}
39.aecid-main .cat-Medioambiente {background-color: #3ec11a;}
40.aecid-main .cat-Musica {background-color: #4fc0fd;}
41.aecid-main .cat-Patrimonio {background-color: #d12929;}
42.aecid-main .cat-Radio {background-color: #f462d4;}
43
44@media (min-width: 576px) {
45 .lfr-pagination, .taglib-categorization-filter {
46 max-width: 540px;
47 padding: 0;
48 }
49}
50@media (min-width: 768px) {
51 .lfr-pagination, .taglib-categorization-filter {
52 max-width: 720px;
53 }
54}
55@media (min-width: 992px) {
56 .lfr-pagination, .taglib-categorization-filter {
57 max-width: 960px;
58 }
59}
60@media (min-width: 1200px) {
61 .lfr-pagination, .taglib-categorization-filter {
62 max-width: 1180px;
63 }
64}
65@media (min-width: 1440px) {
66 .lfr-pagination, .taglib-categorization-filter {
67 max-width: 1260px;
68 }
69}
70@media (min-width: 992px) {
71 .lfr-pagination .lfr-pagination-buttons {
72 gap: 1rem;
73 margin-left: auto;
74 }
75}
76.taglib-categorization-filter em {
77 margin-left: 1rem;
78 }
79</style>
80
81<#if entries?has_content>
82 <div class="fd-gris-fondo py-50 py-lg-100 cont-convo">
83 <div class="container px-3 px-lg-0">
84 <div class="content-cards cols-items-4">
85 <#-- Iterar sobre los contenidos obtenidos en la ADT -->
86 <#list entries as curEntry>
87 <#assign
88 curEntry = curEntry
89 renderer = curEntry.getAssetRenderer()
90 entryTitle = htmlUtil.escape(renderer.getTitle(locale))
91 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, renderer, curEntry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))/>
92 <#assign journalArticle = renderer.getArticle()/>
93 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())) />
94 <#assign entryTitle = htmlUtil.escape(renderer.getTitle(locale))/>
95 <#assign entryResumen = htmlUtil.escape(renderer.getSummary())/>
96
97 <#assign fechaIni=document.valueOf("//dynamic-element[@field-reference='startDate']/dynamic-content/text()") />
98 <#assign fechaFin=document.valueOf("//dynamic-element[@field-reference='endDate']/dynamic-content/text()") />
99
100 <#assign imgGS=document.valueOf("//dynamic-element[@field-reference='image']/dynamic-content/text()") />
101 <#assign imgUuidGS = "" />
102 <#assign imgNameGS = "" />
103 <#assign imgGroupIdGS = "" />
104 <#assign imgAltGS = "" />
105
106 <#assign imgGS = imgGS?replace("\\u2019", "") />
107 <#assign imgGS = imgGS?replace("\\u00e7", "") />
108 <#assign imgGS = imgGS?replace("\\u00b7", "") />
109 <#assign imgGS = imgGS?replace("\\u2013", "-") />
110
111 <#if imgGS?? && imgGS != "" && imgGS?trim != "{}">
112 <#assign imgUuidGS = imgGS?eval.uuid!"" />
113 </#if>
114 <#if imgUuidGS?has_content>
115 <#assign imgNameGS = imgGS?eval.title />
116 <#assign imgGroupIdGS = imgGS?eval.groupId />
117 <#assign imgAltGS = imgGS?eval.alt/>
118
119 <#assign imgAltGS = imgAltGS?replace('"', "'")>
120 <#assign imgAltGS = imgAltGS?replace('/', "-")>
121 <#assign imgAltGS = imgAltGS?replace('<', " ")>
122 <#assign imgAltGS = imgAltGS?replace('>', " ")>
123 <#assign imgAltGS = imgAltGS?replace('&', " ")>
124 </#if>
125
126 <#assign classPK = curEntry.getClassPK() />
127 <#assign assetEntry = assetEntryLocalService.fetchEntry(entry.getClassName(), classPK) />
128 <div class="cardReco h-auto">
129 <div class="h-100 d-flex flex-column justify-content-between">
130 <div class="asset-abstract">
131 <div class="lfr-meta-actions asset-actions">
132 <@getEditIcon />
133 </div>
134 </div>
135
136 <div class="d-flex flex-column h-100 gap-1r position-relative">
137 <div class="p-0">
138 <#if imgUuidGS?has_content>
139 <div class="card-reco-img-container">
140 <img class="w-100" alt="${imgAltGS}" src="/documents/${imgGroupIdGS}/0/${imgNameGS}/${imgUuidGS}" />
141 </div>
142 <#else>
143 <div class="card-reco-img-container">
144 <!--<img class="w-100" alt="imagen de la noticia" src="${themeDisplay.getPathThemeImages()}/icons/svg/default_image.svg" />-->
145 <img class="w-100" alt="Imagen de AECID" src="/documents/d/${themeDisplay.getScopeGroup().getFriendlyURL()}/generica" />
146 </div>
147 </#if>
148 </div>
149
150 <!--<p class="mb-0 txt-h6 txt-lg-h5 mt-4" tabindex="0"><span class="sr-only">${languageUtil.get(locale, "fecha.de.la.noticia")}: </span>${dateUtil.getDate(journalArticle.getDisplayDate(), "dd/MM", locale)}</p>-->
151
152 <div class="fecha-rango">
153 <#if fechaIni?has_content>
154 <#assign startDate_Data = getterUtil.getString(fechaIni)>
155 <#assign endDate_Data = getterUtil.getString(fechaFin)>
156 <#if startDate_Data?? && endDate_Data??>
157 <#assign startDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", startDate_Data, locale)>
158 <#assign endDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", endDate_Data, locale)>
159 <#if startDate_Data == endDate_Data>
160 ${dateUtil.getDate(startDate_DateObj, "dd MMMM yyyy", locale)}
161 <#else>
162 Desde ${dateUtil.getDate(startDate_DateObj, "dd MMMM yyyy", locale)} hasta ${dateUtil.getDate(endDate_DateObj, "dd MMMM yyyy", locale)}
163 </#if>
164 </#if>
165 </#if>
166 </div>
167
168 <div class="card-text-cont">
169 <a class="title elipsis-3 enlace-total" href="${viewURL}" title="Ir a la recomendacion ${entryTitle}">${entryTitle}</a>
170 </div>
171 </div>
172 <div class="d-flex gap-1r flex-wrap mt-3">
173 <#if assetEntry??>
174 <#assign categoryIds = assetEntry.getCategoryIds() />
175
176 <#-- Filtrar categorías que pertenezcan al vocabulario global -->
177 <#assign categories = [] />
178 <#list categoryIds as categoryId>
179 <#assign category = assetCategoryLocalService.fetchAssetCategory(categoryId) />
180 <#if category?? && category.getVocabularyId() == vocabularyId>
181 <#assign categories += [category] />
182 </#if>
183 </#list>
184
185 <#if categories?has_content>
186 <#list categories as category>
187
188 <#assign cat = category.getName() />
189 <#assign portalURL = themeDisplay.portalURL>
190 <#assign currentPageName = themeDisplay.layout.name>
191
192 <!--<#assign siteName = themeDisplay.siteGroupName>
193 <#assign siteName = siteName?replace(" ", "")>
194 <#assign siteName = siteName?lower_case>-->
195 <#assign siteFriendlyURL = themeDisplay.getScopeGroup().getFriendlyURL()>
196 <#-- Esto devuelve algo como "/site-name" -->
197 <#assign siteName = siteFriendlyURL?substring(1)>
198 <!--<p>Site name: ${siteName}</p>-->
199
200 <#assign URLCategoria = portalURL + "/web/" + siteName + "/detalle-categorias/-/categories/" + category.getCategoryId()>
201
202 <#switch cat>
203 <#case "Accesibilidad / Inclusión">
204 <a class="cat-reco cat-Accesibilidad" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
205 <#break>
206 <#case "Artes Visuales">
207 <a class="cat-reco cat-Artes" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
208 <#break>
209 <#case "Ciencia / Tecnología">
210 <a class="cat-reco cat-Ciencia" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
211 <#break>
212 <#case "Cine / Audiovisual">
213 <a class="cat-reco cat-Cine" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
214 <#break>
215 <#case "Ciudadanía / Comunidad">
216 <a class="cat-reco cat-Ciudadania" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
217 <#break>
218 <#case "Cultura para el Desarrollo">
219 <a class="cat-reco cat-Cultura" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
220 <#break>
221 <#case "Debate / Pensamiento">
222 <a class="cat-reco cat-Debate" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
223 <#break>
224 <#case "Diversidad / Géneros">
225 <a class="cat-reco cat-Diversidad" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
226 <#break>
227 <#case "Escénicas">
228 <a class="cat-reco cat-Escenicas" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
229 <#break>
230 <#case "Exámenes de español">
231 <a class="cat-reco cat-Examenes" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
232 <#break>
233 <#case "Exposiciones">
234 <a class="cat-reco cat-Exposiciones" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
235 <#break>
236 <#case "Formación">
237 <a class="cat-reco cat-Formacion" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
238 <#break>
239 <#case "Infantil / Juvenil">
240 <a class="cat-reco cat-Infantil" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
241 <#break>
242 <#case "Letras">
243 <a class="cat-reco cat-Letras" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
244 <#break>
245 <#case "Mediación">
246 <a class="cat-reco cat-Mediacion" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
247 <#break>
248 <#case "Medioambiente / Sostenibilidad">
249 <a class="cat-reco cat-Medioambiente" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
250 <#break>
251 <#case "Música / Sonido">
252 <a class="cat-reco cat-Musica" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
253 <#break>
254 <#case "Patrimonio">
255 <a class="cat-reco cat-Patrimonio" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
256 <#break>
257 <#case "Radio / Pódcast">
258 <a class="cat-reco cat-Radio" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
259 <#break>
260
261 <#default>
262 <a class="cat-reco cat-neg" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
263 <#break>
264 </#switch>
265
266 <!--<li>${category.getName()} (ID: ${category.getCategoryId()})</li>-->
267 </#list>
268 </#if>
269 </#if>
270 </div>
271 </div>
272 </div>
273 </#list>
274 </div>
275 </div>
276 </div>
277</#if>
278
279<#-- CARGA DE LA EDICIÓN EN VENTANA A PARTE -->
280<#macro getEditIcon>
281 <#if renderer.hasEditPermission(themeDisplay.getPermissionChecker())>
282 <#assign editPortletURL = renderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("NORMAL"), themeDisplay.getURLCurrent())!"" />
283 <#if validator.isNotNull(editPortletURL)>
284 <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) />
285 <@liferay_ui["icon"]
286 cssClass="icon-monospaced visible-interaction text-left"
287 icon="pencil"
288 markupView="lexicon"
289 message=title
290 url=editPortletURL.toString()
291 />
292 </#if>
293 </#if>
294</#macro>
295
296<#macro getFullContent>
297 <#assign pagina = renderer.render(renderRequest, renderResponse, "full_content") />
298 <@liferay_util["include"]
299 page="${pagina}"
300 />
301</#macro>


