Programas e Iniciativas
Se ha producido un error al procesar la plantilla.
Range start index 120 is out of bounds, because the sliced sequence has only 115 element(s). (Note that indices are 0-based). The blamed expression: ==> begin..(totalEle-one) [in template "842907#842945#5675675" at line 434, column 46] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign finalEntries = finalEntries[b... [in template "842907#842945#5675675" at line 434, column 9] ----
1<#--FTL de funciones genericas-->
2<#assign funcionesCustomId = layout.getGroup().getExpandoBridge().getAttribute("iybg-ftl-funciones")>
3
4<#-- Servicios -->
5<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
7<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")/>
8<#assign searcher = serviceLocator.findService("net.juventud.buscador.categorias.service.SearchService")>
9<#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService") />
10<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
11<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") />
12<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
13
14<#assign zero = getterUtil.getInteger("0")>
15<#assign one = getterUtil.getInteger("1")>
16<#assign currentPag = one>
17<#assign delta = getterUtil.getLong("12")>
18<#assign numElemFila = getterUtil.getLong("3")>
19<#assign maxDescLength = getterUtil.getLong("200")>
20<#assign group = groupLocalService.getGroup(groupId)/>
21<#assign groupFriendlyURL = group.getFriendlyURL() />
22<#assign renderURL = themeDisplay.getURLCurrent()>
23<#assign params = renderURL?split("&")>
24<#assign categoriesId = "">
25<#assign filtro = "">
26<#assign urlEncoder = staticUtil["java.net.URLEncoder"]>
27<#assign completeCurrentRedirecUrl = urlEncoder.encode(themeDisplay.getPortalURL() + renderURL,"UTF-8")>
28 <#assign temaseleccionado="" >
29 <#assign comarcaseleccionada="" >
30 <#assign texto="" >
31 <#assign comarcaTodasCategoryId = themeDisplay.getThemeSetting("comarca_todas_categoryId")>
32
33<#list params as param>
34
35 <#assign paramLength = getterUtil.getInteger(param?length)>
36 <#assign equalsIndex = zero>
37
38 <#if param?index_of("=") != -1>
39 <#assign equalsIndex = getterUtil.getInteger(param?index_of("="))>
40
41 <#if param?index_of("zx=") != -1>
42 <#assign currentzx = getterUtil.getLong(param[equalsIndex..(paramLength-1)])>
43 <#assign renderURL = renderURL?replace("zx=", "")>
44 <#assign oldParam = "zx=" + currentzx>
45 <#assign renderURL = renderURL?replace(oldParam, "")>
46 </#if>
47 <#assign equalsIndex = equalsIndex + one>
48 </#if>
49
50 <#if param?contains("categoryId")>
51 <#assign replaceCategories = param?substring(equalsIndex,paramLength)>
52 <#assign categoriesId =replaceCategories?replace("%2C", ",")>
53
54 </#if>
55 <#if param?contains("page")>
56 <#assign currentPag = getterUtil.getLong(param[equalsIndex..(paramLength-1)])>
57 <#assign oldParam = "&page=" + currentPag>
58 <#assign renderURL = renderURL?replace(oldParam, "")>
59 <#assign oldParam = "?page=" + currentPag>
60 <#assign renderURL = renderURL?replace(oldParam, "")>
61 </#if>
62 <#if param?contains("conv")>
63 <#assign filtro = "conv">
64 <#assign oldParam = "&conv">
65 <#assign renderURL = renderURL?replace(oldParam, "")>
66 <#assign oldParam = "?conv">
67 <#assign renderURL = renderURL?replace(oldParam, "")>
68 </#if>
69
70</#list>
71
72
73<#if (categoriesId?split(",")?size > 1)>
74 <#assign temaseleccionado=categoriesId?split(",")[0] >
75 <#assign comarcasCategory=categoriesId?split(",")[1] >
76
77
78
79
80 <#if !validator.equals("", temaseleccionado?trim)> <#-- SE SELECCIONADO TEMA-->
81 <#if !validator.equals("", comarcasCategory?trim)><#-- SE SELECCIONADO COMARCA-->
82
83 <#assign comarcaseleccionada="1" />
84 <#assign categorias = temaseleccionado + "," + comarcasCategory>
85 <#assign categoriastodascomarcas = temaseleccionado + "," + comarcaTodasCategoryId>
86 <#if searcher?exists>
87 <#assign finalEntries1 = searcher.searchContents(entries, categorias, null, filtro)>
88 <#assign finalEntries2 = searcher.searchContents(entries, categoriastodascomarcas, null, filtro)>
89
90 <#assign finalEntries1Ordered = []/>
91 <#assign finalEntries2Ordered = []/>
92 <#assign listaNueva =[]/>
93 <#assign listaNueva2 =[]/>
94
95 <#list finalEntries1 as lista>
96
97 <#assign assetRenderer = lista.getAssetRenderer()>
98 <#assign journalArticle = assetRenderer.getAssetObject()>
99
100 <#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() />
101 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
102 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
103
104
105 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
106 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
107
108
109 <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
110
111
112 <#assign listaNueva =listaNueva+ [currentArticleTitulo.getData()+"##"+currentArticleAssetEntryId]/>
113
114
115 </#list>
116 <#--recorrrer la lista y recoger de nuevo las assetEntryes-->
117 <#list listaNueva?sort as listaComarcaOrdenada>
118 <#--${listaComarcaOrdenada}<br>-->
119 <#assign id_entry = listaComarcaOrdenada?keep_after_last("##") />
120 <#assign finalEntries1Ordered =finalEntries1Ordered+[assetEntryLocalService.getAssetEntry(id_entry?number)] />
121
122
123 </#list>
124
125 <#list finalEntries2 as lista2>
126
127 <#assign assetRenderer = lista2.getAssetRenderer()>
128 <#assign journalArticle = assetRenderer.getAssetObject()>
129
130 <#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() />
131 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
132 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
133
134
135 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
136 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
137
138
139 <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
140
141
142 <#assign listaNueva2 =listaNueva2+ [currentArticleTitulo.getData()+"##"+currentArticleAssetEntryId] />
143
144
145 </#list>
146 <#list listaNueva2?sort as listaDipuOrdenada>
147 <#--${listaDipuOrdenada}<br>-->
148 <#assign id_entry2 = listaDipuOrdenada?keep_after_last("##") />
149
150 <#assign finalEntries2Ordered =finalEntries2Ordered+[assetEntryLocalService.getAssetEntry(id_entry2?number)] />
151
152 </#list>
153
154 <#assign finalEntries =finalEntries1Ordered+finalEntries2Ordered >
155 </#if >
156
157 <#else><#-- NO SE SELECCIONADO COMARCA-->
158
159 <#if searcher?exists>
160 <#assign finalEntries = searcher.searchContents(entries, temaseleccionado, null, filtro)>
161 <#--ORDERNA LSITAS -->
162 <#assign finalEntriesOrdered = []/>
163 <#assign listaNueva =[]/>
164 <#list finalEntries as lista>
165
166 <#assign assetRenderer = lista.getAssetRenderer()>
167 <#assign journalArticle = assetRenderer.getAssetObject()>
168
169 <#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() />
170 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
171 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
172
173
174 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
175 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
176
177
178 <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
179
180
181 <#assign listaNueva =listaNueva+ [currentArticleTitulo.getData()+"##"+currentArticleAssetEntryId]/>
182
183
184 </#list>
185 <#--recorrrer la lista y recoger de nuevo las assetEntryes-->
186 <#list listaNueva?sort as listaComarcaOrdenada>
187 <#--${listaComarcaOrdenada}<br>-->
188 <#assign id_entry = listaComarcaOrdenada?keep_after_last("##") />
189 <#assign finalEntriesOrdered =finalEntriesOrdered+[assetEntryLocalService.getAssetEntry(id_entry?number)] />
190
191
192 </#list>
193 <#assign finalEntries =finalEntriesOrdered />
194 <#--FIN ORDERNA LSITAS -->
195 </#if >
196
197 </#if >
198 <#else><#-- NO SE HA SELECCIONADO TEMA-->
199
200 <#if !validator.equals("", comarcasCategory?trim)><#-- SE SELECCIONADO COMARCA-->
201
202 <#assign comarcaseleccionada="1" />
203 <#if searcher?exists>
204 <#assign finalEntries1 = searcher.searchContents(entries, comarcasCategory, null, filtro)>
205 <#assign finalEntries2 = searcher.searchContents(entries, comarcaTodasCategoryId, null, filtro)>
206 <#assign finalEntries1Ordered = []/>
207 <#assign finalEntries2Ordered = []/>
208
209 </#if >
210 <#--nuevo-->
211 <#assign listaNueva =[]/>
212 <#assign listaNueva2 =[]/>
213
214 <#list finalEntries1 as lista>
215
216 <#assign assetRenderer = lista.getAssetRenderer()>
217 <#assign journalArticle = assetRenderer.getAssetObject()>
218
219 <#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() />
220 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
221 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
222
223
224 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
225 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
226
227
228 <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
229
230
231 <#assign listaNueva =listaNueva+ [currentArticleTitulo.getData()+"##"+currentArticleAssetEntryId]/>
232
233
234 </#list>
235 <#--recorrrer la lista y recoger de nuevo las assetEntryes-->
236 <#list listaNueva?sort as listaComarcaOrdenada>
237 <#--${listaComarcaOrdenada}<br>-->
238 <#assign id_entry = listaComarcaOrdenada?keep_after_last("##") />
239 <#assign finalEntries1Ordered =finalEntries1Ordered+[assetEntryLocalService.getAssetEntry(id_entry?number)] />
240
241
242 </#list>
243
244 <#list finalEntries2 as lista2>
245
246 <#assign assetRenderer = lista2.getAssetRenderer()>
247 <#assign journalArticle = assetRenderer.getAssetObject()>
248
249 <#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() />
250 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
251 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
252
253
254 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
255 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
256
257
258 <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
259
260
261 <#assign listaNueva2 =listaNueva2+ [currentArticleTitulo.getData()+"##"+currentArticleAssetEntryId] />
262
263
264 </#list>
265 <#list listaNueva2?sort as listaDipuOrdenada>
266 <#--${listaDipuOrdenada}<br>-->
267 <#assign id_entry2 = listaDipuOrdenada?keep_after_last("##") />
268
269 <#assign finalEntries2Ordered =finalEntries2Ordered+[assetEntryLocalService.getAssetEntry(id_entry2?number)] />
270
271 </#list>
272
273 <#assign finalEntries =finalEntries1Ordered+finalEntries2Ordered >
274
275 <#else><#-- NO SE SELECCIONADO COMARCA-->
276
277 <#if searcher?exists>
278 <#assign finalEntries = searcher.searchContents(entries, "", null, filtro)>
279 <#--ORDERNAR LA LISTA:-->
280 <#assign finalEntriesOrdered = []/>
281 <#assign listaNueva =[]/>
282 <#list finalEntries as lista>
283
284 <#assign assetRenderer = lista.getAssetRenderer()>
285 <#assign journalArticle = assetRenderer.getAssetObject()>
286
287 <#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() />
288 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
289 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
290
291
292 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
293 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
294
295
296 <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
297
298
299 <#assign listaNueva =listaNueva+ [currentArticleTitulo.getData()+"##"+currentArticleAssetEntryId]/>
300
301
302 </#list>
303 <#--recorrrer la lista y recoger de nuevo las assetEntryes-->
304 <#list listaNueva?sort as listaComarcaOrdenada>
305 <#--${listaComarcaOrdenada}<br>-->
306 <#assign id_entry = listaComarcaOrdenada?keep_after_last("##") />
307 <#assign finalEntriesOrdered =finalEntriesOrdered+[assetEntryLocalService.getAssetEntry(id_entry?number)] />
308
309
310 </#list>
311 <#assign finalEntries =finalEntriesOrdered />
312 <#--FIN ORDERNA LSITAS -->
313
314 </#if >
315 </#if >
316 </#if>
317<#else>
318
319
320 <#assign finalEntries = searcher.searchContents(entries, "", null, filtro)>
321 <#--ORDERNAR LA LISTA:-->
322
323 <#assign finalEntriesOrdered = []/>
324 <#assign listaNueva =[]/>
325 <#list finalEntries as lista>
326
327 <#assign assetRenderer = lista.getAssetRenderer()>
328 <#assign journalArticle = assetRenderer.getAssetObject()>
329
330 <#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() />
331 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
332 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
333
334
335 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
336 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
337
338
339 <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
340
341
342 <#assign listaNueva =listaNueva+ [currentArticleTitulo.getData()+"##"+currentArticleAssetEntryId]/>
343
344
345 </#list>
346 <#--recorrrer la lista y recoger de nuevo las assetEntryes-->
347 <#list listaNueva?sort as listaComarcaOrdenada>
348 <#--${listaComarcaOrdenada}<br>-->
349 <#assign id_entry = listaComarcaOrdenada?keep_after_last("##") />
350 <#assign finalEntriesOrdered =finalEntriesOrdered+[assetEntryLocalService.getAssetEntry(id_entry?number)] />
351
352
353 </#list>
354 <#assign finalEntries =finalEntriesOrdered />
355
356 <#--FIN ORDERNAR LA LISTA:-->
357</#if>
358
359
360
361
362<#-- ---------------------------------------------------------------------------------------------------- -->
363
364
365
366<#-- ---------------------------------------------------------------------------------------------------- -->
367<#assign beginIndex = currentPag - one>
368<#assign begin = delta * beginIndex>
369
370<#assign end = begin + delta>
371
372<#assign totalEntriesSize = finalEntries?size>
373
374
375<#assign totalPag = getterUtil.getInteger((finalEntries?size)/delta)>
376<#if (finalEntries?size > delta)>
377 <#assign totalPag = totalPag + one>
378</#if>
379
380<#assign totalPagMod = finalEntries?size%delta>
381<#assign totalEle = finalEntries?size>
382<#assign renderPam = "&page=">
383<#if !renderURL?contains("?")>
384 <#assign renderPam = "?page=">
385</#if>
386
387<#assign firstURL = renderURL + renderPam + one>
388<#assign lastURL = renderURL + renderPam + totalPag>
389
390<#if (totalPag > one)>
391 <#if (currentPag < totalPag)>
392 <#assign nextValue = currentPag + one>
393 <#else>
394 <#assign nextValue = totalPag>
395 </#if>
396
397 <#if (currentPag > one)>
398 <#assign previousValue = currentPag - one>
399 <#else>
400 <#assign previousValue = one>
401 </#if>
402<#else>
403 <#assign nextValue = one>
404 <#assign previousValue = one>
405</#if>
406
407<#assign nextURL = renderURL + renderPam + nextValue>
408<#assign previousURL = renderURL + renderPam + previousValue>
409<#assign message = delta>
410<#assign init = (delta * (currentPag - one)) + one>
411<#assign final = delta * currentPag>
412
413<#if (totalPag > one)>
414 <#if (end < totalEle)>
415 <#assign parameters = [init, end, totalEle]>
416 <#else>
417 <#assign parameters = [init, totalEle, totalEle]>
418 </#if>
419
420 <#assign message = languageUtil.format(locale, "showing-x-x-of-x-results", parameters)>
421<#else>
422 <#assign parameters = [totalEle]>
423 <#if (totalEle == one)>
424 <#assign message = languageUtil.format(locale, "showing-x-result", parameters)>
425 <#else>
426 <#assign message = languageUtil.format(locale, "showing-x-results", parameters)>
427 </#if>
428</#if>
429
430<#if (finalEntries?size > zero)>
431 <#if (end < totalEle)>
432 <#assign finalEntries = finalEntries[begin..(end-one)]>
433 <#else>
434 <#assign finalEntries = finalEntries[begin..(totalEle-one)]>
435 </#if>
436</#if>
437
438<div class="iy-strctures-card-container">
439<div class="iybg-container">
440
441<h2><span class="iy-text-color-red iy-text-size-XL">${totalEle}</span>
442 <#if validator.equals("1", comarcaseleccionada) >
443 <#if validator.equals(locale.getLanguage(),"es")>
444 <#assign texto= "(Dirigidas a las personas residentes en la comarca seleccionada)" />
445 <#else>
446 <#assign texto= " (Hautatutako eskualdean bizi diren pertsonei zuzenduak) " />
447 </#if>
448
449 </#if>
450
451
452 <#if (totalEle == one)>
453 <@liferay.language key="iybg.programas.iniciativa.encontrada.upper"/>
454 <span class="iybg_alignedSmallTxt">${texto}</span>
455
456 <#else>
457 <@liferay.language key="iybg.programas.iniciativas.encontradas.upper"/><span class="iybg_alignedSmallTxt">${texto}</span>
458 </#if>
459</h2>
460
461<#assign isConv=getterUtil.getBoolean("false")>
462<#if filtro?exists && filtro=="conv">
463 <#assign isConv=getterUtil.getBoolean("true")>
464</#if>
465
466
467<nav class="nav red-separated-bottom-line">
468<ul class="navbar-nav">
469 <li ><a id="navTodas" class="nav-link active" href="${renderURL}"><@liferay.language key="iybg.programas.todas.upper"/></a></li>
470 <#if (params?size > one)>
471 <li><a id="navConv" class="nav-link" href="${renderURL}&conv"><@liferay.language key="iybg.programas.con_convocatorias.upper"/></a></li>
472 <#else>
473 <li><a id="navConv" class="nav-link" href="${renderURL}?conv"><@liferay.language key="iybg.programas.con_convocatorias.upper"/></a></li>
474 </#if>
475</ul>
476</nav>
477
478<#if finalEntries?size != zero>
479
480 <div class="row flex-box">
481 <#assign i = getterUtil.getLong("1")>
482
483 <#list finalEntries as curEntry>
484 <#assign assetRenderer = curEntry.getAssetRenderer()>
485 <#assign journalArticle = assetRenderer.getAssetObject()>
486 <#assign renderer = curEntry.getAssetRenderer()>
487 <#assign className = renderer.getClassName()>
488 <#--
489 <#assign layoutUuid = journalArticle.getLayoutUuid()
490 <#assign modifiedDate = journalArticle.getModifiedDate()>
491 >-->
492
493
494 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) />
495 <#assign viewURL = renderer.getURLViewInContext(renderRequest, renderResponse, viewURL) />
496
497 <#if !validator.equals("showFullContent", assetLinkBehavior?string)>
498 <#assign viewURL = renderer.getURLViewInContext(renderRequest, renderResponse, viewURL) />
499 </#if>
500
501 <#-- Plantilla para pintar cada uno de los registros de programas e iniciativas -->
502 <#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() />
503 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) />
504 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() />
505 <#assign titulo_mostrar = currentArticleAssetEntry.getTitle(locale) />
506 <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) />
507
508
509 <#assign documentcurrentArticle = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
510 <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() >
511
512 <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
513 <#assign currentArticleDescripcion = saxReaderUtil.createXPath("dynamic-element[@name='descripcion']/dynamic-content").selectSingleNode(rootElementcurrentArticle) >
514 <#assign currentArticleFoto = saxReaderUtil.createXPath("dynamic-element[@name='foto']/dynamic-content").selectSingleNode(rootElementcurrentArticle).getStringValue() >
515
516
517
518 <#-- Categorias de tipo Ambito asociadas al journalArticle que se está mostrando-->
519 <#assign ambitosVocabularyName = "BG-Ambitos" />
520 <#assign ambitosVocabulary = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.getCompanyGroupId(), ambitosVocabularyName) />
521 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(currentArticleResourcePrimKey)) >
522
523 <#list categories as category>
524 <#if validator.equals(category.vocabularyId?string,ambitosVocabulary.getVocabularyId()?string)>
525 <#assign categoria = category.getTitle(locale) >
526 <#assign categoryImagen = assetCategoryPropertyLocalService.getCategoryProperty(category.getCategoryId(),"imagen")>
527 </#if>
528 </#list>
529
530 <div class="col-md-4 col-sm-6 col-xs-12">
531 <div class="card" tabindex="0">
532 <div class="card-header">
533 <#if currentArticleFoto?? && currentArticleFoto != "">
534 <#assign img_new = getFileEntryJson(currentArticleFoto) />
535
536 <img class="card-img-top box-cover" src="${img_new}" alt="" />
537
538 <#else>
539 <#--Imagen predefinida por cada categoria -->
540 <img class="card-img-top" src="${themeDisplay.getPathThemeImages()}/bizkaiagazteak/${categoryImagen.getValue()}" alt="">
541
542 </#if>
543 </div>
544 <div class="card-body">
545
546 <#-- Ambito -->
547 <h3 class="card-title">${categoria}</h3>
548 <p class="card-text fw-medium"><a href="${viewURL}?redirectUrl=${completeCurrentRedirecUrl}" title='<@liferay.language key="iybg.programas.ir-detalle"/>' tabindex="-1">
549 <#--${titulo_mostrar}<bR>-->${currentArticleTitulo.getData()}</a></p>
550 <#if currentArticleDescripcion.getData()?has_content>
551 <div class="card-text">
552
553 <#if (currentArticleDescripcion.getData()?length > maxDescLength) >
554 ${currentArticleDescripcion.getData()[0..*(maxDescLength-3)]+"..."}
555 <#else>
556 ${currentArticleDescripcion.getData()}
557 </#if>
558
559 </div>
560 </#if>
561
562 <#list currentArticleRelatedLinks as related_entry>
563 <#assign relatedAssetEntryId = related_entry.getEntryId2() />
564 <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) />
565 <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() />
566 <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) />
567 <#assign relatedArticleId = relatedArticle.getArticleId() />
568 </#list>
569
570 <#if currentArticleRelatedLinks?has_content >
571 <p class="iy-link-convocatorias">
572 <#assign totalrelatedarticlesSize = currentArticleRelatedLinks?size>
573 <span class="bipoicon icon-calendar" aria-hidden="true"></span> <span class="badge iy-text-color-red iy-text-size-L">${totalrelatedarticlesSize}</span>
574 <#if (totalrelatedarticlesSize == one)>
575 <@liferay.language key="iybg.programas.convocatoria_relacionada" />
576 <#else>
577 <@liferay.language key="iybg.programas.convocatorias_relacionadas" />
578 </#if>
579 </p>
580 </#if>
581
582 </div>
583 </div>
584 </div>
585
586 <#if i%numElemFila=0>
587 <#--
588 </div>
589 <div class="row">
590 -->
591 </#if>
592 <#assign i = i + 1 >
593 </#list>
594 </div>
595
596 <#if (totalEntriesSize > delta)>
597 <div class="taglib-page-iterator" >
598 <div class="clearfix lfr-pagination" >
599 <#-- <small>${message}</small>-->
600
601 <ul class="pager pager lfr-pagination-buttons bg-paginador">
602 <#if (currentPag == one)>
603 <li class="disabled first">
604 <a href="">← <@liferay.language key="first" /></a></li>
605 <#else>
606 <li class="first">
607 <a href="${firstURL}">← <@liferay.language key="first" /></a></li>
608 </#if>
609
610 <#if (currentPag == one)>
611 <li class="disabled">
612 <a href=""><@liferay.language key="previous" /></a></li>
613 <#else>
614 <li>
615 <a href="${previousURL}"><@liferay.language key="previous" /></a></li>
616 </#if>
617
618
619 <#if (currentPag == totalPag)>
620 <li class="disabled">
621 <a href=""><@liferay.language key="next" /></a></li>
622 <#else>
623 <li>
624 <a href="${nextURL}"><@liferay.language key="next" /></a></li>
625 </#if>
626
627 <#if (currentPag == totalPag)>
628 <li class="disabled last">
629 <a href=""><@liferay.language key="last" /> →</a></li>
630 <#else>
631 <li class="last">
632 <a href="${lastURL}"><@liferay.language key="last" /> →</a></li>
633 </#if>
634 </ul>
635 </div>
636 </div>
637 </#if>
638<#else>
639 <div class="alert alert-info type01">
640 <p class="flex-container"><span class="bipoicon icon-calendar"></span> <span><@liferay.language key="iybg.programas.no-results"/></span></p>
641 </div>
642</#if>
643</div>
644</div>
645
646<#function getFileEntryJson url >
647
648<#assign urljson = url?eval>
649 <#assign group_id =urljson.groupId />
650 <#assign uuid = urljson.uuid />
651 <#assign fichero = urljson.title />
652
653 <#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") >
654 <#assign DLFichero= fileEntryService.getDLFileEntryByUuidAndGroupId(uuid?string, group_id?eval) />
655 DLFichero
656 <#return "/documents/"+group_id+"/"+DLFichero.getFolderId()+"/"+fichero />
657
658</#function>
659
660<script type="text/javascript">
661
662 $(function() {
663 // Handler for .ready() called.
664 var isConv=${isConv?c};
665
666 $("ul.navbar-nav li a").removeClass("active");
667 if (String(isConv)=="true"){
668 $("#navConv").addClass("active");
669 }else{
670 $("#navTodas").addClass("active");
671 }
672
673 $(".card").click(function(event){
674 var linkProg = $(this).find('a').attr('href');
675 $(location).attr('href',linkProg);
676 });
677 $(".card").keypress(function(e) {
678 var code = (e.keyCode ? e.keyCode : e.which);
679 if(code===13){
680 var linkProg = $(this).find('a').attr('href');
681
682 $(location).attr('href',linkProg);
683
684 }
685 });
686
687
688
689 });
690
691</script>