Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.valencia.liferay.common.utils.api.CommonUtilsApi") [in template "20115#20151#158259" at line 11, column 29]
----
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 commonUtilsApi = serviceLocat... [in template "20115#20151#158259" at line 11, column 5]
----
1<#assign liferay_theme=PortletJspTagLibs["/META-INF/liferay-theme.tld"] />
2<@liferay_theme["defineObjects"] />
3<#assign themeRootPath=themeDisplay.getPathThemeRoot() />
4<#assign themeImagesPath=themeDisplay.getPathThemeImages() />
5<#assign dlAppServiceUtil=serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") />
6<#assign
7 journalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
8<#assign
9 assetCategoryService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
10<#assign lang=themeDisplay.getLocale()>
11 <#assign commonUtilsApi=serviceLocator.findService("com.valencia.liferay.common.utils.api.CommonUtilsApi") />
12
13 <#--
14 ============================================================
15 FIX 2026-08: blindaje de accesos nulos.
16 Motivo: noticias sin recursos multimedia generan el fieldset
17 "tituloRecursoFieldSet" vacio; la variable tituloRecurso existe
18 pero no tiene hijo tipoRecurso -> error FreeMarker y volcado
19 del fuente de la plantilla al publico.
20 Criterio: no se cambia la logica ni el marcado. Solo se usan
21 guardas ??, !"" y ?has_content. Marcado con <#-- FIX -- >
22 ============================================================
23 -->
24
25 <#-- FIX: helper. Cierto solo si la rama de recursos multimedia esta realmente poblada -->
26 <#assign hayRecursos=(tituloRecurso?? && (tituloRecurso.tipoRecurso)??) />
27
28 <script>
29 $(document).ready(function () {
30 $(".slider-img").parent().parent().show();
31 $(".slider-img").parent().show();
32 });
33
34 if (window.hasOwnProperty("define") && define.amd) {
35 define._amd = define.amd;
36 define.amd = false;
37 }
38 </script>
39 <script src="${themeRootPath}/js/lightslider.min.js"></script>
40 <script src="${themeRootPath}/js/ekko-lightbox.js"></script>
41 <link type="text/css" rel="stylesheet" href="${themeRootPath}/css/ext/lightslider.min.css" />
42 <link type="text/css" rel="stylesheet" href="${themeRootPath}/css/ext/ekko-lightbox.css" />
43 <script>
44 if (window.hasOwnProperty("define") && define._amd) {
45 define.amd = define._amd;
46 }
47 </script>
48
49
50 <!-- variables -->
51 <#assign currentUrl=themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
52 <#assign urlArticle=.vars['reserved-article-url-title'].data />
53 <#assign urlArticleNoContext=themeDisplay.getPortalURL() + "/-/" + urlArticle />
54 <#assign publishedDate=.vars['reserved-article-create-date'].data />
55 <#assign title=.vars['reserved-article-title'].data />
56 <#assign description=.vars['reserved-article-description'].data />
57 <#assign contentId=.vars['reserved-article-id'].data>
58 <#assign liferay_ui=taglibLiferayHash["/META-INF/liferay-ui.tld"] />
59 <#assign liferay_portlet=taglibLiferayHash["/META-INF/liferay-portlet-ext.tld"] />
60 <#assign vocabularyID=getterUtil.getLong(156752) />
61 <#assign backUrl="" />
62 <#if request.getHeader("Referer")??>
63 <#assign backUrl=request.getHeader("Referer") />
64 </#if>
65
66 <#if backUrl?contains("/buscador")>
67 <#assign
68 redirectSessionAttr=(request.getSession().getAttribute("LIFERAY_SHARED_redirectToBuscador")??)?then(request.getSession().getAttribute("LIFERAY_SHARED_redirectToBuscador"),"") />
69 <#if redirectSessionAttr !="">
70 <#assign backUrl=redirectSessionAttr />
71 </#if>
72 </#if>
73
74
75 <#assign journalArticleClassname="com.liferay.journal.model.JournalArticle">
76 <#assign
77 AssetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
78 <#assign
79 AssetLinkLocalService=serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService") />
80 <#assign
81 JournalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
82 <#assign
83 dlFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
84 <#assign scopeId=.vars['scopeGroupId'] />
85
86 <#assign journalArticle=JournalArticleLocalService.fetchArticle(getterUtil.getLong(scopeId), contentId)>
87 <#assign journaArticleEntry=AssetEntryLocalService.getEntry(journalArticleClassname,
88 journalArticle.getResourcePrimKey())>
89 <#assign categorys=assetCategoryService.getEntryCategories(journaArticleEntry.getEntryId())>
90
91 <!-- Evitar "En portada" category. Primero Vocabulario actualidadWebMunicipal, luego Actualidad, Distrito -->
92 <#assign categoryId="">
93 <#assign categoryName="">
94 <#list categorys as cat>
95 <#if cat.getVocabularyId()==1303357>
96 <#assign categoryId=cat.getCategoryId()>
97 <#assign categoryName=cat.getTitle(lang)>
98 </#if>
99
100 <#if categoryName !="">
101 <#break>
102 </#if>
103 </#list>
104 <!-- Actualidad -->
105 <#if categoryName=="">
106 <#list categorys as cat>
107 <#if cat.getVocabularyId()==156752>
108 <#assign categoryId=cat.getCategoryId()>
109 <#assign categoryName=cat.getTitle(lang)>
110 </#if>
111
112 <#if categoryName !="">
113 <#break>
114 </#if>
115 </#list>
116 </#if>
117 <!-- Distrito -->
118 <#if categoryName=="">
119 <#list categorys as cat>
120 <#if cat.getVocabularyId()==379729>
121 <#assign categoryId=cat.getCategoryId()>
122 <#assign categoryName=cat.getTitle(lang)>
123 </#if>
124
125 <#if categoryName !="">
126 <#break>
127 </#if>
128 </#list>
129 </#if>
130 <!-- Cualquiera que no sea visualizacion -->
131 <#if categoryName=="">
132 <#list categorys as cat>
133 <#if cat.getVocabularyId() !=38062>
134 <#assign categoryId=cat.getCategoryId()>
135 <#assign categoryName=cat.getTitle(lang)>
136 </#if>
137
138 <#if categoryName !="">
139 <#break>
140 </#if>
141 </#list>
142 </#if>
143
144 <#-- FIX: categorys puede venir vacio -> categorys[0] reventaba -->
145 <#if categoryName=="" && categorys?has_content>
146 <#assign categoryId=categorys[0].getCategoryId()>
147 <#assign categoryName=categorys[0].getTitle(lang)>
148 </#if>
149
150
151 <#assign
152 serviceContext=staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
153 <#assign httpServletRequest=serviceContext.getRequest()>
154
155 <#assign date=publishedDate>
156
157 <!-- variables para ShareThis SocialNetworks -->
158 <#assign imageShareUrl="" />
159 <#assign videoShareUrl="" />
160
161 <div class="container noticia-contenido">
162
163 <#-- Comprobar si estamos en vista previa e incrustar portlet -->
164 <#assign
165 currentUrlLC=(themeDisplay.getURLCurrent()?lower_case)!"" />
166 <#assign isPreviewByUrl=currentUrlLC?contains("/control_panel") ||
167 currentUrlLC?contains("p_l_mode=preview") ||
168 currentUrlLC?contains("preview") />
169 <#-- Fallback extra: cuando estás en el Control Panel (más robusto
170 en muchas instancias) -->
171 <#assign
172 isControlPanelLayout=(themeDisplay.getLayout()?has_content
173 &&
174 (themeDisplay.getLayout().getType()?lower_case)?contains("control_panel"))!false />
175 <#assign showGenerateWord=isPreviewByUrl ||
176 isControlPanelLayout />
177 <#if showGenerateWord>
178 <@liferay_portlet["runtime"]
179 portletName="generar_word_prensa_GenerarWordPrensaPortlet"
180 instanceId="cm6GogTwx3Pb"
181 queryString=("articleId=" + contentId + " &articleTitle=" + title)/>
182 </#if>
183 <#-- fin Incrustar portlet -->
184 <div class=" row">
185 <div class="col-12">
186 <div class="pb-3">
187 <span class="volver">
188 <img src="${themeImagesPath}/icons/icono_volver.svg"
189 alt="">
190 <@liferay.language key="volver" />
191 </span>
192 </div>
193 <#assign urlPaginaCategoria="">
194 <#if lang=="es_ES">
195 <#assign
196 urlPaginaCategoria="/cas/actualidad/-/categories/${categoryId}">
197 <#elseif lang=="ca_ES">
198 <#assign
199 urlPaginaCategoria="/val/actualitat/-/categories/${categoryId}">
200 <#else>
201 <#assign
202 urlPaginaCategoria="/cas/actualidad">
203 </#if>
204 <ul class="listaCategoriasCabecera">
205 <li class="itemCategoria"><a
206 class="enlaceCategoria"
207 href="${urlPaginaCategoria}">${categoryName}</a>
208 </li>
209 </ul>
210 <#-- FIX: campos de cabecera con valor por defecto -->
211 <h2 class="bloque_titulo">${(Titular.getData())!""}
212 </h2>
213 <h3 class="bloque_subtitulo">
214 ${(Antetitulo.getData())!""}</h3>
215
216 <#assign cont=0 />
217 <#-- FIX: no basta con que exista tituloRecurso; debe tener hijo tipoRecurso -->
218 <#if hayRecursos>
219 <#list tituloRecurso.getSiblings() as
220 cur_vImagen>
221 <#-- FIX: parentesis = cubre toda la expresion, no solo el ultimo paso -->
222 <#if ((cur_vImagen.tipoRecurso.getData())!"")=="imagen"
223 && ((cur_vImagen.multimedia.getData())!"")
224 !="">
225 <#assign cont=cont+1 />
226 </#if>
227 </#list>
228 </#if>
229 <#if enlaceYoutube?? &&
230 enlaceYoutube.getSiblings()?has_content>
231
232 <#list enlaceYoutube.getSiblings() as
233 cur_enlaceYoutube>
234 <#if ((cur_enlaceYoutube.getData())!"") !="">
235 <#assign
236 url=cur_enlaceYoutube.getData() />
237 <#assign
238 url=url?replace("watch?v=","
239 embed/") />
240 <iframe id="player" class="div-you"
241 src="${url}"
242 allowfullscreen></iframe>
243 <#assign videoShareUrl=url />
244 <#if ((cur_enlaceYoutube.DescripcionYoutube.getData())!"")
245 !="">
246 <p>•
247 ${cur_enlaceYoutube.DescripcionYoutube.getData()}
248 </p>
249 </#if>
250
251 <#-- FIX: hayRecursos en lugar de tituloRecurso?? -->
252 <#elseif hayRecursos &&
253 tituloRecurso.getSiblings()?has_content>
254 <#if (cont> 1)>
255 <div class="div-img">
256 <ul class="ul-img"
257 id="imgsSlider">
258 <#list
259 tituloRecurso.getSiblings()
260 as cur_vImagen>
261 <#if ((cur_vImagen.tipoRecurso.getData())!"")=="imagen"
262 &&
263 ((cur_vImagen.multimedia.getData())!"")
264 !="">
265 <li
266 class="li-img">
267 <#assign
268 imageJson=jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
269 <#assign
270 imageClassPK=imageJson.getString("classPK")>
271 <#if
272 imageClassPK?has_content>
273 <@adaptive_media_image["img"]
274 class="slider-img"
275 alt=""
276 fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion() />
277 <#else>
278 <#assign
279 fileEntryId=imageJson.getString("fileEntryId")>
280 <@adaptive_media_image["img"]
281 class="slider-img"
282 alt=""
283 fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion() />
284 </#if>
285 <#assign
286 imageShareUrl=themeDisplay.getPortalURL()
287 +
288 cur_vImagen.multimedia.getData() />
289
290 </li>
291
292 </#if>
293 </#list>
294 </ul>
295 </div>
296 </#if>
297 <#if (cont==1)>
298 <#list
299 tituloRecurso.getSiblings()
300 as cur_vImagen>
301 <#if ((cur_vImagen.tipoRecurso.getData())!"")=="imagen"
302 &&
303 ((cur_vImagen.multimedia.getData())!"")
304 !="">
305 <#assign
306 imageJson=jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
307 <#assign
308 imageClassPK=imageJson.getString("classPK")>
309 <#if
310 imageClassPK?has_content>
311 <@adaptive_media_image["img"]
312 class="slider-img"
313 alt=""
314 fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion() />
315 <#else>
316 <#assign
317 fileEntryId=imageJson.getString("fileEntryId")>
318 <@adaptive_media_image["img"]
319 class="slider-img"
320 alt=""
321 fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion() />
322 </#if>
323 <p>•
324 ${(cur_vImagen.descripcionRecurso.getData())!""}
325 </p>
326 <#assign
327 imageShareUrl=themeDisplay.getPortalURL()
328 +
329 cur_vImagen.multimedia.getData() />
330 </#if>
331 </#list>
332 </#if>
333 </#if>
334 <#break>
335 </#list>
336
337 <#else>
338 <#-- FIX: hayRecursos en lugar de tituloRecurso?? -->
339 <#if hayRecursos &&
340 tituloRecurso.getSiblings()?has_content>
341 <#if (cont> 1)>
342 <div class="div-img">
343 <ul class="ul-img"
344 id="imgsSlider">
345 <#list
346 tituloRecurso.getSiblings()
347 as cur_vImagen>
348 <#if ((cur_vImagen.tipoRecurso.getData())!"")=="imagen"
349 &&
350 ((cur_vImagen.multimedia.getData())!"")
351 !="">
352 <li
353 class="li-img">
354 <#assign
355 imageJson=jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
356 <#assign
357 imageClassPK=imageJson.getString("classPK")>
358 <#if
359 imageClassPK?has_content>
360 <@adaptive_media_image["img"]
361 class="slider-img"
362 alt=""
363 fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion() />
364 <#else>
365 <#assign
366 fileEntryId=imageJson.getString("fileEntryId")>
367 <@adaptive_media_image["img"]
368 class="slider-img"
369 alt=""
370 fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion() />
371 </#if>
372 </li>
373
374 </#if>
375 </#list>
376 </ul>
377 </div>
378 </#if>
379 <#if (cont==1)>
380 <#list
381 tituloRecurso.getSiblings()
382 as cur_vImagen>
383 <#if ((cur_vImagen.tipoRecurso.getData())!"")=="imagen"
384 &&
385 ((cur_vImagen.multimedia.getData())!"")
386 !="">
387 <#assign
388 imageJson=jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
389 <#assign
390 imageClassPK=imageJson.getString("classPK")>
391 <#if
392 imageClassPK?has_content>
393 <@adaptive_media_image["img"]
394 class="slider-img"
395 alt=""
396 fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion() />
397 <#else>
398 <#assign
399 fileEntryId=imageJson.getString("fileEntryId")>
400 <@adaptive_media_image["img"]
401 class="slider-img"
402 alt=""
403 fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion() />
404 </#if>
405 <p>•
406 ${(cur_vImagen.descripcionRecurso.getData())!""}
407 </p>
408 <#assign
409 imageShareUrl=themeDisplay.getPortalURL()
410 +
411 cur_vImagen.multimedia.getData() />
412 </#if>
413 </#list>
414 </#if>
415 </#if>
416
417 </#if>
418
419 <div class="dateRedes">
420 <!-- redes sociales -->
421
422 <nav id="compartir"
423 class="compartir-redes-sociales text-right">
424 <ul>
425 <li class="whatsapp"
426 data-lang="compartir_whatsapp">
427 <a id="enlace-whatsapp"
428 class="social-icon"
429 tabindex="1" href=""
430 target="_blank"
431 title="Compartir en Whatsapp"><img
432 id="imagen-social-whatsapp"
433 alt="Compartir en Whatsapp"
434 src='${themeImagesPath}/social-media-icons/whatsapp-social-icon.png'></a>
435 </li>
436
437
438 <li class="twitter"
439 data-lang="compartir_twitter">
440 <a id="enlace-twitter"
441 class="social-icon"
442 tabindex="1" href=""
443 target="_blank"
444 title="Compartir en Twitter"><img
445 id="imagen-social-twitter"
446 alt="Compartir en Twitter"
447 src='${themeImagesPath}/social-media-icons/twitter-social-icon.png'></a>
448 </li>
449
450
451 <li class="facebook"
452 data-lang="compartir_facebook">
453 <a id="enlace-facebook"
454 class="social-icon"
455 tabindex="1" href=""
456 target="_blank"
457 title="Compartir en Facebook"><img
458 id="imagen-social-facebook"
459 alt="Compartir en Facebook"
460 src='${themeImagesPath}/social-media-icons/facebook-social-icon.png'></a>
461 </li>
462
463
464 <li class="mail"
465 data-lang="compartir_email">
466 <a id="enlace-email"
467 class="social-icon mr-0"
468 tabindex="1"
469 href="mailto:?Subject=${title}&Body="
470 title="Compartir por mail"><img
471 id="imagen-social-email"
472 alt="Compartir en mail"
473 src='${themeImagesPath}/social-media-icons/email-social-icon.png'></a>
474 </li>
475
476 </ul>
477 </nav>
478 <p class="noticia-date">
479
480 <#-- FIX: fecha puede no venir informada -->
481 <#assign
482 fecha_Data=getterUtil.getString((fecha.getData())!"")>
483 <#assign fechaInicio="" />
484
485 <#if
486 validator.isNotNull(fecha_Data)>
487
488 <#assign
489 fecha_DateObj=dateUtil.parseDate("yyyy-MM-dd",
490 fecha_Data, locale)>
491 <#assign
492 fechaInicio=dateUtil.getDate(fecha_DateObj, "dd/MM/yyyy"
493 , locale,
494 timeZone)?string />
495
496 <span
497 class="fa fa-calendar"></span>${fechaInicio?has_content?then(fechaInicio,"")}
498
499
500 </#if>
501 </p>
502 </div>
503 <div>
504 ${(Subtitulo.getData())!""}
505 </div>
506 <div>
507 ${(descripcion.getData())!""}
508 </div>
509
510 <#assign
511 article=JournalArticleLocalService.fetchArticle(getterUtil.getLong(scopeId),
512 contentId)>
513
514
515 <!-- Título Recursos Multimedia -->
516 <#assign contitulo="false">
517 <#-- FIX: hayRecursos -->
518 <#if hayRecursos &&
519 (tituloRecurso.getSiblings()?size>
520 0)>
521
522 <#list tituloRecurso.getSiblings()
523 as cur_Recurso>
524 <#if cur_Recurso?is_last &&
525 ((cur_Recurso.getData())!"")
526 !=""
527 &&
528 ((cur_Recurso.tipoRecurso.getData())!"")
529 !="imagen">
530 <div class="row">
531 <div
532 class="col-xs-12 div-multimedia">
533 <h3>
534 <@liferay.language
535 key="noticias.multimedia" />
536 </h3>
537 </div>
538 </div>
539 <#assign contitulo="true">
540 </#if>
541 </#list>
542
543 </#if>
544
545 <#if enlaceFlickr?has_content &&
546 enlaceFlickr.getData()?has_content>
547 <#if contitulo=="false">
548 <div class="row">
549 <div
550 class="col-xs-12 div-multimedia">
551 <h3>
552 <@liferay.language
553 key="noticias.multimedia" />
554 </h3>
555 </div>
556 </div>
557 </#if>
558 <div class="container-flickr">
559 <#assign
560 album=enlaceFlickr.getData()?substring(enlaceFlickr.getData()?last_index_of("/")+1)>
561 <iframe title="Flickr Album"
562 class="iframe-flickr"
563 src="https://flickrembed.com/cms_embed.php?source=flickr&layout=responsive&input=${album}&sort=0&by=album&theme=default_notextpanel&scale=fit&speed=5000&limit=10&skin=default&autoplay=true"
564 scrolling="no"
565 frameborder="0"
566 allowFullScreen="true"
567 webkitallowfullscreen="true"
568 mozallowfullscreen="true">
569 </iframe>
570 </div>
571 <a class="a-flickr"
572 href="${enlaceFlickr.getData()}"
573 target="_blank">
574 <p><strong>
575 <@liferay.language
576 key="noticias-imagenes-flickr" />
577 </strong></p>
578 </a>
579 </#if>
580 </div>
581
582 </div>
583
584
585 <!--Carousel con videos e imágenes-->
586 <#assign continua="false" />
587 <#if enlaceYoutube?? && (enlaceYoutube.getSiblings()?size>= 1)>
588 <#list enlaceYoutube.getSiblings() as cur_enlaceYoutube>
589 <#if cur_enlaceYoutube?index==0 &&
590 ((cur_enlaceYoutube.getData())!"") !="">
591 <div class="row">
592 <div class="col-xs-12 div-multimedia">
593 <h3>
594 <@liferay.language key="noticias.galeria" />
595 </h3>
596 </div>
597 </div>
598 <ul class="ul-imgVid" id="imgsVidsSlider">
599 <#assign continua="true" />
600 </#if>
601 <#if continua=="true">
602 <#if cur_enlaceYoutube?index !=0 &&
603 ((cur_enlaceYoutube.getData())!"") !="">
604 <#assign urlVid=cur_enlaceYoutube.getData() />
605 <#assign urlVid=urlVid?replace("watch?v="," embed/") />
606 <li class="li-imgVid" href="${urlVid}"
607 data-toggle="lightbox" data-gallery="mixedgallery"
608 data-type="youtube">
609
610 <iframe class="slider-imgVid" src="${urlVid}"
611 allowfullscreen></iframe>
612 </li>
613 </#if>
614 </#if>
615 </#list>
616 <#if continua=="true">
617 <#-- FIX: hayRecursos ademas de cont -->
618 <#if hayRecursos && (cont> 0)>
619 <#list tituloRecurso.getSiblings() as cur_vImagen>
620 <#if ((cur_vImagen.tipoRecurso.getData())!"")=="imagen" &&
621 ((cur_vImagen.multimedia.getData())!"") !="">
622 <li class="li-imgVid"
623 href="${cur_vImagen.multimedia.getData()}"
624 data-toggle="lightbox" data-gallery="mixedgallery"
625 data-type="image">
626 <#assign
627 imageJson=jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
628 <#assign
629 imageClassPK=imageJson.getString("classPK")>
630 <#if imageClassPK?has_content>
631 <@adaptive_media_image["img"] alt=""
632 fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion() />
633 <#else>
634 <#assign
635 fileEntryId=imageJson.getString("fileEntryId")>
636 <@adaptive_media_image["img"]
637 alt=""
638 fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion() />
639 </#if>
640
641 <img class="slider-imgVid" alt=""
642 src="${cur_vImagen.multimedia.getData()}" />
643 </li>
644 </#if>
645 </#list>
646 </#if>
647 </#if>
648 </ul>
649 </#if>
650
651
652 <!--Recursos Multimedia-->
653 <#-- FIX: hayRecursos -->
654 <#if hayRecursos && (tituloRecurso.getSiblings()?size>0)>
655
656 <#list tituloRecurso.getSiblings() as cur_RecursoLista>
657 <#assign contiene="false" />
658 <#-- FIX: reinicio de titulo por iteracion; antes arrastraba el valor
659 de la vuelta anterior y podia duplicar tarjetas -->
660 <#assign titulo="" />
661 <#assign icono="" />
662 <#if ((cur_RecursoLista.tipoRecurso.getData())!"") !="imagen">
663 <#if ((cur_RecursoLista.getData())!"") !="">
664 <#assign titulo=cur_RecursoLista.getData() />
665 <#assign contiene="true" />
666 </#if>
667 <#if contiene=="true">
668 <#if ((cur_RecursoLista.tipoRecurso.getData())!"") !="">
669 <#if
670 ((cur_RecursoLista.tipoRecurso.getData())!"")=="audio">
671 <#assign icono="audio" />
672 <#elseif
673 ((cur_RecursoLista.tipoRecurso.getData())!"")=="imagen">
674 <#assign icono="imagen" />
675 <#elseif
676 ((cur_RecursoLista.tipoRecurso.getData())!"")=="documento">
677 <#assign icono="documento" />
678 <#elseif
679 ((cur_RecursoLista.tipoRecurso.getData())!"")=="video">
680 <#assign icono="video" />
681 <#else>
682 <#assign icono="" />
683 </#if>
684 </#if>
685 <#if ((cur_RecursoLista.enlaceRecurso.getData())!"") !="">
686 <#assign
687 enlace=cur_RecursoLista.enlaceRecurso.getData() />
688 <#else>
689 <#assign enlace="#" />
690 </#if>
691 </#if>
692 <#if titulo !="">
693
694 <div class="row col-xl-4 col-lg-4 col-md-6"
695 style="position: relative; float: left;">
696 <div class="col-xs-12 contenido-multimedia mb-4">
697
698 <#-- FIX: multimedia puede venir vacio -->
699 <#assign
700 urlMultimedia=(cur_RecursoLista.multimedia.getData())!"" />
701
702 <#if browserSniffer.isIe(httpServletRequest)>
703 <img class="icono-multimedia"
704 src="${themeImagesPath}/noticias-icons/${icono}-icon.png" /><a
705 href="${urlMultimedia}"
706 title="${titulo}"
707 target="_blank">${titulo}</a>
708 <#else>
709
710 <#if icono=="audio">
711 <audio
712 src="${urlMultimedia}"
713 preload="auto" controls>
714 <img class="icono-multimedia"
715 src="${themeImagesPath}/noticias-icons/${icono}-icon.png" /><a
716 href="${urlMultimedia}"
717 title="${titulo}"
718 target="_blank">${titulo}</a>
719 </audio>
720 <div
721 class="row align-items-center ml-3">
722 <span>${titulo}</span>
723 </div>
724
725 <#elseif icono=="video">
726 <video width="360" height="200"
727 src="${urlMultimedia}?version=1.0&videoPreview=1&type=mp4"
728 preload="auto" controls></video>
729 <div
730 class="row align-items-center ml-2">
731 <a href="${urlMultimedia}?version=1.0&videoPreview=1&type=mp4"
732 title="${titulo}"
733 target="_blank">${titulo}</a>
734 </div>
735 <#else>
736 <img class="icono-multimedia"
737 src="${themeImagesPath}/noticias-icons/${icono}-icon.png" /><a
738 href="${urlMultimedia}"
739 title="${titulo}"
740 target="_blank">${titulo}</a>
741 </#if>
742
743 </#if>
744
745
746 </div>
747 </div>
748
749 </#if>
750 </#if>
751 </#list>
752 </#if>
753
754
755
756 <!-- buscamos contenidos relacionados -->
757 <div class="noticia-contenido-related-content">
758
759 <#assign
760 articleEntry=AssetEntryLocalService.getEntry(journalArticleClassname,
761 article.getResourcePrimKey())>
762 <#assign groupIdEntry=articleEntry.getGroupId()>
763
764 <#assign
765 relatedEntries=AssetLinkLocalService.getDirectLinks(articleEntry.getEntryId())>
766 <#assign
767 listCategory=assetCategoryService.getEntryCategories(articleEntry.getEntryId())>
768
769 <#assign noticiasRel=[] />
770 <#if relatedEntries?has_content>
771 <#assign ddmKeyNoticia="156671">
772 <#list relatedEntries as relatedAsset>
773 <#assign
774 relatedEntry=AssetEntryLocalService.getEntry(relatedAsset.getEntryId2())>
775 <#assign
776 entryClassPK=relatedEntry.getClassPK()>
777
778 <#assign
779 journalArticleClassname="com.liferay.journal.model.JournalArticle">
780 <#-- FIX: la comprobacion de estructura estaba FUERA del if.
781 Si el asset relacionado no era un JournalArticle se usaba
782 el relatedArticle de la vuelta anterior (o ninguno). -->
783 <#if
784 journalArticleClassname==relatedEntry.getClassName()>
785 <#assign
786 relatedArticle=JournalArticleLocalService.fetchLatestArticle(entryClassPK)>
787 <#if relatedArticle?? &&
788 relatedArticle.getDDMStructureKey()==ddmKeyNoticia>
789 <#assign
790 noticiasRel=noticiasRel
791 + [relatedArticle] />
792 </#if>
793 </#if>
794 </#list>
795 <#if (noticiasRel?size>0)>
796 <div class="row"
797 style="background: linear-gradient(rgba(255,255,255,.8), rgba(255,255,255,.8)), url(/o/valencia-theme/css/img/puente-las-flores_RECT.JPG); background-size: cover; background-position: center;">
798 <div class="col-xs-12">
799 <div class="row">
800 <div class="col-xs-12">
801 <h3>
802 <@liferay.language
803 key="noticias.relacionadas" />
804 </h3>
805 </div>
806 </div>
807 <div class="row">
808 <div class="col-xs-12">
809 <#assign contNoticias=0 />
810
811 <ul id="categorySlider">
812 <#list noticiasRel as
813 noticiaRel>
814
815 <#-- FIX: toda la resolucion de imagen de la
816 noticia relacionada va en attempt/recover.
817 Una relacionada mal formada no debe tumbar
818 la pagina que la enlaza. -->
819 <#attempt>
820 <#assign
821 imagen="${themeImagesPath}/imagen_no_disponible.jpg">
822 <#assign imagen3=imagen />
823
824 <#assign
825 rootElement=saxReaderUtil.read(noticiaRel.getContentByLocale(locale)).getRootElement() />
826 <#assign
827 selectorTipo=saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso'
828 ]/dynamic-element[@name='tipoRecurso'
829 ]") />
830
831 <#assign
832 selector=saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso'
833 ]/dynamic-element[@name='multimedia'
834 ]") />
835 <#-- FIX: se leia relatedArticle (ultimo del bucle
836 anterior) en vez de la noticia actual -->
837 <#assign
838 document=saxReaderUtil.read(noticiaRel.getContentByLocale(locale))>
839
840 <#assign tipo="" />
841 <#if
842 selectorTipo.selectSingleNode(rootElement)?has_content>
843 <#assign
844 tipo=selectorTipo.selectSingleNode(rootElement).getStringValue()?replace("\"", ""
845 ) />
846 </#if>
847 <#if
848 tipo?trim=="imagen"
849 &&
850 selector.selectSingleNode(rootElement)?has_content>
851 <#assign
852 jsonObjectString=document.valueOf("//dynamic-element[@name='multimedia'
853 ]/dynamic-content/text()") />
854 <#if
855 jsonObjectString?has_content>
856 <#assign
857 jsonObject=jsonFactoryUtil.createJSONObject(jsonObjectString)>
858 <#assign
859 entryUuid=jsonObject.getString("uuid") />
860 <#assign
861 entryGroupId=getterUtil.getLong(jsonObject.getString("groupId")) />
862 <#assign
863 dlFileEntry=dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid,
864 entryGroupId) />
865 <#assign
866 assetEntry=AssetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry",dlFileEntry.fileEntryId) />
867 <#assign
868 assetRenderer=assetEntry.assetRenderer />
869 <#assign
870 imagen=assetRenderer.getURLDownload(themeDisplay) />
871 <#assign imagen3=imagen />
872 </#if>
873 </#if>
874
875 <#assign
876 selectorTitular=saxReaderUtil.createXPath("dynamic-element[@name='Titular'
877 ]") />
878 <#assign titularRelacionada="" />
879 <#if
880 selectorTitular.selectSingleNode(rootElement)?has_content>
881 <#assign
882 titularRelacionada=selectorTitular.selectSingleNode(rootElement).getStringValue()?replace("\"", ""
883 ) />
884 </#if>
885 <#recover>
886 <#assign imagen3="${themeImagesPath}/imagen_no_disponible.jpg" />
887 <#assign titularRelacionada=(noticiaRel.getTitle(locale))!"" />
888 </#attempt>
889
890 <li
891 class="li-slider">
892 <a class="a-related"
893 href="/-/${noticiaRel.getUrlTitle()}">
894 <div class="div-related"
895 style="max-height:300px;">
896 <img src="${imagen3!""}"
897 alt=""
898 style="width: 260px; height: 200px;">
899 </div>
900 <span>${titularRelacionada!""}</span>
901 </a>
902 </li>
903 <#assign
904 contNoticias=contNoticias
905 + 1 />
906 <#if
907 (contNoticias==8)>
908 <#break>
909 </#if>
910
911 </#list>
912 </ul>
913 </div>
914 </div>
915
916 </div>
917 </div>
918 </#if> <#-- if (noticiasRel?size>0) -->
919 </#if> <#-- relatedEntries?has_content -->
920
921 <#-- FIX: listCategory podia venir vacia -> listCategory[0] reventaba -->
922 <#if listCategory?has_content &&
923 !relatedEntries?has_content>
924 <#assign
925 entries=commonUtilsApi.findRelatedContentByStructure(themeDisplay.getCompanyId(),themeDisplay.getUserId(),themeDisplay.getScopeGroupId(),categoryId,"${journalArticle.getDDMStructureKey()}",0,8) />
926
927 <#if entries?has_content>
928 <div id="relatedByCategory" class="row"
929 style=" background-color: #e0e0e0;">
930 <div class="col-xs-12">
931 <div class="row">
932 <div class="col-xs-12">
933 <h3>
934 <@liferay.language
935 key="noticias.relacionadas" />
936 </h3>
937 </div>
938 </div>
939 <div class="row">
940 <div class="col-xs-12">
941
942 <ul id="categorySlider">
943 <#list entries as
944 noticiaAsset>
945
946 <#-- FIX: attempt global por item -->
947 <#attempt>
948 <#assign
949 noticiaRel=journalArticleLocalService.fetchLatestArticle(getterUtil.getLong(noticiaAsset.getField("entryClassPK").getValue())) />
950 <#assign
951 imagen="${themeImagesPath}/imagen_no_disponible.jpg">
952
953 <#assign
954 rootElement=saxReaderUtil.read(noticiaRel.getContentByLocale(locale)).getRootElement() />
955 <#assign
956 selectorTipo=saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso'
957 ]/dynamic-element[@name='tipoRecurso'
958 ]") />
959 <#assign
960 selectorTipoImagen=saxReaderUtil.createXPath("dynamic-element[@name='tituloRecursoFieldSet'
961 ]/dynamic-element[@name='tituloRecursoFieldSetFieldSet'
962 ]/dynamic-element[@name='tipoRecurso'
963 ]") />
964
965 <#assign
966 selector=saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso'
967 ]/dynamic-element[@name='multimedia'
968 ]") />
969 <#assign
970 selectorImagen=saxReaderUtil.createXPath("dynamic-element[@name='tituloRecursoFieldSet'
971 ]/dynamic-element[@name='tituloRecursoFieldSetFieldSet'
972 ]/dynamic-element[@name='multimedia'
973 ]") />
974
975 <#assign
976 document=saxReaderUtil.read(noticiaRel.getContentByLocale(locale))>
977
978 <#assign tipo="" />
979 <#assign tipoImagen="" />
980
981 <#if
982 selectorTipo.selectSingleNode(rootElement)?has_content>
983 <#assign
984 tipo=selectorTipo.selectSingleNode(rootElement).getStringValue()?replace("\"", ""
985 ) />
986 </#if>
987 <#if
988 selectorTipoImagen.selectSingleNode(rootElement)?has_content>
989 <#assign
990 tipoImagen=selectorTipoImagen.selectSingleNode(rootElement).getStringValue()?replace("\"", ""
991 ) />
992 </#if>
993
994 <#if tipoImagen?trim=="imagen"
995 &&
996 selectorImagen.selectSingleNode(rootElement)?has_content>
997 <#assign
998 jsonObjectString=selectorImagen.selectSingleNode(rootElement).getStringValue() />
999 <#if
1000 jsonObjectString?has_content>
1001 <#attempt>
1002 <#assign
1003 jsonObject=jsonFactoryUtil.createJSONObject(jsonObjectString) />
1004 <#assign
1005 entryUuid=jsonObject.getString("uuid") />
1006 <#assign
1007 entryGroupId=getterUtil.getLong(jsonObject.getString("groupId")) />
1008 <#attempt>
1009 <#assign
1010 dlFileEntry=dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid,
1011 entryGroupId) />
1012 <#recover>
1013 <#assign
1014 dlFileEntry=dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId("f210c305-77c0-5891-b21c-439ff1267042",
1015 20142) />
1016 </#attempt>
1017 <#assign
1018 assetEntry=AssetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry",
1019 dlFileEntry.fileEntryId) />
1020 <#assign
1021 assetRenderer=assetEntry.assetRenderer />
1022 <#assign
1023 imagen=assetRenderer.getURLDownload(themeDisplay) />
1024 <#recover>
1025
1026 </#recover>
1027 </#if>
1028
1029 </#if>
1030
1031 <#assign
1032 selectorTitular=saxReaderUtil.createXPath("dynamic-element[@name='Titular'
1033 ]") />
1034 <#assign titularRelacionada="" />
1035 <#if
1036 selectorTitular.selectSingleNode(rootElement)?has_content>
1037 <#assign
1038 titularRelacionada=selectorTitular.selectSingleNode(rootElement).getStringValue()?replace("\"", ""
1039 ) />
1040 </#if>
1041 <#recover>
1042 <#assign imagen="${themeImagesPath}/imagen_no_disponible.jpg" />
1043 <#assign titularRelacionada="" />
1044 </#attempt>
1045
1046 <#if noticiaRel?? && "/-/"
1047 +noticiaRel.getUrlTitle()
1048 !=themeDisplay.getURLCurrent()>
1049 <li>
1050 <#if
1051 lang=="es_ES">
1052 <#assign
1053 urlTitularRel="/cas/actualidad/-/content/${noticiaRel.getUrlTitle()}" />
1054 <a class="a-related"
1055 href="${urlTitularRel}">
1056 <div class="div-related"
1057 style="max-height:300px;">
1058 <img src="${imagen!""}"
1059 alt=""
1060 style="width: 100%;">
1061 </div>
1062 <span>${titularRelacionada!""}</span>
1063 </a>
1064 <#elseif
1065 lang=="ca_ES">
1066 <#assign
1067 urlTitularRel="/val/actualitat/-/content/${noticiaRel.getUrlTitle()}" />
1068 <a class="a-related"
1069 href="${urlTitularRel}">
1070 <div class="div-related"
1071 style="max-height:300px;">
1072 <img src="${imagen!""}"
1073 alt=""
1074 style="width: 100%;">
1075 </div>
1076 <span>${titularRelacionada!""}</span>
1077 </a>
1078 <#else>
1079 <#assign
1080 urlTitularRel="/val/actualitat/-/content/${noticiaRel.getUrlTitle()}" />
1081 <a class="a-related"
1082 href="${urlTitularRel}">
1083 <div class="div-related"
1084 style="max-height:300px;">
1085 <img src="${imagen!""}"
1086 alt=""
1087 style="width: 100%;">
1088 </div>
1089 <span>${titularRelacionada!""}</span>
1090 </a>
1091 </#if>
1092 </li>
1093 </#if>
1094
1095 </#list>
1096 </ul>
1097
1098 </div>
1099 </div>
1100
1101 </div>
1102 </div>
1103 </#if> <#-- if entries?has_content -->
1104 </#if> <#-- if listCategory?has_content &&
1105 !relatedEntries?has_content -->
1106
1107 </div> <!-- class = "noticia-contenido-related-content" -->
1108
1109
1110 </div> <!-- class="container noticia-contenido" -->
1111
1112
1113 <@liferay_portlet["runtime"]
1114 portletName="socialnetwork_share_Actualidad_SocialnetworkSharePortlet" />
1115
1116 <script type="text/javascript">
1117
1118 $(document).ready(function () {
1119 var backUrl = "${backUrl}";
1120 var titularSanitized = encodeURIComponent('${((Titular.getData())!"")?js_string}');
1121
1122 // Modificamos los enlaces de los social media buttons
1123 var urlNoticiaActual = "${urlArticleNoContext}";
1124
1125 var enlaceWhatsapp = document.getElementById("enlace-whatsapp");
1126 var cadenaWhatsapp = "whatsapp://send?text=";
1127 enlaceWhatsapp.setAttribute("href", cadenaWhatsapp.concat(urlNoticiaActual));
1128
1129 var enlaceTwitter = document.getElementById("enlace-twitter");
1130 var cadenaTwitter = "https://twitter.com/intent/tweet?original_referer=";
1131 cadenaTwitter = cadenaTwitter.concat(urlNoticiaActual);
1132 cadenaTwitter = cadenaTwitter.concat("&text=").concat(titularSanitized).concat(" ").concat(urlNoticiaActual);
1133 cadenaTwitter = cadenaTwitter.concat("&via=AjuntamentVLC");
1134 enlaceTwitter.setAttribute("href", cadenaTwitter);
1135
1136 var enlaceFacebook = document.getElementById("enlace-facebook");
1137 var cadenaFacebook = "http://www.facebook.com/sharer/sharer.php?u=";
1138 enlaceFacebook.setAttribute("href", cadenaFacebook.concat(urlNoticiaActual));
1139
1140 var enlaceEmail = document.getElementById("enlace-email");
1141 var cadenaEmail = enlaceEmail.getAttribute("href");
1142 enlaceEmail.setAttribute("href", cadenaEmail.concat(urlNoticiaActual));
1143
1144 var imgsSlider = $("#imgsSlider").lightSlider({
1145 item: 1,
1146 autoWidth: false,
1147 mode: "slide",
1148 slideMove: 1,
1149 speed: 2000, //ms'
1150 auto: true,
1151 loop: true,
1152 slideEndAnimation: true,
1153 pause: 5000,
1154
1155 keyPress: false,
1156 controls: true,
1157 prevHtml: '<i class="fa fa-chevron-left"> </i>',
1158 nextHtml: '<i class="fa fa-chevron-right"> </i>',
1159 vertical: false,
1160
1161 thumbItem: 10,
1162 pager: false,
1163 gallery: false,
1164 currentPagerPosition: 'middle',
1165
1166 enableTouch: true,
1167 enableDrag: true,
1168 freeMove: true,
1169 swipeThreshold: 40,
1170 responsive: [{
1171 breakpoint: 1200,
1172 settings: {
1173 item: 1,
1174 }
1175 },
1176 {
1177 breakpoint: 800,
1178 settings: {
1179 item: 1,
1180 slideMove: 1,
1181 }
1182 },
1183 {
1184 breakpoint: 480,
1185 settings: {
1186 item: 1,
1187 slideMove: 1,
1188 }
1189 }],
1190
1191 onBeforeStart: function (el) { },
1192 onSliderLoad: function (el) { },
1193 onBeforeSlide: function (el) { },
1194 onAfterSlide: function (el) { },
1195 onBeforeNextSlide: function (el) { },
1196 onBeforePrevSlide: function (el) { }
1197
1198 });
1199 var sliderImgVid = $("#imgsVidsSlider").lightSlider({
1200 item: 4,
1201 autoWidth: false,
1202 mode: "slide",
1203 slideMove: 2,
1204 speed: 500, //ms'
1205 auto: true,
1206 loop: true,
1207 slideEndAnimation: true,
1208 pause: 2000,
1209
1210 keyPress: false,
1211 controls: true,
1212 prevHtml: '<i class="fa fa-chevron-left"> </i>',
1213 nextHtml: '<i class="fa fa-chevron-right"> </i>',
1214 vertical: false,
1215
1216 thumbItem: 10,
1217 pager: true,
1218 gallery: false,
1219 currentPagerPosition: 'middle',
1220
1221 enableTouch: true,
1222 enableDrag: true,
1223 freeMove: true,
1224 swipeThreshold: 40,
1225 responsive: [{
1226 breakpoint: 1200,
1227 settings: {
1228 item: 4,
1229 }
1230 },
1231 {
1232 breakpoint: 800,
1233 settings: {
1234 item: 3,
1235 slideMove: 1,
1236 }
1237 },
1238 {
1239 breakpoint: 480,
1240 settings: {
1241 item: 1,
1242 slideMove: 1,
1243 }
1244 }],
1245
1246 onBeforeStart: function (el) { },
1247 onSliderLoad: function (el) { },
1248 onBeforeSlide: function (el) { },
1249 onAfterSlide: function (el) { },
1250 onBeforeNextSlide: function (el) { },
1251 onBeforePrevSlide: function (el) { }
1252
1253 });
1254 var slider = $("#categorySlider").lightSlider({
1255 item: 4,
1256 autoWidth: false,
1257 mode: "slide",
1258 slideMove: 1,
1259 speed: 2000, //ms'
1260 auto: true,
1261 loop: true,
1262 slideEndAnimation: false,
1263 pause: 6000,
1264
1265 keyPress: true,
1266 controls: true,
1267 prevHtml: '<i class="fa fa-chevron-left"> </i>',
1268 nextHtml: '<i class="fa fa-chevron-right"> </i>',
1269 vertical: false,
1270
1271 thumbItem: 10,
1272 pager: true,
1273 gallery: false,
1274 currentPagerPosition: 'middle',
1275
1276 enableTouch: true,
1277 enableDrag: true,
1278 freeMove: true,
1279 swipeThreshold: 40,
1280 responsive: [{
1281 breakpoint: 1200,
1282 settings: {
1283 item: 3,
1284 }
1285 },
1286 {
1287 breakpoint: 990,
1288 settings: {
1289 item: 2,
1290 slideMove: 1,
1291 }
1292 },
1293 {
1294 breakpoint: 768,
1295 settings: {
1296 item: 1,
1297 slideMove: 1,
1298 }
1299 }],
1300
1301 onBeforeStart: function (el) { },
1302 onSliderLoad: function (el) { },
1303 onBeforeSlide: function (el) { },
1304 onAfterSlide: function (el) { },
1305 onBeforeNextSlide: function (el) { },
1306 onBeforePrevSlide: function (el) { }
1307
1308 });
1309
1310 // añade play/pause a botones inferiores del carrusel
1311 $('.lSPager').wrap('<div class="slider-dots-wrapper"></div>');
1312 $('.slider-dots-wrapper').prepend('<span class="btn-play glyphicon">');
1313 $('.btn-play').on('click', function () {
1314 if ($('.btn-play').hasClass('btn-play-paused')) {
1315 slider.play();
1316 } else {
1317 slider.pause();
1318 }
1319 $('.btn-play').toggleClass('btn-play-paused');
1320 });
1321
1322 jQuery.urlParam = function (name) {
1323 var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
1324 return results ? results[1] : 0;
1325 }
1326
1327 var redirectParam = jQuery.urlParam("redirect");
1328 $(".volver").on("click", function () {
1329 if (redirectParam !== 0) {
1330 window.location.href = decodeURIComponent(redirectParam);
1331 } else if (backUrl == ""
1332 || (backUrl.length > 6 && backUrl.substring(backUrl.length - 7, backUrl.length).toLowerCase() == "/client")) {
1333 history.go(-1);
1334 } else {
1335 window.location.href = backUrl;
1336 }
1337 });
1338
1339 $('.div-multimedia').click(function () {
1340 $('.contenido-multimedia').toggle();
1341 });
1342
1343 $('.lexicon-icon-share-alt').replaceWith('<img class="img-compartir" src="${themeImagesPath}/icons/icono_compartir.svg">')
1344 var shareButtons = $('.pull-right');
1345 $('.div-share').append(shareButtons);
1346
1347 $('.clone').css("text-align", "left");
1348
1349 });
1350
1351 $(document).on('click', '[data-toggle="lightbox"]', function (event) {
1352 event.preventDefault();
1353 $(this).ekkoLightbox({
1354 alwaysShowClose: true
1355 });
1356 });
1357
1358 // modifica title en head del html
1359 document.title = '${((Titular.getData())!"")?js_string}';
1360
1361 function showpics() {
1362 var a = $("#box").val(); $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=" + a + "&tagmode=any&format=json&jsoncallback=?", function (a) { $("#images").hide().html(a).fadeIn("fast"), $.each(a.items, function (a, e) { $("<img/>").attr("src", e.media.m).appendTo("#images") }) })
1363 }
1364 </script>
1365 <style>
1366 .noticia-contenido-related-content {
1367 font-size: 0.9em;
1368 clear: both;
1369 }
1370
1371 .fa {
1372 margin-right: 0.7em;
1373 }
1374
1375 .noticia-date {
1376 padding-top: 15px !important;
1377 }
1378
1379 .compartir-redes-sociales ul {
1380 background-color: transparent;
1381 }
1382
1383 #compartir {
1384 width: 50 !important;
1385 float: right !important;
1386 }
1387
1388 .dateRedes {
1389 margin-bottom: 3%;
1390 }
1391
1392 .listaCategoriasCabecera {
1393 display: flex;
1394 margin-top: 10px;
1395 margin-bottom: 10px;
1396 list-style: none;
1397 }
1398
1399 .itemCategoria::before {
1400 content: "\2022";
1401 color: #ffcd00;
1402 font-size: 90px;
1403 line-height: 0;
1404 }
1405
1406 .enlaceCategoria {
1407 display: block;
1408 margin-top: -41px;
1409 padding-left: 30px;
1410 }
1411
1412 .lSSlideOuter .lSPager.lSpg>li.active a,
1413 .lSSlideOuter .lSPager.lSpg>li:hover a {
1414 background-color: #ffcd00;
1415 }
1416
1417 .btn-default {
1418 background-color: black;
1419 }
1420
1421 .noticia-contenido .slider-img {
1422 max-height: 38em !important;
1423 height: auto;
1424 }
1425
1426 .container-flickr {
1427 height: 520px;
1428 width: 100%;
1429 padding: 0;
1430 margin: 0;
1431 }
1432
1433 .iframe-flickr {
1434 width: 100%;
1435 height: 100%;
1436 }
1437
1438 .a-flickr {
1439 text-align: center;
1440 margin-top: 1em;
1441 }
1442
1443 #relatedByCategory h3 {
1444 margin-top: 0.5rem;
1445 }
1446
1447 #relatedByCategory .lslide .a-related span,
1448 #relatedByCategory .clone .a-related span {
1449 font-family: Montserrat-SemiBold;
1450 display: block;
1451 margin-top: 5px;
1452 }
1453
1454 .slider-dots-wrapper {
1455 text-align: center;
1456 }
1457
1458 .noticia-contenido-related-content .btn-play {
1459 color: #222;
1460 display: inline-block;
1461 font-size: 13px;
1462 }
1463
1464 .noticia-contenido-related-content .btn-play:hover {
1465 cursor: pointer;
1466 }
1467
1468 .noticia-contenido-related-content .btn-play:before {
1469 content: "\e073";
1470 }
1471
1472 .noticia-contenido-related-content .btn-play-paused:before {
1473 content: "\e072";
1474 }
1475
1476 .lSSlideOuter .lSPager.lSpg {
1477 display: inline-block;
1478 }
1479
1480 .lSSlideOuter .lSPager.lSpg>li a {
1481 width: 10px;
1482 height: 10px;
1483 }
1484
1485 div.div-related picture {
1486 display: unset;
1487 }
1488
1489 #p_p_id_BusquedaNoticias_INSTANCE_V791mPRXG6Ah_,
1490 #p_p_id_com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_bIh9UFapkll4_ {
1491 display: none;
1492 }
1493 </style>