Centro Cultural de Montevideo
Agenda
Filtrando por fecha:
No se han encontrado eventos.
Servicios
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 85:
Lexical error: encountered "u" (117), after "\"Captura de pantalla 2026-10-16 a las 6.02.36\\".
---end-message---
The failing expression:
==> imgGS?eval [in template "20096#20122#7622031" at line 74, column 46]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign imgUuidGS = imgGS?eval.uuid!"" [in template "20096#20122#7622031" at line 74, column 25]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService") />
4<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
5
6<#assign publicPath = themeDisplay.getPathFriendlyURLPublic() />
7<#assign siteFriendlyURL = themeDisplay.getSiteGroup().getFriendlyURL() />
8
9<#-- ID del vocabulario global (cambia esto por el ID real) -->
10<#assign vocabularyId = 7623391 />
11
12<style>
13.aecid-main .cat-Accesibilidad {background-color: #09861e;}
14.aecid-main .cat-Artes {background-color: #f5bce9;}
15.aecid-main .cat-Ciencia {background-color: #034ea2;}
16.aecid-main .cat-Cine {background-color: #540081;}
17.aecid-main .cat-Ciudadania {background-color: #33b6ba;}
18.aecid-main .cat-Cultura {background-color: #7d2721;}
19.aecid-main .cat-Debate {background-color: #8f98dc;}
20.aecid-main .cat-Diversidad {background-color: #ca09f1;}
21.aecid-main .cat-Escenicas {background-color: #f5c109;}
22.aecid-main .cat-Examenes {background-color: #ec0909;}
23.aecid-main .cat-Exposiciones {background-color: #000000;}
24.aecid-main .cat-Formacion {background-color: #e01451;}
25.aecid-main .cat-Infantil {background-color: #a4cb22;}
26.aecid-main .cat-Letras {background-color: #f39918;}
27.aecid-main .cat-Mediacion {background-color: #e5de8a;}
28.aecid-main .cat-Medioambiente {background-color: #3ec11a;}
29.aecid-main .cat-Musica {background-color: #4fc0fd;}
30.aecid-main .cat-Patrimonio {background-color: #d12929;}
31.aecid-main .cat-Radio {background-color: #f462d4;}
32.cardReco {
33 height: 500px;
34}
35
36 .btn-primary.botonCC {
37 background-color: var(--primario)!important;
38 border-color: var(--primario)!important;
39 }
40
41 @media (min-width: 992px) {
42 .cardReco {
43 height: 500px;
44 }
45}
46</style>
47
48
49<#if entries?has_content>
50<div class="contCardsReco py-50 py-lg-100">
51 <div class="container aecid-content px-3 px-lg-0">
52 <h2 class="tit-h4 pb-5 pb-lg-6 txt-medi txt-uppercase">Recomendaciones</h2>
53 <div class="col-12 p-0">
54 <div class="row justify-content-between carouselRecoCards" id="carouselRecoCards">
55 <#list entries as curEntry>
56 <#assign
57 curEntry = curEntry
58 renderer = curEntry.getAssetRenderer()
59 entryTitle = htmlUtil.escape(renderer.getTitle(locale))
60 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, renderer, curEntry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))/>
61
62 <#assign journalArticle = renderer.getArticle()/>
63 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())) />
64 <#assign entryTitle = htmlUtil.escape(renderer.getTitle(locale))/>
65 <#assign entryResumen = htmlUtil.escape(renderer.getSummary())/>
66
67 <#assign fechaIni=document.valueOf("//dynamic-element[@field-reference='startDate']/dynamic-content/text()") />
68 <#assign fechaFin=document.valueOf("//dynamic-element[@field-reference='endDate']/dynamic-content/text()") />
69
70 <#assign fecha=document.valueOf("//dynamic-element[@field-reference='FechaDelEvento']/dynamic-content/text()") />
71 <#assign imgGS=document.valueOf("//dynamic-element[@field-reference='image']/dynamic-content/text()") />
72 <#assign imgUuidGS = "" />
73 <#if imgGS?? && imgGS != "" && imgGS?trim != "{}">
74 <#assign imgUuidGS = imgGS?eval.uuid!"" />
75 </#if>
76 <#if imgUuidGS?has_content>
77 <#assign imgNameGS = imgGS?eval.title />
78 <#assign imgGroupIdGS = imgGS?eval.groupId />
79 <#assign imgAltGS = imgGS?eval.alt/>
80 </#if>
81
82 <#assign classPK = curEntry.getClassPK() />
83 <#assign assetEntry = assetEntryLocalService.fetchEntry(entry.getClassName(), classPK) />
84
85 <div class="mb-4 mb-xl-0 cardReco d-flex flex-column justify-content-between parentAssetViewUrl">
86 <div class="h-100 d-flex flex-column gap-1r position-relative"> <!-- justify-content-between -->
87 <div class="p-0">
88 <#if imgUuidGS?has_content>
89 <div class="card-reco-img-container">
90 <img class="w-100" alt="${(imgAltGS == "")?then(entryTitle, imgAltGS)}" src="/documents/${imgGroupIdGS}/0/${imgNameGS}/${imgUuidGS}" />
91 </div>
92 <#else>
93 <div class="card-reco-img-container">
94 <img class="w-100" alt="Logo de Cooperacion Española" src="/documents/d/${themeDisplay.getScopeGroup().getFriendlyURL()}/generica" />
95 </div>
96 </#if>
97 </div>
98
99 <div class="fecha-rango mt-2">
100 <#assign startDate_Data = getterUtil.getString(fechaIni)>
101 <#assign endDate_Data = getterUtil.getString(fechaFin)>
102 <#if startDate_Data?? && endDate_Data??>
103 <#assign startDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", startDate_Data, locale)>
104 <#assign endDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", endDate_Data, locale)>
105 <#if startDate_Data == endDate_Data>
106 ${dateUtil.getDate(startDate_DateObj, "dd MMMM yyyy", locale)}
107 <#else>
108 Desde ${dateUtil.getDate(startDate_DateObj, "dd MMMM yyyy", locale)} hasta ${dateUtil.getDate(endDate_DateObj, "dd MMMM yyyy", locale)}
109 </#if>
110 </#if>
111 </div>
112
113 <div class="card-text-cont">
114 <a class="title elipsis-3 enlace-total" href="${viewURL}" title="Ir a la recomendacion ${entryTitle}">${entryTitle}</a>
115 </div>
116 <!--<p class="mb-0 txt-h6 txt-lg-h5 mt-4 " tabindex="0"><span class="sr-only">${fecha}</p>-->
117
118 </div>
119 <div class="d-flex gap-1r flex-wrap">
120 <#--<a class="cat-reco cat-ver" href="#" title="Ir a la categoria">Infantil</a>
121 <a class="cat-reco cat-neg" href="#" title="Ir a la categoria">CCEBA</a>-->
122 <#if assetEntry??>
123 <#assign categoryIds = assetEntry.getCategoryIds() />
124
125 <#-- Filtrar categorías que pertenezcan al vocabulario global -->
126 <#assign categories = [] />
127 <#list categoryIds as categoryId>
128 <#assign category = assetCategoryLocalService.fetchAssetCategory(categoryId) />
129 <#if category?? && category.getVocabularyId() == vocabularyId>
130 <#assign categories += [category] />
131 </#if>
132 </#list>
133 <#if categories?has_content>
134 <#list categories as category>
135
136 <#assign cat = category.getName() />
137
138 <#assign portalURL = themeDisplay.portalURL>
139 <#assign currentPageName = themeDisplay.layout.name>
140 <!--<#assign siteName = themeDisplay.siteGroupName>
141 <#assign siteName = siteName?replace(" ", "")>
142 <#assign siteName = siteName?lower_case>-->
143 <#assign siteFriendlyURL = themeDisplay.getScopeGroup().getFriendlyURL()>
144 <#-- Esto devuelve algo como "/site-name" -->
145 <#assign siteName = siteFriendlyURL?substring(1)>
146 <!--<p>Site name: ${siteName}</p>-->
147 <#assign URLCategoria = portalURL + "/web/" + siteName + "/detalle-categorias/-/categories/" + category.getCategoryId()>
148
149
150 <#switch cat>
151 <#case "Accesibilidad / Inclusión">
152 <a class="cat-reco cat-Accesibilidad" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
153 <#break>
154 <#case "Artes Visuales">
155 <a class="cat-reco cat-Artes" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
156 <#break>
157 <#case "Ciencia / Tecnología">
158 <a class="cat-reco cat-Ciencia" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
159 <#break>
160 <#case "Cine / Audiovisual">
161 <a class="cat-reco cat-Cine" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
162 <#break>
163 <#case "Ciudadanía / Comunidad">
164 <a class="cat-reco cat-Ciudadania" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
165 <#break>
166 <#case "Cultura para el Desarrollo">
167 <a class="cat-reco cat-Cultura" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
168 <#break>
169 <#case "Debate / Pensamiento">
170 <a class="cat-reco cat-Debate" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
171 <#break>
172 <#case "Diversidad / Géneros">
173 <a class="cat-reco cat-Diversidad" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
174 <#break>
175 <#case "Escénicas">
176 <a class="cat-reco cat-Escenicas" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
177 <#break>
178 <#case "Exámenes de español">
179 <a class="cat-reco cat-Examenes" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
180 <#break>
181 <#case "Exposiciones">
182 <a class="cat-reco cat-Exposiciones" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
183 <#break>
184 <#case "Formación">
185 <a class="cat-reco cat-Formacion" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
186 <#break>
187 <#case "Infantil / Juvenil">
188 <a class="cat-reco cat-Infantil" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
189 <#break>
190 <#case "Letras">
191 <a class="cat-reco cat-Letras" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
192 <#break>
193 <#case "Mediación">
194 <a class="cat-reco cat-Mediacion" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
195 <#break>
196 <#case "Medioambiente / Sostenibilidad">
197 <a class="cat-reco cat-Medioambiente" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
198 <#break>
199 <#case "Música / Sonido">
200 <a class="cat-reco cat-Musica" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
201 <#break>
202 <#case "Patrimonio">
203 <a class="cat-reco cat-Patrimonio" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
204 <#break>
205 <#case "Radio / Pódcast">
206 <a class="cat-reco cat-Radio" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
207 <#break>
208
209 <#default>
210 <a class="cat-reco cat-neg" href="${URLCategoria}" title="Filtar Por ${cat}">${cat}</a>
211 <#break>
212 </#switch>
213 <!--<li>${category.getName()} (ID: ${category.getCategoryId()})</li>-->
214 </#list>
215 </#if>
216 </#if>
217 </div>
218 </div>
219 </#list>
220 </div>
221 </div>
222 <div class="text-center mt-6">
223 <a class="btn btn-primary ${(themeDisplay.getColorScheme().getName() == 'CENTRO-CULTURAL')?then('botonCC', '')}" href="/web${siteFriendlyURL}/actividades/actividades-recomendadas" title="Ir a la página de recomendaciones">Ver más recomendaciones</a>
224
225 </div>
226 </div>
227</div>
228</#if>
229
230<script type="text/javascript" data-senna-track="temporary">
231 $(document).ready(function () {
232 $('#carouselRecoCards').not('.slick-initialized').slick({
233 arrows: false,
234 dots: false,
235 slidesToShow: 4,
236 slidesToScroll: 2,
237 arrows: true,
238 responsive: [
239 {
240 breakpoint: 1199,
241 settings: {
242 slidesToShow: 3,
243 slidesToScroll: 1,
244 infinite: true,
245 dots: true
246 }
247 },
248 {
249 breakpoint: 991,
250 settings: {
251 slidesToShow: 2,
252 slidesToScroll: 1,
253 infinite: true,
254 dots: true
255 }
256 },
257 {
258 breakpoint: 768,
259 settings: {
260 slidesToShow: 1,
261 slidesToScroll: 1,
262 arrows: false,
263 dots: true
264 }
265 }
266 ]
267 });
268 });
269</script>





