Programa de compostaxe local (Revitaliza)
Produciuse un erro ao procesar o modelo.
Java method "com.sun.proxy.$Proxy84.getLayouts(long, boolean, long)" threw an exception when invoked on com.sun.proxy.$Proxy84 object "com.liferay.layout.internal.service.LayoutLocalServiceWrapper@3ff1d87a"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign paginas = layoutLocalService... [in template "20097#20123#6338405" at line 35, column 3] ----
1</div>
2
3<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")/>
4 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")>
5
6 <#assign group = groupLocalService.getGroup(groupId)/>
7
8<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
9
10
11<#assign themeDisplay = serviceContext.getThemeDisplay() />
12
13 <#assign groupFriendlyUrl = themeDisplay.getPathFriendlyURLPublic() + group.getFriendlyURL() />
14
15 <#assign layoutId = themeDisplay.getPlid() />
16 <#assign layout = layoutLocalService.getLayout(layoutId)/>
17
18 <#-- Buscar root layout del monografico -->
19 <#assign ancestorsLayout = layout.getAncestors() />
20
21 <#list ancestorsLayout as pagina>
22
23 </#list>
24
25
26<#assign rootLayout = layout />
27
28 <#if (ancestorsLayout?size - NivelMenu.getData()?number >= 0)>
29 <#assign rootLayout = ancestorsLayout[ancestorsLayout?size - NivelMenu.getData()?number] />
30 </#if>
31
32
33
34 <#-- Buscar hijos del root layout -->
35 <#assign paginas = layoutLocalService.getLayouts(groupId, layout.isPrivateLayout(), rootLayout.getLayoutId())/>
36
37<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
38<#assign themeDisplay = serviceContext.getThemeDisplay() />
39<#setting url_escaping_charset='utf-8'>
40
41
42<#if Cabecera.getData()?has_content>
43
44<div class="cabecera">
45 <img src="${Cabecera.getData()}" loading="lazy" alt="" />
46
47 <div class="titulo">
48
49 <div class="rectangulo">
50
51 <h2>${Titulo.getData()}</h2>
52
53 <#if Texto25t4.getData()?has_content>
54
55 <h3>${Texto25t4.getData()}</h3>
56 </#if>
57
58 </div>
59
60 </div>
61
62</div></#if>
63
64<@liferay.breadcrumbs />
65
66<#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
67 <script src="//f1-eu.readspeaker.com/script/7131/ReadSpeaker.js?pids=embhl" type="text/javascript"></script>
68 <style>
69 <!--
70 span.rsbtn_powered {display:none;}
71 a.rsbtn_settings {display: none;}
72 a.rsbtn_dl{display: none;}
73 -->
74 </style>
75 <div class="container mb-5">
76 <div id="RS_wrapper" style="height: 26px;">
77 <div>
78 <#if locale.equals('gl_ES')>
79
80 <#assign currentUrl = themeDisplay.getPortalURL() +"es" + themeDisplay.getURLCurrent() />
81 <div id="readspeaker_button1" class="rs_skip rsbtn rs_preserve">
82 <a class="rsbtn_play" accesskey="L" title="Escoita esta páxina con ReadSpeaker" href="//app.readspeaker.com/cgi-bin/rsent?customerid=7131&lang=gl_es&readid=readspeaker_text&url=${currentUrl?url}">
83 <span class="rsbtn_left rsimg rspart">
84 <span class="rsbtn_text">
85 <span><@liferay.language key="Escuchar" /></span>
86 </span>
87 </span>
88 <span class="rsbtn_right rsimg rsplay rspart"></span>
89 </a>
90 </div>
91 </#if>
92 <#if !locale.equals('gl_ES')>
93
94
95 <#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
96 <div id="readspeaker_button1" class="rs_skip rsbtn rs_preserve">
97 <a class="rsbtn_play" accesskey="L" title="Escucha esta página con ReadSpeaker" href="//app.readspeaker.com/cgi-bin/rsent?customerid=7131&lang=es_es&readid=readspeaker_text&url=${currentUrl?url}">
98 <span class="rsbtn_left rsimg rspart">
99 <span class="rsbtn_text">
100 <span>Escuchar</span>
101
102 </span>
103 </span>
104 <span class="rsbtn_right rsimg rsplay rspart"></span>
105 </a>
106 </div>
107 </#if>
108 </div>
109 </div> </div>
110<div class="cuerpo max1024 row" id="readspeaker_text">
111
112
113 <div class="col-md-3">
114
115 <div class="rectangulo">
116 <ul class="paginas">
117
118
119 <#list paginas as pagina>
120 <#if !pagina.isHidden()>
121 <#-- Comprobar si tiene páginas hijas no ocultas -->
122 <#assign subpaginas = layoutLocalService.getLayouts(groupId, layout.isPrivateLayout(), pagina.getLayoutId())/>
123 <#assign hasChildren = false/>
124 <#list subpaginas as subpagina>
125 <#if !subpagina.isHidden()>
126 <#assign hasChildren = true/>
127 <#break>
128 </#if>
129 </#list>
130
131 <#assign pagActual = false/>
132 <#if pagina.getLayoutId() == layout.getLayoutId()>
133
134 <#if hasChildren>
135 <#assign cssClass = 'class="hasChildren pagina-actual"'/>
136
137 <#else>
138 <#assign cssClass = 'class="pagina-actual"'/>
139 </#if>
140
141 <#assign pagActual = true/>
142 <#elseif layout.getParentLayoutId() == pagina.getLayoutId() >
143
144 <#if hasChildren>
145 <#assign cssClass = 'class="hasChildren padre-pagina-actual"'/>
146
147 <#else>
148 <#assign cssClass = 'class="padre-pagina-actual"'/>
149 </#if>
150
151 <#else>
152
153 <#if hasChildren>
154 <#assign cssClass = 'class="hasChildren"'/>
155
156 <#else>
157 <#assign cssClass = ''/>
158 </#if>
159 </#if>
160
161 <#if hasChildren>
162 <#assign url = '#'/>
163 <#else>
164 <#assign url = groupFriendlyUrl + pagina.getFriendlyURL()/>
165 </#if>
166
167 <li ${cssClass}>
168
169
170 <#assign image = '/image/layout_icon?img_id=' + pagina.getIconImageId()/>
171
172 <div class="img-content">
173 <img src="${image}" alt=""/>
174 <div class="bot">
175
176 <#if pagActual && !hasChildren>
177 <span>
178 ${pagina.getName(locale)}
179 </span>
180 <#else>
181 <#if hasChildren && pagActual>
182
183 <a href="${url}">
184 ${pagina.getName(locale)}
185
186 </a>
187 <#if hasChildren>
188 <i class="fa fa-angle-down" aria-hidden="true"></i>
189 </#if>
190 <#elseif hasChildren>
191 <#assign url = groupFriendlyUrl + pagina.getFriendlyURL()/>
192
193
194 <a href="${url}">
195 ${pagina.getName(locale)}
196
197 </a>
198 <#if hasChildren>
199 <i class="fa fa-angle-down" aria-hidden="true"></i>
200 </#if>
201 <#else>
202 <#assign url = groupFriendlyUrl + pagina.getFriendlyURL()/>
203
204
205 <a href="${url}">
206 ${pagina.getName(locale)}
207
208 </a>
209 <#if hasChildren>
210 <i class="fa fa-angle-down" aria-hidden="true"></i>
211 </#if>
212
213 </#if>
214
215
216 </#if>
217 </div>
218</div>
219 <#-- Subpaginas -->
220 <#if hasChildren>
221 <ul class="subpaginas">
222 <#list subpaginas as subpagina>
223 <#if !subpagina.isHidden()>
224 <#if subpagina.getLayoutId() == layout.getLayoutId()>
225 <li class="pagina-actual">
226 <span>${subpagina.getName(locale)}</span>
227 </li>
228 <#else>
229 <#assign url = groupFriendlyUrl + subpagina.getFriendlyURL()/>
230 <li>
231 <a href="${url}">
232 ${subpagina.getName(locale)}
233 </a>
234 </li>
235 </#if>
236 </#if>
237 </#list>
238 </ul>
239 </#if>
240 </li>
241 </#if>
242 </#list>
243 </ul>
244 </div>
245
246 </div>
247
248
249
250<div class="col-md-9">
251
252
253<#if MenuAnclas.getSiblings()[0].Ancla.getData()?has_content>
254<div class="anclas">
255<ul>
256 <#list MenuAnclas.getSiblings() as cur_Ancla>
257 <li><a href="${cur_Ancla.Ancla.getData()}">
258
259 <span class="${cur_Ancla.Icono.getData()}"> </span>
260 <span>${cur_Ancla.getData()}</span>
261
262
263 </a></li>
264 </#list>
265</ul>
266</div>
267</#if>
268
269<#if HTML1dwq.getData()?has_content>
270
271<div class="entradilla">${HTML1dwq.getData()}</div>
272<hr>
273</#if>
274
275${Cuerpo.getData()}
276
277
278<#if Enlace.getSiblings()[0].Url_Enlace.getData()?has_content>
279<div class="enlaces">
280<h2><@liferay.language key="enlaces" /></h2>
281<ul>
282 <#list Enlace.getSiblings() as cur_Enlace>
283 <li><a href="${cur_Enlace.Url_Enlace.getData()}" target="${cur_Enlace.Target_Enlace.getData()}"><span>${cur_Enlace.getData()}</span>
284
285<div class="icono">
286<svg class="linkIcon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32pt" height="32pt" viewBox="0 0 32 32" version="1.1">
287<g>
288<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 27.679688 9.636719 C 27.679688 9.902344 27.574219 10.15625 27.386719 10.34375 L 18.75 18.980469 C 18.5 19.242188 18.128906 19.347656 17.777344 19.257812 C 17.429688 19.164062 17.15625 18.890625 17.0625 18.542969 C 16.972656 18.191406 17.074219 17.820312 17.335938 17.570312 L 24.265625 10.636719 L 6.320312 10.636719 L 6.320312 31 C 6.320312 31.550781 5.871094 32 5.320312 32 C 4.765625 32 4.320312 31.550781 4.320312 31 L 4.320312 9.636719 C 4.320312 9.085938 4.765625 8.636719 5.320312 8.636719 L 24.265625 8.636719 L 17.335938 1.707031 C 17.082031 1.453125 16.980469 1.085938 17.074219 0.738281 C 17.164062 0.390625 17.433594 0.121094 17.78125 0.0273438 C 18.128906 -0.0625 18.5 0.0390625 18.75 0.292969 L 27.386719 8.929688 C 27.574219 9.117188 27.679688 9.371094 27.679688 9.636719 Z M 27.679688 9.636719 "/>
289</g>
290</svg>
291</div>
292
293 </a></li>
294 </#list>
295</ul>
296</div>
297</#if>
298
299<#if Documento.getSiblings()[0].Url_Documento.getData()?has_content>
300<div class="documentos">
301<h2>Documentos</h2>
302<ul>
303 <#list Documento.getSiblings() as cur_Documento>
304 <li><a href="${cur_Documento.Url_Documento.getData()}" target="${cur_Documento.Target_Documento.getData()}">
305
306 <span> ${cur_Documento.getData()} </span>
307
308<div class="icono">
309<svg class="documentIcon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32pt" height="32pt" viewBox="0 0 32 32" version="1.1">
310<g>
311<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 17.28125 0 L 4.480469 0 C 4.125 0 3.839844 0.285156 3.839844 0.640625 L 3.839844 31.359375 C 3.839844 31.714844 4.125 32 4.480469 32 L 27.519531 32 C 27.875 32 28.160156 31.714844 28.160156 31.359375 L 28.160156 10.878906 C 28.160156 7.929688 20.230469 0 17.28125 0 Z M 26.878906 30.71875 L 5.121094 30.71875 L 5.121094 1.28125 L 17.28125 1.28125 C 19.523438 1.28125 26.878906 8.636719 26.878906 10.878906 Z M 26.878906 30.71875 "/>
312<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 27.136719 8.960938 L 19.199219 8.960938 L 19.199219 1.023438 C 19.199219 0.667969 18.914062 0.382812 18.558594 0.382812 C 18.207031 0.382812 17.921875 0.671875 17.921875 1.023438 L 17.921875 9.601562 C 17.921875 9.953125 18.207031 10.238281 18.558594 10.238281 L 27.136719 10.238281 C 27.492188 10.238281 27.777344 9.953125 27.777344 9.601562 C 27.777344 9.246094 27.488281 8.960938 27.136719 8.960938 Z M 27.136719 8.960938 "/>
313</g>
314</svg>
315</div>
316
317</a></li>
318 </#list>
319
320</ul>
321</div>
322</#if>
323
324
325
326</div>
327<#if Frecuencia.getData()?has_content>
328
329<div class="row tiempos">
330<#assign modifieddate = .vars['reserved-article-modified-date'].data>
331
332<#-- Save the original page locale for later -->
333<#assign originalLocale = .locale>
334
335<#-- Set the page locale to the portals default locale -->
336<#setting locale = localeUtil.getDefault()>
337
338<#-- Parse the date to a date object -->
339<#assign modifieddate = modifieddate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
340
341<#-- Set the page locale back to the original page locale -->
342<#assign locale = originalLocale>
343
344
345 <div class="col-12 text-right frecuencia"><i class="fa-solid fa-clock"></i>${Frecuencia.getData()}</div>
346
347</div>
348
349</#if>
350
351
352
353</div>
354
355
356<script>//$(document).ready(function(a){$(".hasChildren .img-content i").click(function(){$(this).closest(".hasChildren").children("ul.subpaginas").toggleClass("open")})});
357
358const divs = document.querySelectorAll('.hasChildren .img-content i');
359
360divs.forEach(el => el.addEventListener('click', event => {
361
362var child = event.target.closest(".hasChildren").querySelector('ul.subpaginas');
363
364child.classList.toggle("open");
365
366
367}));
368
369
370
371</script>