1<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
2<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") >
3<#assign requestContainsCategory = themeDisplay.getURLCurrent()?contains('categories') />
4<#assign assetVocabularyLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
5<#assign novedadesPortalUtil = serviceLocator.findService("com.abaco.novedades.portal.util.novedadesPortalUtil") />
6<#assign orderedEntries = novedadesPortalUtil.ordenarNovedadesPortal(entries)>
7
8<#function rand min max>
9 <#local now = .now?long?c />
10 <#local randomNum = _rand + ("0." + now?substring(now?length-1) + now?substring(now?length-2))?number />
11 <#if (randomNum > 1)>
12 <#assign _rand = randomNum % 1 />
13 <#else>
14 <#assign _rand = randomNum />
15 </#if>
16 <#return (min + ((max - min) * _rand))?round />
17</#function>
18<#assign _rand = 0.36 />
19<#assign catProfesorado = 0 />
20<#assign catCentros = 0 />
21<#assign catAlumnado = 0 />
22<#assign catFamilias = 0 />
23<#assign catConsejeria = 0 />
24
25<#assign contador = 0 />
26<#if orderedEntries?has_content>
27 <#assign unionListadoOrdenado = []>
28 <#assign numeroDestacadas = 0>
29
30 <#-- Usar el servicio para combinar y ordenar las listas -->
31 <#list orderedEntries as k, v>
32 <#if k == "destacadas">
33 <#assign numeroDestacadas = v?size>
34 </#if>
35 <#assign unionListadoOrdenado = unionListadoOrdenado + v >
36 </#list>
37
38 <#-- Configurar paginación -->
39 <#assign totalItems = unionListadoOrdenado?size />
40 <#assign itemsPerPage = 10 /> <#-- Número de elementos por página -->
41 <#assign currentPage = paramUtil.getInteger(request, "cur", 1) />
42 <#assign totalPages = ((totalItems + itemsPerPage - 1) / itemsPerPage)?int />
43 <#assign start = (currentPage - 1) * itemsPerPage />
44 <#assign end = start + itemsPerPage />
45
46 <#-- Asegurarse de que end no supere totalItems -->
47 <#if (end > totalItems)>
48 <#assign end = totalItems />
49 </#if>
50
51 <#-- Crear una lista de elementos para la página actual -->
52 <#assign contenidosPaginaActual = []>
53 <#list (start..end-1) as index>
54 <#if (index < totalItems)>
55 <#assign contenido = unionListadoOrdenado[index] />
56 <#-- Agregar a la lista de la página actual -->
57 <#assign contenidosPaginaActual = contenidosPaginaActual + [contenido] />
58 </#if>
59 </#list>
60
61 <#if contenidosPaginaActual?has_content>
62 <div class="adt-novedades-ceps">
63 <#list contenidosPaginaActual as curEntry>
64 <#assign destacadaCss = "" />
65 <#if currentPage == 1 && (numeroDestacadas > 0) && (contador < 2) >
66 <#assign destacadaCss = "destacada" />
67 <#if numeroDestacadas == 1 >
68 <#assign destacadaCss = destacadaCss + " justOne" />
69 <#assign numeroDestacadas = 0 />
70 </#if>
71 <#assign contador = contador + 1 />
72 </#if>
73 <#assign renderer = curEntry.getAssetRenderer() className = renderer.getClassName() />
74 <#if className == "com.liferay.journal.model.JournalArticle">
75 <#assign journalArticle = renderer.getArticle()
76 ddmStructureName = journalArticle.getDDMStructure().getName("es_ES")
77 templateKey = ""
78 categories = curEntry.getCategories()
79 />
80 <#if requestContainsCategory>
81 <#assign validEntry = false />
82 <#assign requestCategoryId = themeDisplay.getURLCurrent()?substring(themeDisplay.getURLCurrent()?last_index_of('/')+1) />
83 <#if requestCategoryId?is_number>
84 <#assign requestCategoryId = requestCategoryId?number />
85 <#list categories as cat>
86 <#if cat.categoryId == requestCategoryId>
87 <#assign validEntry = true />
88 </#if>
89 </#list>
90 <#if !validEntry>
91 <#continue>
92 </#if>
93 </#if>
94 </#if>
95
96 <#assign viewURL = (!stringUtil.equals(assetLinkBehavior, "showFullContent"))?then(assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry, true), assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry)) />
97 ${request.setAttribute("viewURL", viewURL )}
98 ${request.setAttribute("categories", categories )}
99
100
101 <#-- Procedimiento -->
102 <#if ddmStructureName == "Procedimiento">
103 <#assign templateKey = "109059" /> <#-- Plantilla novedades_procedimientos -->
104 <#assign templateKey = "1030656" /> <#-- Plantilla novedades_procedimientos_listado -->
105 </#if>
106
107 <#-- Contenido web -->
108 <#if ddmStructureName == "Contenido web">
109 <#assign templateKey = "522834"/> <#-- Plantilla CEP_novedades_contenido_web -->
110 </#if>
111
112 <#-- Enlace -->
113 <#if ddmStructureName == "Enlace">
114 <#assign templateKey = "712121"/> <#-- Plantilla novedades_enlace -->
115 <#assign templateKey = "1030911"/> <#-- Plantilla novedades_enlace_listado -->
116 </#if>
117 <#-- Normativa -->
118 <#if ddmStructureName == "Normativa">
119 <#assign templateKey = "273977"/> <#-- Plantilla novedades_normativa_cep -->
120 <#assign templateKey = "1030916"/> <#-- Plantilla novedades_normativa_listado -->
121 </#if>
122
123 <#assign catArray = [] />
124 <#assign catCssClass = '' />
125
126 <#list categories as category>
127 <#assign catVocabulary = assetVocabularyLocalServiceUtil.getVocabulary( category.getVocabularyId() ) />
128
129 <#-- CATEGORÍA PADRE -->
130 <#if catVocabulary.getName()?lower_case == 'perfiles'>
131 <#if category.getName()?? && (category.getName() != "" || category.getName() != null)>
132 <#assign catArray = catArray + [ category.getName() ]>
133 <#else>
134 <#assign catArray = catArray + [ 'sin-perfil' ]>
135 </#if>
136 </#if>
137 </#list>
138
139 <#if catArray?size != 0>
140 <#assign indexCatArr = rand(1, catArray?size) - 1 />
141 <#assign catName = (catArray[indexCatArr]!"sin-perfil") />
142 <#else>
143 <#assign catName = "sin-perfil" />
144 </#if>
145
146 <#if catName?lower_case == 'profesorado'>
147 <#assign catCssClass = 'default-profesorado--' + (catProfesorado % 3) />
148 <#assign catProfesorado = catProfesorado + 1 />
149 </#if>
150 <#if catName?lower_case == 'centros'>
151 <#assign catCssClass = 'default-centros--' + (catCentros % 3) />
152 <#assign catCentros = catCentros + 1 />
153 </#if>
154 <#if catName?lower_case == 'alumnado'>
155 <#assign catCssClass = 'default-alumnado--' + (catAlumnado % 3) />
156 <#assign catAlumnado = catAlumnado + 1 />
157 </#if>
158 <#if catName?lower_case == 'familias'>
159 <#assign catCssClass = 'default-familias--' + (catFamilias % 3) />
160 <#assign catFamilias = catFamilias + 1 />
161 </#if>
162 <#if catName?lower_case == 'consejeria'>
163 <#assign catCssClass = 'default-consejeria--' + (catConsejeria % 3) />
164 <#assign catConsejeria = catConsejeria + 1 />
165 </#if>
166 <#if catName?lower_case == 'sin-perfil'>
167 <#assign catCssClass = 'default-consejeria--0' />
168 </#if>
169
170 ${request.setAttribute("catCssClass", catCssClass )}
171 <div class="adt-novedades-ceps__item ${destacadaCss}">
172 <@liferay_journal["journal-article"]
173 articleId=journalArticle.getArticleId()
174 ddmTemplateKey="${templateKey}"
175 showTitle=false
176 groupId=journalArticle.getGroupId() />
177 </div>
178 </#if>
179 </#list>
180
181 <#-- Mostrar la navegación de paginación simple-->
182 <#switch paginationType>
183 <#case "simple">
184 <#if (totalPages > 1)>
185 <div class="taglib-page-iterator novedades-ceps">
186 <div class="clearfix lfr-pagination">
187 <ul class="lfr-pagination-buttons pagination">
188 <#if (currentPage > 1)>
189 <li class=" page-item"><a href="?cur=${currentPage - 1}" target="_self">Anterior</a></li>
190 <#else>
191 <li class="disabled page-item"><a href="javascript:;" target="_self">Anterior</a></li>
192 </#if>
193 <#if (currentPage < totalPages)>
194 <li class=" page-item"><a href="?cur=${currentPage + 1}" target="_self">Siguiente</a></li>
195 <#else>
196 <li class="disabled page-item"><a href="javascript:;" target="_self">Siguiente</a></li>
197 </#if>
198 </ul>
199 </div>
200 </div>
201 </#if>
202 <#break>
203 <#case "regular">
204 <#if (totalPages > 1)>
205 <div class="taglib-page-iterator novedades-ceps">
206 <div class="clearfix lfr-pagination">
207 <div class="lfr-pagination-config">
208 <div class="lfr-pagination-page-selector">
209 <div class="btn-group lfr-icon-menu current-page-menu dropdown">
210 <a href="#" class="btn btn-secondary dropdown-toggle" title="Página ${currentPage} de ${totalPages}" type="button" id="totalPagesDropdownItem" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
211 <span class="lfr-icon-menu-text">Página ${currentPage} de ${totalPages}</span>
212 <i class="lfr-icon-menu-arrow caret"></i>
213 </a>
214 <ul class="dropdown-menu lfr-menu-list direction-down pl-2" aria-labelledby="totalPagesDropdownItem" style="max-height: 120px;">
215 <#list 1..totalPages as pageNum>
216 <#if (pageNum == currentPage)>
217 <li role="presentation"><a class="dropdown-item lfr-icon-item taglib-icon" href="javascript:;" target="_self" role="menuitem"><span class="taglib-text-icon">${pageNum}</span></a></li>
218 <#else>
219 <li role="presentation"><a class="dropdown-item lfr-icon-item taglib-icon" href="?cur=${pageNum}" target="_self" role="menuitem"><span class="taglib-text-icon">${pageNum}</span></a></li>
220 </#if>
221 </#list>
222 </ul>
223 </div>
224 </div>
225 <div class="lfr-pagination-delta-selector">
226 — ${itemsPerPage} Resultados por página
227 </div>
228 </div>
229 <small class="search-results"> Mostrando el intervalo ${start+1} - ${end} de ${totalItems} resultados. </small>
230 <ul class="lfr-pagination-buttons pagination">
231 <#if (currentPage > 1)>
232 <li class="disabled first page-item"> <a href="?cur=1" target="_self"> ← Primero </a> </li>
233 <li class=" page-item"><a href="?cur=${currentPage - 1}" target="_self">Anterior</a></li>
234 <#else>
235 <li class="disabled first page-item"> <a href="javascript:;" target="_self"> ← Primero </a> </li>
236 <li class="disabled page-item"><a href="javascript:;" target="_self">Anterior</a></li>
237 </#if>
238
239 <#if (currentPage < totalPages)>
240 <li class=" page-item"><a href="?cur=${currentPage + 1}" target="_self">Siguiente</a></li>
241 <li class=" last page-item"> <a href="?cur=${totalPages?round}" target="_self"> Último → </a> </li>
242 <#else>
243 <li class="disabled page-item"><a href="javascript:;" target="_self">Siguiente</a></li>
244 <li class=" last page-item"> <a href="javascript:;" target="_self"> Último → </a> </li>
245 </#if>
246 </ul>
247 </div>
248 </div>
249 </#if>
250 <#break>
251 <#case "none">
252 <#assign layoutNovedades = layoutLocalService.getLayoutByFriendlyURL(themeDisplay.getLayout().getGroupId(), false, "/novedades") />
253 <#assign urlNovedades= portalUtil.getLayoutFullURL(layoutNovedades, themeDisplay) />
254 <div class="d-flex justify-content-center mt-4 mb-4">
255 <a href="${urlNovedades}" title="ver más novedades" class="btn btn-primario" target="_blank">ver más novedades</a>
256 </div>
257 <#break>
258 <#default>
259 <#break>
260 </#switch>
261 </div>
262 </#if>
263</#if>