Exercise
An error occurred while processing the template.
No such key: get in class com.liferay.portal.kernel.theme.ThemeDisplay
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign themeDisplay = staticUtil["co... [in template "20902#20940#29628625" at line 55, column 3]
----
1<#-- Variables de etiquetas según idioma -->
2<#assign numero = "Zenbakia">
3<#assign objDid = "Helburu didaktikoak">
4<#assign numVisitas = "Bisita kopurua">
5<#assign calendario = "Argitaratze-data">
6<#assign niveles = "Maila">
7<#assign formatos = "Formatua">
8<#assign fuente = "Iturria">
9<#assign dialecto = "Euskalkia">
10<#assign duracion = "Iraupena">
11<#assign parcial = "Partziala">
12<#assign jarduera = "Jarduera">
13
14<#if locale == 'en_US'>
15 <#assign numero = "Number">
16 <#assign objDid = "Educational objective">
17 <#assign numVisitas = "Number of visits">
18 <#assign calendario = "Publication date">
19 <#assign niveles = "Level">
20 <#assign formatos = "Format">
21 <#assign fuente = "Source">
22 <#assign dialecto = "Basque dialect">
23 <#assign duracion = "Duration">
24 <#assign parcial = "Partial">
25 <#assign jarduera = "Activity">
26<#elseif locale == 'fr_FR'>
27 <#assign numero = "Numéro">
28 <#assign objDid = "Objectifs didactiques">
29 <#assign numVisitas = "Nombre de visites">
30 <#assign calendario = "Date de publication">
31 <#assign niveles = "Niveau">
32 <#assign formatos = "Format">
33 <#assign fuente = "Source">
34 <#assign dialecto = "Dialecte de la langue basque">
35 <#assign duracion = "Durée">
36 <#assign parcial = "Partiel">
37 <#assign jarduera = "Activité">
38<#elseif locale == 'es_ES'>
39 <#assign numero = "Número">
40 <#assign objDid = "Objetivos didácticos">
41 <#assign numVisitas = "Número de visitas">
42 <#assign calendario = "Fecha de publicación">
43 <#assign niveles = "Niveles">
44 <#assign formatos = "Formatos">
45 <#assign fuente = "Fuente">
46 <#assign dialecto = "Dialecto">
47 <#assign duracion = "Duración">
48 <#assign parcial = "Parcial">
49 <#assign jarduera = "Actividad">
50</#if>
51
52<#-- Obtener ID del artículo -->
53<#assign id = paramUtil.getString(request, "articleId")>
54<#if !id?has_content>
55 <#assign themeDisplay = staticUtil["com.liferay.portal.kernel.theme.ThemeDisplay"].get()>
56 <#assign layout = themeDisplay.getLayout()>
57 <#assign querystring = layout.getTypeSettingsProperty("query-string")>
58 <#if querystring?has_content && querystring?matches(".*articleId=\\d+.*")>
59 <#assign id = (querystring?split("articleId="))[1]?split("&")[0]>
60 </#if>
61</#if>
62
63<#-- Servicios modernos para artículo y categorías -->
64<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
65<#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]>
66<#assign assetVocabularyLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetVocabularyLocalServiceUtil"]>
67<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]>
68<#assign assetCategoryPropertyLocalServiceUtil = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")>
69<#-- Cargar artículo -->
70<#if id?has_content && journalArticleLocalService??>
71 <#assign article = journalArticleLocalService.getArticle(groupId, id) />
72 <#assign articleById = journalArticleLocalService.getDisplayArticle(getterUtil.getLong(groupId), id) />
73 <#assign document = saxReaderUtil.read(articleById.getContentByLocale(locale)) >
74 <#assign artResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, id)/>
75 <#assign categories = assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", article.getResourcePrimKey()) />
76
77 <#-- Variables para mostrar bloques -->
78 <#assign mostrarBloqueNivel = "NO">
79 <#assign mostrarBloqueFormato = "NO">
80 <#assign mostrarBloqueObjDidacticos = "NO">
81 <#assign mostrarBloqueDialecto = "NO">
82 <#assign mostrarBloqueObjDidacticosBakarka = "NO">
83 <#assign mostrarBloqueObjDidacticosTaldeLana = "NO">
84 <#assign mostrarBloqueObjDidacticosJardunbikoa = "NO">
85 <#-- Obtener vocabularios por nombre -->
86 <#assign idVocabuOD = 0>
87 <#assign idVocabuDialecto = 0>
88 <#assign idTipoDocumento = 0>
89 <#assign hrefEM ="&filtros=Eduki_mota">
90 <#assign urlVuelta=""/>
91 <#list assetVocabularyLocalServiceUtil.getGroupVocabularies(groupId) as vocabulario>
92 <#if vocabulario.getName() == "Objetivos Didácticos">
93 <#assign idVocabuOD = vocabulario.getVocabularyId()>
94 <#elseif vocabulario.getName() == "Eduki_Motak">
95 <#assign idTipoDocumento = 20576241>
96 <#assign hrefEM ="${hrefEM}&Eduki_mota=${idTipoDocumento}">
97 <#elseif vocabulario.getName() == "Euskalkia">
98 <#assign idVocabuDialecto = vocabulario.getVocabularyId()>
99 </#if>
100 </#list>
101<#if hrefEM?has_content>
102 <#assign urlAux=hrefEM?substring(1)>
103 <#assign url2="&bsczmb=&id_structure_autor=16131006&filtros=Formatua&filtros=Helburu_didaktikoa&filtros=Ikasteredua&filtros=Bildumak&filtros=Aldizkaria&filtros=Baliabideak&ordenarPor=Pub.+data&bsctags=&bscAutor=" />
104 <#assign urlVuelta="/bilatzaile-orokorra?_x61pbuscadorGeneralWAR_WAR_x61pbuscadorGeneralWARportlet_formDate=1576593315033&bscfilterby=&filtros=Maila&${urlAux}${url2}"/>
105 <#assign urlVueltaDoc="/bilatzaile-orokorra?_x61pbuscadorGeneralWAR_WAR_x61pbuscadorGeneralWARportlet_formDate=1576593315033&bscfilterby=&filtros=Eduki_mota&Eduki_mota=20576121"/>
106</#if>
107 <#-- Comprobar categorías para mostrar -->
108 <#list categories as category>
109 <#if category.getName()?matches("A1|A2|B1|B2|C1|C2")>
110 <#assign mostrarBloqueNivel = "SI">
111 <#elseif category.getName()?matches("Entzungaiak|Bideoak|Idatziak")>
112 <#assign mostrarBloqueFormato = "SI">
113 </#if>
114 <#if category.getVocabularyId() == idVocabuOD>
115 <#assign mostrarBloqueObjDidacticos = "SI">
116 </#if>
117 <#if category.getVocabularyId() == idVocabuDialecto>
118 <#assign mostrarBloqueDialecto = "SI">
119 </#if>
120 </#list>
121
122 <div class="col-xs-12 col-md-12 col-lg-12 separacionTitulo sinMargenIzq row">
123 <p>${jarduera}</p>
124 </div>
125 <#assign hrefCategorias ="&filtros=Maila">
126 <#-- Mostrar niveles -->
127 <#if mostrarBloqueNivel == "SI">
128 <div class="col-xs-12 col-md-12 col-lg-12 separacionNivelesJarduera sinMargenIzq row">
129 <div class="col-xs-2 col-md-2 col-lg-2"><i class="fa fa-signal-J jarduera" aria-hidden="true" title="${niveles}"></i></div>
130 <div class="col-xs-10 col-md-10 col-lg-10">
131 <#list categories as category>
132 <#if category.getName()?matches("A1|A2|B1|B2|C1|C2")>
133 <a href="/bilatzaile-orokorra?filtros=Maila&Maila=${category.getCategoryId()}&ordenarPor=Pub.+data" class="${category.getName()}" title="${category.getName()}">${category.getName()}</a>
134 <#assign hrefCategorias ="${hrefCategorias}&Maila=${category.getCategoryId()}">
135 </#if>
136 </#list>
137 </div>
138 </div>
139 </#if>
140
141 <#-- Mostrar formatos -->
142 <#if mostrarBloqueFormato == "SI">
143 <div class="col-xs-12 col-md-12 col-lg-12 separacionCategoriasJarduera sinMargenIzq">
144 <div class="col-xs-2 col-md-2 col-lg-2"><i class="fa fa-info-circle-J jarduera" aria-hidden="true" title="${formatos}"></i></div>
145 <div class="col-xs-10 col-md-10 col-lg-10">
146 <#list categories as category>
147 <#assign assetCategoryPropertyList = assetCategoryPropertyLocalServiceUtil.getCategoryProperties(category.getCategoryId())/>
148 <#list assetCategoryPropertyList as assetCategoryProperty>
149 <#assign assetCategoryKey = assetCategoryProperty.getKey()/>
150 <#if (assetCategoryKey == locale)>
151 <#assign property_value = assetCategoryProperty.getValue()/>
152 </#if>
153 </#list>
154 <#if category.getName() == "Entzungaiak" || category.getName() == "Bideoak" || category.getName() == "Idatziak">
155 <a href="/bilatzaile-orokorra?filtros=Formatua&Formatua=${category.getCategoryId()}&ordenarPor=Pub.+data" class="fa fa-${category.getName()?lower_case}-H" title="${property_value}"></a>
156 </#if>
157 </#list>
158 </div>
159 </div>
160 </#if>
161
162 <#-- Fecha publicación -->
163 <#if article?? && article.getDisplayDate()??>
164 <#assign displayDate = article.getDisplayDate()?date>
165 <div class="col-xs-12 col-md-12 col-lg-12 separacionFechaJarduera sinMargenIzq row">
166 <div class="col-xs-2 col-md-2 col-lg-2"><i class="fa fa-clock-o-J jarduera" aria-hidden="true" title="${calendario}"></i></div>
167 <div class="col-xs-10 col-md-10 col-lg-10">
168 <#if locale == 'es_ES' || locale == 'fr_FR'>
169 ${displayDate?string("dd-MM-yyyy")}
170 <#elseif locale == 'eu_ES'>
171 ${displayDate?string("yyyy-MM-dd")}
172 <#elseif locale == 'en_US'>
173 ${displayDate?string("MM-dd-yyyy")}
174 </#if>
175 </div>
176 </div>
177</#if>
178 <#-- Fuente y Autor ocultos, para mostrar con jQuery si existe div#fuenteAutor -->
179 <div id="fuenteAutor" style="display:none;">
180 <@liferay_portlet["runtime"] portletName="x61pRelaContWAR_WAR_x61pRelaContWARportlet" queryString="idArticulo=${id}&visualizacion=${parcial}"/>
181 </div>
182
183 <#-- Mostrar ID artículo -->
184 <div class="col-xs-12 col-md-12 col-lg-12 separacionIdArticleJarduera sinMargenIzq row">
185 <div class="col-xs-2 col-md-2 col-lg-2"><i class="fa fa-key-J jarduera" aria-hidden="true" title="${numero}"></i></div>
186 <div class="col-xs-10 col-md-10 col-lg-10">${id}</div>
187 </div>
188
189 <#-- Objetivos didácticos -->
190 <#if mostrarBloqueObjDidacticos == "SI">
191 <div class="col-xs-12 col-md-12 col-lg-12 separacionODJarduera sinMargenIzq row">
192 <div class="col-xs-2 col-md-2 col-lg-2"><i class="fa fa-cogs-J jarduera" aria-hidden="true" title="${objDid}"></i></div>
193 <div class="col-xs-10 col-md-10 col-lg-10">
194 <ul class="sinPunto">
195 <#list categories?filter(c -> c.getVocabularyId() == idVocabuOD) as od>
196 <#assign assetCategoryPropertyList = assetCategoryPropertyLocalServiceUtil.getCategoryProperties(od.getCategoryId())/>
197 <#list assetCategoryPropertyList as assetCategoryProperty>
198 <#assign assetCategoryKey = assetCategoryProperty.getKey()/>
199 <#if (assetCategoryKey == locale)>
200 <#assign property_value=assetCategoryProperty.getValue()/>
201 </#if>
202 </#list>
203 <#if (property_value == "Bakarka" || property_value == "Tarea individual" || property_value == "Individual task" || property_value == "Tâche individuel")>
204 <#assign mostrarBloqueObjDidacticosBakarka = "SI">
205 <#elseif (property_value == "Talde-lana" || property_value == "Tarea colaborativa" || property_value == "Teamwork" || property_value == "Tâche collaborative")>
206 <#assign mostrarBloqueObjDidacticosTaldeLana = "SI">
207 <#elseif (property_value == "Jardun bikoa" || property_value == "Aprendizaje semipresencial" || property_value == "Blended learnig" || property_value == "Apprentissage semipresentiel")>
208 <#assign mostrarBloqueObjDidacticosJardunbikoa = "SI">
209 <#else>
210 <li>
211 <a href="/bilatzaile-orokorra?_x61pbuscadorGeneralWAR_WAR_x61pbuscadorGeneralWARportlet_formDate=1554897302092&filtros=Formatua&Formatua=${od.getCategoryId()}${hrefCategorias}${hrefEM}&ordenarPor=Pub.+data" title="${property_value}">${property_value}</a>
212 </li>
213 </#if>
214
215
216 </#list>
217
218 </ul>
219 </div>
220 </div>
221 </#if>
222
223<#if mostrarBloqueObjDidacticosBakarka == "SI">
224 <div class="col-xs-12 col-md-12 col-lg-12 separacionObjDidacticosJarduera sinMargenIzq">
225 <div class="col-xs-2 col-md-2 col-lg-2">
226 <i class="fa-bakarka-J" aria-hidden="true"></i>
227 </div>
228 <div class="col-xs-10 col-md-10 col-lg-10">
229 <ul class="sinPunto">
230 <#list categories?filter(c -> c.getVocabularyId() == idVocabuOD) as od>
231 <#assign assetCategoryPropertyList = assetCategoryPropertyLocalServiceUtil.getCategoryProperties(od.getCategoryId())/>
232 <#list assetCategoryPropertyList as assetCategoryProperty>
233 <#assign assetCategoryKey = assetCategoryProperty.getKey()/>
234 <#if (assetCategoryKey == locale)>
235 <#assign property_value=assetCategoryProperty.getValue()/>
236 </#if>
237 </#list>
238 <#if (property_value == "Bakarka" || property_value == "Tarea individual" || property_value == "Individual task" || property_value == "Tâche individuel")>
239 <li>
240 <a href="/bilatzaile-orokorra?_x61pbuscadorGeneralWAR_WAR_x61pbuscadorGeneralWARportlet_formDate=1554897302092&filtros=Formatua&Formatua=${od.getCategoryId()}${hrefCategorias}${hrefEM}&ordenarPor=Pub.+data" title="${property_value}">${property_value}</a>
241 </li>
242 </#if>
243
244 </#list>
245 </ul>
246 </div>
247 </div>
248 </#if>
249 <!-- Objetivos didacticos Talde-Lana-->
250 <#if mostrarBloqueObjDidacticosTaldeLana == "SI">
251 <div class="col-xs-12 col-md-12 col-lg-12 separacionObjDidacticosJarduera sinMargenIzq">
252 <div class="col-xs-2 col-md-2 col-lg-2">
253 <i class="fa-taldeLana-J" aria-hidden="true"></i>
254 </div>
255 <div class="col-xs-10 col-md-10 col-lg-10">
256 <ul class="sinPunto">
257 <#list categories?filter(c -> c.getVocabularyId() == idVocabuOD) as od>
258 <#assign assetCategoryPropertyList = assetCategoryPropertyLocalServiceUtil.getCategoryProperties(od.getCategoryId())/>
259 <#list assetCategoryPropertyList as assetCategoryProperty>
260 <#assign assetCategoryKey = assetCategoryProperty.getKey()/>
261 <#if (assetCategoryKey == locale)>
262 <#assign property_value=assetCategoryProperty.getValue()/>
263 </#if>
264 </#list>
265 <#if (property_value == "Talde-lana" || property_value == "Tarea colaborativa" || property_value == "Teamwork" || property_value == "Tâche collaborative")>
266 <li>
267 <a href="/bilatzaile-orokorra?_x61pbuscadorGeneralWAR_WAR_x61pbuscadorGeneralWARportlet_formDate=1554897302092&filtros=Formatua&Formatua=${od.getCategoryId()}${hrefCategorias}${hrefEM}&ordenarPor=Pub.+data" title="${property_value}">${property_value}</a>
268 </li>
269 </#if>
270 </#list>
271 </ul>
272 </div>
273 </div>
274 </#if>
275 <!-- Objetivos didacticos Jardunbikoa-->
276 <#if mostrarBloqueObjDidacticosJardunbikoa == "SI">
277 <div class="col-xs-12 col-md-12 col-lg-12 separacionObjDidacticosJarduera sinMargenIzq">
278 <div class="col-xs-2 col-md-2 col-lg-2">
279 <i class="fa-jardunbikoa-J" aria-hidden="true"></i>
280 </div>
281 <div class="col-xs-10 col-md-10 col-lg-10">
282 <ul class="sinPunto">
283 <#list categories?filter(c -> c.getVocabularyId() == idVocabuOD) as od>
284 <#assign assetCategoryPropertyList = assetCategoryPropertyLocalServiceUtil.getCategoryProperties(od.getCategoryId())/>
285 <#list assetCategoryPropertyList as assetCategoryProperty>
286 <#assign assetCategoryKey = assetCategoryProperty.getKey()/>
287 <#if (assetCategoryKey == locale)>
288 <#assign property_value=assetCategoryProperty.getValue()/>
289 </#if>
290 </#list>
291 <#if (property_value == "Jardun bikoa" || property_value == "Aprendizaje semipresencial" || property_value == "Blended learnig" || property_value == "Apprentissage semipresentiel")>
292 <li>
293 <a href="/bilatzaile-orokorra?_x61pbuscadorGeneralWAR_WAR_x61pbuscadorGeneralWARportlet_formDate=1554897302092&filtros=Formatua&Formatua=${od.getCategoryId()}${hrefCategorias}${hrefEM}&ordenarPor=Pub.+data" title="${property_value}">${property_value}</a>
294 </li>
295 </#if>
296
297 </#list>
298 </ul>
299 </div>
300 </div>
301 </#if>
302 <#-- Dialecto -->
303 <#if mostrarBloqueDialecto == "SI">
304 <div class="col-xs-12 col-md-12 col-lg-12 separacionDialectoJarduera sinMargenIzq row">
305 <div class="col-xs-2 col-md-2 col-lg-2"><i class="fa fa-file-o-J jarduera" aria-hidden="true" title="${dialecto}"></i></div>
306 <div class="col-xs-10 col-md-10 col-lg-10">
307 <ul class="sinPunto">
308 <#list categories?filter(c -> c.getVocabularyId() == idVocabuDialecto) as od>
309 <#assign assetCategoryPropertyList = assetCategoryPropertyLocalServiceUtil.getCategoryProperties(od.getCategoryId())/>
310 <#list assetCategoryPropertyList as assetCategoryProperty>
311 <#assign assetCategoryKey = assetCategoryProperty.getKey()/>
312 <#if (assetCategoryKey == locale)>
313 <#assign property_value=assetCategoryProperty.getValue()/>
314 </#if>
315 </#list>
316 <#--<#if (property_value == "Batua" || property_value == "Lapurtera" || property_value == "Gipuzkera" || property_value == "Bizkaiera" || property_value == "Nafarrera" || property_value == "Nahasia" || property_value == "Iparraldeko euskara" || property_value == "Zuberera")-->
317 <li>
318 <a href="/bilatzaile-orokorra?_x61pbuscadorGeneralWAR_WAR_x61pbuscadorGeneralWARportlet_formDate=1554897302092&filtros=Formatua&Formatua=${od.getCategoryId()}${hrefCategorias}${hrefEM}&ordenarPor=Pub.+data" title="${property_value}">${property_value}</a>
319 </li>
320 <#--/#if-->
321 </#list>
322 </ul>
323 </div>
324 </div>
325 </#if>
326 <!--Duración -->
327 <#assign iraupena = document.valueOf("//dynamic-element[@name='iraupena']/dynamic-content/text()") />
328 <#if iraupena!=''>
329 <div class="col-xs-12 col-md-12 col-lg-12 separacionDuracionDokuteka sinMargenIzq row">
330 <div class="col-xs-2 col-md-2 col-lg-2">
331 <i class="fa fa-duracion-D dokuteka" aria-hidden="true" title="${duracion}"></i>
332 </div>
333 <div class="col-xs-10 col-md-10 col-lg-10">
334 ${iraupena}
335 </div>
336 </div>
337 </#if>
338 <!-- Incrementamos el valor de las visitas cada vez que se entra en el detalle-->
339 <#if artResourcePK !=0 >
340 <#assign assetEntryLocalServiceUtil = staticUtil['com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil']>
341 <#assign assetEntry = assetEntryLocalServiceUtil.getEntry("com.liferay.journal.model.JournalArticle", artResourcePK)>
342
343 <#assign assetEntryIncrementado =assetEntryLocalServiceUtil.incrementViewCounter(assetEntry.getUserId(), assetEntry)>
344
345 <!-- Numero de visitas pendiente de mirar Hegoa como sacarlo-->
346 <div class="col-xs-12 col-md-12 col-lg-12 separacionVisitasDokuteka sinMargenIzq row">
347 <div class="col-xs-2 col-md-2 col-lg-2">
348 <i class="fa fa-users-D dokuteka" aria-hidden="true" title="${numVisitas}"></i>
349 </div>
350 <div class="col-xs-10 col-md-10 col-lg-10">
351 <@liferay_portlet["runtime"] portletName="x61pViewCountWAR_WAR_x61pViewCountWARportlet" queryString="idArticulo=${id}"/>
352 </div>
353 </div>
354 <div class="hidden tipoFicha"><span class="urlVuelta"><a href="${urlVuelta}"> </a></span><span class="urlVueltaDoc"><a href="${urlVueltaDoc}"> </a></span></div>
355
356 </#if>
357
358 </#if>
359
360
361<script>
362document.addEventListener("DOMContentLoaded", function() {
363 var fuenteAutorDiv = document.getElementById("fuenteAutor");
364
365 if (fuenteAutorDiv) {
366 // Buscar contenido real (texto visible) dentro del div
367 var textContent = fuenteAutorDiv.textContent.trim();
368
369 console.log(textContent);
370
371 if (textContent.length === 0) {
372 // No hay texto: ocultamos el contenedor
373 fuenteAutorDiv.style.display = "none";
374 } else {
375 // Hay texto: mostramos el contenedor
376 fuenteAutorDiv.style.display = "block";
377 }
378 }
379});
380
381/*if($("#embedded-articlenextevents-portlet.embebido ul li div.fuenteAutor").length){
382 $("#embedded-articlenextevents-portlet.embebido ul li div.fuenteAutor").parents("#embedded-articlenextevents-portlet").show();
383} */
384</script>
