Pleno Municipal - ayto-lena
Estas en:
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> saxReaderUtil.createXPath("dynamic-element[@name='cargoPrincipal']").selectSingleNode(rootElement) [in template "10114#2295845#4711943" at line 47, column 39]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign cargoPrincipal = saxReaderUti... [in template "10114#2295845#4711943" at line 47, column 13]
----
1<#--
2Plantilla Ayto Lena Concejales
3
4@author: Serinza Solutions EFG 2019
5-->
6
7<style>
8.article-list{
9display: table-header-group;
10}
11.cuadro-foto{
12 width: 33%;
13 float: left;
14}
15.cuadro-resumen {
16 display: inline-flex;
17 width: 66%;
18 padding: 0.2em;
19}
20.resumen{
21 text-justify:justify;
22}
23.cuadro-cargos {
24 width: 100%;
25 float: right;
26 padding: 0.2em;
27}
28.grupos{
29 list-style:none;
30}
31.cargos{
32 margin: 15px;
33}
34</style>
35
36<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
37
38<#if entries?has_content>
39 <#list entries as entry>
40 <#assign assetRenderer = entry.getAssetRenderer() />
41 <#assign journalArticle = assetRenderer.getArticle() />
42 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) />
43 <#assign rootElement = document.getRootElement() />
44
45 <#assign resumen = saxReaderUtil.createXPath("dynamic-element[@name='resumen']").selectSingleNode(rootElement).getStringValue() />
46 <#assign titulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']").selectSingleNode(rootElement).getStringValue() />
47 <#assign cargoPrincipal = saxReaderUtil.createXPath("dynamic-element[@name='cargoPrincipal']").selectSingleNode(rootElement).getStringValue() />
48 <#assign grupo = saxReaderUtil.createXPath("dynamic-element[@name='grupo']").selectSingleNode(rootElement).getStringValue() />
49 <#assign email = saxReaderUtil.createXPath("dynamic-element[@name='email']").selectSingleNode(rootElement).getStringValue() />
50
51 <#assign foto = saxReaderUtil.createXPath("dynamic-element[@name='foto']/dynamic-content").selectSingleNode(rootElement).getStringValue() />
52 <#assign altImg = saxReaderUtil.createXPath("dynamic-element[@name='foto']/dynamic-element[@name='altImagen']").selectSingleNode(rootElement).getStringValue() />
53
54 <div class="article-list">
55
56 <h3>${titulo}</h3>
57 <div class="cuadro-foto">
58 <#if !validator.isBlank(foto)>
59 <#if foto?starts_with("/")>
60 <#assign rutaImg = foto />
61 <#else>
62 <#assign json_img = foto?eval />
63 <#assign group_id = json_img.groupId />
64 <#assign uuid = json_img.uuid />
65 <#assign fileEntry = dlFileEntryService.getFileEntryByUuidAndGroupId(uuid, getterUtil.getLong(group_id)) />
66 <#assign rutaImg = '/documents/' + group_id + '/' + fileEntry.getClassPK() + '/' + json_img.title + '/' + uuid />
67 </#if>
68 <img src="${rutaImg}" alt="${altImg}" />
69 </#if>
70 </div>
71
72 <div class="cuadro-resumen">
73 <#if !validator.isBlank(resumen)>
74 <p class="resumen">${resumen}</p>
75 </#if>
76 </div>
77
78 <div class="cuadro-cargos">
79 <#if !validator.isBlank(cargoPrincipal) || !validator.isBlank(grupo)>
80 <ul class="cargos">
81 <#if !validator.isBlank(cargoPrincipal?trim)>
82 <li><strong>${cargoPrincipal}</strong></li>
83 </#if>
84
85 <#assign cargos = document.selectNodes( "//dynamic-element[@name='cargos']") />
86
87
88 <#if cargos?has_content>
89 <#list cargos as cargo>
90
91 <#assign comprueba = cargo.getStringValue()?trim = "" >
92 <#if comprueba == false >
93 <li class="subcargos">${cargo.getStringValue()}</li>
94 <#else>
95 </#if>
96 </#list>
97 </#if>
98
99 </ul>
100
101 <ul class="grupos">
102 <#if !validator.isBlank(grupo?trim)>
103 <li>Grupo municipal: ${grupo}</li>
104 </#if>
105 <#if !validator.isBlank(email?trim)>
106 <li>E-mail de contacto: <a href="mailto:${email}">${email}</a></li>
107 </#if>
108
109 </ul>
110 </#if>
111 </div>
112 </div>
113 </#list>
114</#if>
