EL AYUNTAMIENTO APRUEBA UN PROTOCOLO DE ACTUACIÓN PARA CASOS DE EPISODIOS DE ALTA CONTAMINACIÓN ATMOSFÉRICA. - València
EL AYUNTAMIENTO APRUEBA UN PROTOCOLO DE ACTUACIÓN PARA CASOS DE EPISODIOS DE ALTA CONTAMINACIÓN ATMOSFÉRICA.
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> cur_vImagen.tipoRecurso [in template "20115#20151#158259" at line 175, column 47]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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: #if cur_vImagen.tipoRecurso.getData()... [in template "20115#20151#158259" at line 175, column 41]
----
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 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
7<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
8<#assign lang = themeDisplay.getLocale()>
9<#assign commonUtilsApi =serviceLocator.findService("com.valencia.liferay.common.utils.api.CommonUtilsApi")/>
10
11<script>
12$(document).ready(function(){
13 $(".slider-img").parent().parent().show();
14$(".slider-img").parent().show();
15});
16
17 if(window.hasOwnProperty("define") && define.amd){
18 define._amd = define.amd;
19 define.amd = false;
20 }
21</script>
22<script src="${themeRootPath}/js/lightslider.min.js"></script>
23<script src="${themeRootPath}/js/ekko-lightbox.js"></script>
24<link type="text/css" rel="stylesheet" href="${themeRootPath}/css/ext/lightslider.min.css" />
25<link type="text/css" rel="stylesheet" href="${themeRootPath}/css/ext/ekko-lightbox.css" />
26<script>
27 if(window.hasOwnProperty("define") && define._amd){
28 define.amd = define._amd;
29 }
30</script>
31
32
33<!-- variables -->
34<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
35<#assign urlArticle = .vars['reserved-article-url-title'].data />
36<#assign urlArticleNoContext = themeDisplay.getPortalURL() + "/-/" + urlArticle />
37<#assign publishedDate = .vars['reserved-article-create-date'].data />
38<#assign title = .vars['reserved-article-title'].data />
39<#assign description = .vars['reserved-article-description'].data />
40<#assign contentId = .vars['reserved-article-id'].data>
41<#assign liferay_ui = taglibLiferayHash["/META-INF/liferay-ui.tld"] />
42<#assign liferay_portlet = taglibLiferayHash["/META-INF/liferay-portlet-ext.tld"] />
43<#assign vocabularyID = getterUtil.getLong(156752) />
44<#assign backUrl = "" />
45<#if request.getHeader("Referer")?? >
46 <#assign backUrl = request.getHeader("Referer") />
47</#if>
48
49<#if backUrl?contains("/buscador")>
50 <#assign redirectSessionAttr = (request.getSession().getAttribute("LIFERAY_SHARED_redirectToBuscador")??)?then(request.getSession().getAttribute("LIFERAY_SHARED_redirectToBuscador"),"")/>
51 <#if redirectSessionAttr != "" >
52 <#assign backUrl = redirectSessionAttr />
53 </#if>
54</#if>
55
56
57<#assign journalArticleClassname = "com.liferay.journal.model.JournalArticle" >
58<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
59<#assign AssetLinkLocalService = serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService") />
60<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
61<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
62<#assign scopeId = .vars['scopeGroupId'] />
63
64<#assign journalArticle = JournalArticleLocalService.fetchArticle(getterUtil.getLong(scopeId), contentId)>
65<#assign journaArticleEntry = AssetEntryLocalService.getEntry(journalArticleClassname, journalArticle.getResourcePrimKey())>
66<#assign categorys = assetCategoryService.getEntryCategories(journaArticleEntry.getEntryId()) >
67
68<!-- Evitar "En portada" category. Primero Vocabulario actualidadWebMunicipal, luego Actualidad, Distrito -->
69<#assign categoryId = "" >
70<#assign categoryName = "" >
71<#list categorys as cat>
72 <#if cat.getVocabularyId() == 1303357>
73 <#assign categoryId = cat.getCategoryId() >
74 <#assign categoryName = cat.getTitle(lang) >
75 </#if>
76
77 <#if categoryName != "">
78 <#break>
79 </#if>
80</#list>
81<!-- Actualidad -->
82<#if categoryName == "">
83 <#list categorys as cat>
84 <#if cat.getVocabularyId() == 156752>
85 <#assign categoryId = cat.getCategoryId() >
86 <#assign categoryName = cat.getTitle(lang) >
87 </#if>
88
89 <#if categoryName != "">
90 <#break>
91 </#if>
92 </#list>
93</#if>
94<!-- Distrito -->
95<#if categoryName == "">
96 <#list categorys as cat>
97 <#if cat.getVocabularyId() == 379729>
98 <#assign categoryId = cat.getCategoryId() >
99 <#assign categoryName = cat.getTitle(lang) >
100 </#if>
101
102 <#if categoryName != "">
103 <#break>
104 </#if>
105 </#list>
106</#if>
107<!-- Cualquiera que no sea visualizacion -->
108<#if categoryName == "">
109 <#list categorys as cat>
110 <#if cat.getVocabularyId() != 38062>
111 <#assign categoryId = cat.getCategoryId() >
112 <#assign categoryName = cat.getTitle(lang) >
113 </#if>
114
115 <#if categoryName != "">
116 <#break>
117 </#if>
118 </#list>
119</#if>
120
121<#if categoryName == "">
122 <#assign categoryId = categorys[0].getCategoryId() >
123 <#assign categoryName = categorys[0].getTitle(lang) >
124</#if>
125
126
127<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() />
128<#assign httpServletRequest = serviceContext.getRequest()>
129
130<#assign date = publishedDate>
131
132<!-- variables para ShareThis SocialNetworks -->
133<#assign imageShareUrl = "" />
134<#assign videoShareUrl = "" />
135
136<div class="container noticia-contenido">
137
138 <#-- Comprobar si estamos en vista previa e incrustar portlet -->
139 <#assign currentUrlLC = (themeDisplay.getURLCurrent()?lower_case)!"" />
140 <#assign isPreviewByUrl = currentUrlLC?contains("/control_panel") || currentUrlLC?contains("p_l_mode=preview") || currentUrlLC?contains("preview") />
141 <#-- Fallback extra: cuando estás en el Control Panel (más robusto en muchas instancias) -->
142 <#assign isControlPanelLayout = (themeDisplay.getLayout()?has_content && (themeDisplay.getLayout().getType()?lower_case)?contains("control_panel"))!false />
143 <#assign showGenerateWord = isPreviewByUrl || isControlPanelLayout />
144 <#if showGenerateWord>
145 <@liferay_portlet["runtime"]
146 portletName="generar_word_prensa_GenerarWordPrensaPortlet"
147 instanceId="cm6GogTwx3Pb"
148 queryString=("articleId=" + contentId + "&articleTitle=" + title)/>
149 </#if>
150 <#-- fin Incrustar portlet -->
151 <div class="row">
152 <div class="col-12">
153 <div class="pb-3">
154 <span class="volver">
155 <img src="${themeImagesPath}/icons/icono_volver.svg" alt=""> <@liferay.language key="volver" />
156 </span>
157 </div>
158 <#assign urlPaginaCategoria = "">
159 <#if lang == "es_ES">
160 <#assign urlPaginaCategoria= "/cas/actualidad/-/categories/${categoryId}">
161 <#elseif lang == "ca_ES" >
162 <#assign urlPaginaCategoria= "/val/actualitat/-/categories/${categoryId}">
163 <#else>
164 <#assign urlPaginaCategoria = "/cas/actualidad">
165 </#if>
166 <ul class="listaCategoriasCabecera">
167 <li class="itemCategoria"><a class="enlaceCategoria" href="${urlPaginaCategoria}">${categoryName}</a></li>
168 </ul>
169 <h2 class="bloque_titulo">${Titular.getData()}</h2>
170 <h3 class="bloque_subtitulo">${Antetitulo.getData()}</h3>
171
172 <#assign cont=0 />
173 <#if tituloRecurso??>
174 <#list tituloRecurso.getSiblings() as cur_vImagen>
175 <#if cur_vImagen.tipoRecurso.getData() == "imagen" && cur_vImagen.multimedia.getData() != "">
176 <#assign cont = cont+1 />
177 </#if>
178 </#list>
179 </#if>
180 <#if enlaceYoutube?? && enlaceYoutube.getSiblings()?has_content>
181
182 <#list enlaceYoutube.getSiblings() as cur_enlaceYoutube>
183 <#if cur_enlaceYoutube.getData()?? && cur_enlaceYoutube.getData() != "">
184 <#assign url = cur_enlaceYoutube.getData()/>
185 <#assign url = url?replace("watch?v=","embed/")/>
186 <iframe id="player" class="div-you" src="${url}"allowfullscreen></iframe>
187 <#assign videoShareUrl = url />
188 <#if cur_enlaceYoutube.DescripcionYoutube?? && cur_enlaceYoutube.DescripcionYoutube.getData() != "">
189 <p>• ${cur_enlaceYoutube.DescripcionYoutube.getData()}</p>
190 </#if>
191
192 <#elseif tituloRecurso?? && tituloRecurso.getSiblings()?has_content>
193 <#if (cont > 1)>
194 <div class="div-img">
195 <ul class="ul-img" id="imgsSlider">
196 <#list tituloRecurso.getSiblings() as cur_vImagen>
197 <#if cur_vImagen.tipoRecurso.getData() == "imagen" && cur_vImagen.multimedia.getData() != "">
198 <li class="li-img">
199 <#assign imageJson = jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
200 <#assign imageClassPK = imageJson.getString("classPK")>
201 <#if imageClassPK?has_content>
202 <@adaptive_media_image["img"] class="slider-img" alt="" fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion()/>
203 <#else>
204 <#assign fileEntryId = imageJson.getString("fileEntryId")>
205 <@adaptive_media_image["img"] class="slider-img" alt="" fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion()/>
206 </#if>
207 <#assign imageShareUrl = themeDisplay.getPortalURL() + cur_vImagen.multimedia.getData() />
208
209 </li>
210
211 </#if>
212 </#list>
213 </ul>
214 </div>
215 </#if>
216 <#if (cont == 1)>
217 <#list tituloRecurso.getSiblings() as cur_vImagen>
218 <#if cur_vImagen.tipoRecurso.getData() == "imagen" && cur_vImagen.multimedia.getData() != "">
219 <#assign imageJson = jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
220 <#assign imageClassPK = imageJson.getString("classPK")>
221 <#if imageClassPK?has_content>
222 <@adaptive_media_image["img"] class="slider-img" alt="" fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion()/>
223 <#else>
224 <#assign fileEntryId = imageJson.getString("fileEntryId")>
225 <@adaptive_media_image["img"] class="slider-img" alt="" fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion()/>
226 </#if>
227 <p>• ${cur_vImagen.descripcionRecurso.getData()}</p>
228 <#assign imageShareUrl = themeDisplay.getPortalURL() + cur_vImagen.multimedia.getData() />
229 </#if>
230 </#list>
231 </#if>
232 </#if>
233 <#break>
234 </#list>
235
236 <#else>
237 <#if tituloRecurso?? && tituloRecurso.getSiblings()?has_content>
238 <#if (cont > 1)>
239 <div class="div-img">
240 <ul class="ul-img" id="imgsSlider">
241 <#list tituloRecurso.getSiblings() as cur_vImagen>
242 <#if cur_vImagen.tipoRecurso.getData() == "imagen" && cur_vImagen.multimedia.getData() != "">
243 <li class="li-img">
244 <#assign imageJson = jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
245 <#assign imageClassPK = imageJson.getString("classPK")>
246 <#if imageClassPK?has_content>
247 <@adaptive_media_image["img"] class="slider-img" alt="" fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion()/>
248 <#else>
249 <#assign fileEntryId = imageJson.getString("fileEntryId")>
250 <@adaptive_media_image["img"] class="slider-img" alt="" fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion()/>
251 </#if>
252 </li>
253
254 </#if>
255 </#list>
256 </ul>
257 </div>
258 </#if>
259 <#if (cont == 1)>
260 <#list tituloRecurso.getSiblings() as cur_vImagen>
261 <#if cur_vImagen.tipoRecurso.getData() == "imagen" && cur_vImagen.multimedia.getData() != "">
262 <#assign imageJson = jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
263 <#assign imageClassPK = imageJson.getString("classPK")>
264 <#if imageClassPK?has_content>
265 <@adaptive_media_image["img"] class="slider-img" alt="" fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion()/>
266 <#else>
267 <#assign fileEntryId = imageJson.getString("fileEntryId")>
268 <@adaptive_media_image["img"] class="slider-img" alt="" fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion()/>
269 </#if>
270 <p>• ${cur_vImagen.descripcionRecurso.getData()}</p>
271 <#assign imageShareUrl = themeDisplay.getPortalURL() + cur_vImagen.multimedia.getData() />
272 </#if>
273 </#list>
274 </#if>
275 </#if>
276
277 </#if>
278
279 <div class="dateRedes">
280 <!-- redes sociales -->
281
282 <nav id="compartir" class="compartir-redes-sociales text-right">
283 <ul>
284 <li class="whatsapp" data-lang="compartir_whatsapp">
285 <a id="enlace-whatsapp" class="social-icon" tabindex="1" href="" target="_blank" title="Compartir en Whatsapp"><img id="imagen-social-whatsapp" alt="Compartir en Whatsapp" src='${themeImagesPath}/social-media-icons/whatsapp-social-icon.png'></a>
286 </li>
287
288
289 <li class="twitter" data-lang="compartir_twitter">
290 <a id="enlace-twitter" class="social-icon" tabindex="1" href="" target="_blank" title="Compartir en Twitter"><img id="imagen-social-twitter" alt="Compartir en Twitter" src='${themeImagesPath}/social-media-icons/twitter-social-icon.png'></a>
291 </li>
292
293
294 <li class="facebook" data-lang="compartir_facebook">
295 <a id="enlace-facebook" class="social-icon" tabindex="1" href="" target="_blank" title="Compartir en Facebook"><img id="imagen-social-facebook" alt="Compartir en Facebook" src='${themeImagesPath}/social-media-icons/facebook-social-icon.png'></a>
296 </li>
297
298
299 <li class="mail" data-lang="compartir_email">
300 <a id="enlace-email" class="social-icon mr-0" tabindex="1" href="mailto:?Subject=${title}&Body=" title="Compartir por mail"><img id="imagen-social-email" alt="Compartir en mail" src='${themeImagesPath}/social-media-icons/email-social-icon.png'></a>
301 </li>
302
303 </ul>
304 </nav>
305 <p class="noticia-date">
306
307 <#assign fecha_Data = getterUtil.getString(fecha.getData())>
308 <#assign fechaInicio = "" />
309
310 <#if validator.isNotNull(fecha_Data)>
311
312 <#assign fecha_DateObj = dateUtil.parseDate("yyyy-MM-dd", fecha_Data, locale)>
313 <#assign fechaInicio = dateUtil.getDate(fecha_DateObj, "dd/MM/yyyy", locale, timeZone)?string />
314
315 <span class="fa fa-calendar"></span>${fechaInicio?has_content?then(fechaInicio,"")}
316
317
318 </#if>
319 </p>
320 </div>
321 <div>
322 ${Subtitulo.getData()}
323 </div>
324 <div>
325 ${descripcion.getData()}
326 </div>
327
328 <#assign article = JournalArticleLocalService.fetchArticle(getterUtil.getLong(scopeId), contentId)>
329
330
331 <!-- Título Recursos Multimedia -->
332 <#assign contitulo = "false">
333 <#if tituloRecurso?? && (tituloRecurso.getSiblings()?size>0)>
334
335 <#list tituloRecurso.getSiblings() as cur_Recurso>
336 <#if cur_Recurso?is_last && cur_Recurso.getData()?? && cur_Recurso.getData() != "" && cur_Recurso.tipoRecurso.getData() != "imagen" >
337 <div class="row">
338 <div class="col-xs-12 div-multimedia">
339 <h3><@liferay.language key="noticias.multimedia" /></h3>
340 </div>
341 </div>
342 <#assign contitulo = "true">
343 </#if>
344 </#list>
345
346 </#if>
347
348 <#if enlaceFlickr?has_content && enlaceFlickr.getData()?has_content>
349 <#if contitulo == "false">
350 <div class="row">
351 <div class="col-xs-12 div-multimedia">
352 <h3><@liferay.language key="noticias.multimedia" /></h3>
353 </div>
354 </div>
355 </#if>
356 <div class="container-flickr">
357 <#assign album = enlaceFlickr.getData()?substring(enlaceFlickr.getData()?last_index_of("/")+1)>
358 <iframe title="Flickr Album" class="iframe-flickr"
359 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"
360 scrolling="no" frameborder="0" allowFullScreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">
361 </iframe>
362 </div>
363 <a class="a-flickr" href="${enlaceFlickr.getData()}" target="_blank"><p><strong><@liferay.language key="noticias-imagenes-flickr"/></strong></p></a>
364 </#if>
365 </div>
366
367 </div>
368
369
370 <!--Carousel con videos e imágenes-->
371 <#assign continua = "false"/>
372 <#if enlaceYoutube?? && (enlaceYoutube.getSiblings()?size >= 1)>
373 <#list enlaceYoutube.getSiblings() as cur_enlaceYoutube>
374 <#if cur_enlaceYoutube?index == 0 && cur_enlaceYoutube.getData()?? && cur_enlaceYoutube.getData() != "">
375 <div class="row">
376 <div class="col-xs-12 div-multimedia">
377 <h3><@liferay.language key="noticias.galeria" /></h3>
378 </div>
379 </div>
380 <ul class="ul-imgVid" id="imgsVidsSlider">
381 <#assign continua = "true"/>
382 </#if>
383 <#if continua=="true">
384 <#if cur_enlaceYoutube?index != 0 && cur_enlaceYoutube.getData()?? && cur_enlaceYoutube.getData() != "">
385 <#assign urlVid = cur_enlaceYoutube.getData()/>
386 <#assign urlVid = urlVid?replace("watch?v=","embed/")/>
387 <li class="li-imgVid" href="${urlVid}" data-toggle="lightbox" data-gallery="mixedgallery" data-type="youtube">
388
389 <iframe class="slider-imgVid" src="${urlVid}"allowfullscreen></iframe>
390 </li>
391 </#if>
392 </#if>
393 </#list>
394 <#if continua=="true">
395 <#if (cont > 0)>
396 <#list tituloRecurso.getSiblings() as cur_vImagen>
397 <#if cur_vImagen.tipoRecurso.getData() == "imagen" && cur_vImagen.multimedia.getData() != "">
398 <li class="li-imgVid" href="${cur_vImagen.multimedia.getData()}" data-toggle="lightbox" data-gallery="mixedgallery" data-type="image">
399 <#assign imageJson = jsonFactoryUtil.createJSONObject(cur_vImagen.multimedia.data)>
400 <#assign imageClassPK = imageJson.getString("classPK")>
401 <#if imageClassPK?has_content>
402 <@adaptive_media_image["img"] alt="" fileVersion=dlAppServiceUtil.getFileEntry(imageClassPK?number).getFileVersion()/>
403 <#else>
404 <#assign fileEntryId = imageJson.getString("fileEntryId")>
405 <@adaptive_media_image["img"] alt="" fileVersion=dlAppServiceUtil.getFileEntry(fileEntryId?number).getFileVersion()/>
406 </#if>
407
408 <img class="slider-imgVid" alt="" src="${cur_vImagen.multimedia.getData()}" />
409 </li>
410 </#if>
411 </#list>
412 </#if>
413 </#if>
414 </ul>
415 </#if>
416
417
418 <!--Recursos Multimedia-->
419 <#if tituloRecurso?? && (tituloRecurso.getSiblings()?size>0)>
420
421 <#list tituloRecurso.getSiblings() as cur_RecursoLista>
422 <#assign contiene = "false" />
423 <#if cur_RecursoLista.tipoRecurso.getData() != "imagen">
424 <#if cur_RecursoLista.getData()?? && cur_RecursoLista.getData() != "">
425 <#assign titulo = cur_RecursoLista.getData()/>
426 <#assign contiene = "true" />
427 </#if>
428 <#if contiene == "true">
429 <#if cur_RecursoLista.tipoRecurso.getData()?? && cur_RecursoLista.tipoRecurso.getData() != "">
430 <#if cur_RecursoLista.tipoRecurso.getData()?? && cur_RecursoLista.tipoRecurso.getData() == "audio">
431 <#assign icono = "audio" />
432 <#elseif cur_RecursoLista.tipoRecurso.getData()?? && cur_RecursoLista.tipoRecurso.getData() == "imagen">
433 <#assign icono = "imagen" />
434 <#elseif cur_RecursoLista.tipoRecurso.getData()?? && cur_RecursoLista.tipoRecurso.getData() == "documento">
435 <#assign icono = "documento" />
436 <#elseif cur_RecursoLista.tipoRecurso.getData()?? && cur_RecursoLista.tipoRecurso.getData() == "video">
437 <#assign icono = "video" />
438 <#else>
439 <#assign icono = "" />
440 </#if>
441 </#if>
442 <#if cur_RecursoLista.enlaceRecurso?? && cur_RecursoLista.enlaceRecurso.getData()?? && cur_RecursoLista.enlaceRecurso.getData() != "">
443 <#assign enlace = cur_RecursoLista.enlaceRecurso.getData() />
444 <#else>
445 <#assign enlace = "#"/>
446 </#if>
447 </#if>
448 <#if titulo?? && titulo != "">
449
450 <div class="row col-xl-4 col-lg-4 col-md-6" style="position: relative; float: left;">
451 <div class="col-xs-12 contenido-multimedia mb-4">
452
453 <#if browserSniffer.isIe(httpServletRequest)>
454 <img class="icono-multimedia" src="${themeImagesPath}/noticias-icons/${icono}-icon.png"/><a href="${cur_RecursoLista.multimedia.getData()}" title="${titulo}" target="_blank">${titulo}</a>
455 <#else>
456
457 <#if icono == "audio">
458 <audio src="${cur_RecursoLista.multimedia.getData()}" preload="auto" controls>
459 <img class="icono-multimedia" src="${themeImagesPath}/noticias-icons/${icono}-icon.png"/><a href="${cur_RecursoLista.multimedia.getData()}" title="${titulo}" target="_blank">${titulo}</a>
460 </audio>
461 <div class="row align-items-center ml-3" >
462 <span>${titulo}</span>
463 </div>
464
465 <#elseif icono == "video">
466 <video width="360" height="200" src="${cur_RecursoLista.multimedia.getData()}?version=1.0&videoPreview=1&type=mp4" preload="auto" controls></video>
467 <div class="row align-items-center ml-2" >
468 <a href="${cur_RecursoLista.multimedia.getData()}?version=1.0&videoPreview=1&type=mp4" title="${titulo}" target="_blank">${titulo}</a>
469 </div>
470 <#else>
471 <img class="icono-multimedia" src="${themeImagesPath}/noticias-icons/${icono}-icon.png"/><a href="${cur_RecursoLista.multimedia.getData()}" title="${titulo}" target="_blank">${titulo}</a>
472 </#if>
473
474 </#if>
475
476
477 </div>
478 </div>
479
480 </#if>
481 </#if>
482 </#list>
483 </#if>
484
485
486
487 <!-- buscamos contenidos relacionados -->
488 <div class = "noticia-contenido-related-content">
489
490 <#assign articleEntry = AssetEntryLocalService.getEntry(journalArticleClassname, article.getResourcePrimKey())>
491 <#assign groupIdEntry = articleEntry.getGroupId()>
492
493 <#assign relatedEntries = AssetLinkLocalService.getDirectLinks(articleEntry.getEntryId()) >
494 <#assign listCategory = assetCategoryService.getEntryCategories(articleEntry.getEntryId()) >
495
496 <#assign noticiasRel = []/>
497 <#if relatedEntries?has_content>
498 <#assign ddmKeyNoticia = "156671" >
499 <#list relatedEntries as relatedAsset>
500 <#assign relatedEntry = AssetEntryLocalService.getEntry(relatedAsset.getEntryId2()) >
501 <#assign entryClassPK = relatedEntry.getClassPK() >
502
503 <#assign journalArticleClassname = "com.liferay.journal.model.JournalArticle" >
504 <#if journalArticleClassname==relatedEntry.getClassName() >
505 <#assign relatedArticle = JournalArticleLocalService.fetchLatestArticle(entryClassPK) >
506 </#if>
507 <#if relatedArticle.getDDMStructureKey() == ddmKeyNoticia >
508 <#assign noticiasRel = noticiasRel + [relatedArticle] />
509 </#if>
510 </#list>
511 <#if (noticiasRel?size>0)>
512 <div class="row" 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;">
513 <div class="col-xs-12">
514 <div class="row">
515 <div class="col-xs-12">
516 <h3><@liferay.language key="noticias.relacionadas" /></h3>
517 </div>
518 </div>
519 <div class="row">
520 <div class="col-xs-12">
521 <#assign contNoticias = 0 />
522
523 <ul id="categorySlider">
524 <#list noticiasRel as noticiaRel>
525
526 <#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg">
527
528 <#assign rootElement = saxReaderUtil.read(noticiaRel.getContentByLocale(locale)).getRootElement() />
529 <#assign selectorTipo = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso']/dynamic-element[@name='tipoRecurso']") />
530
531 <#assign selector = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso']/dynamic-element[@name='multimedia']") />
532 <#assign document = saxReaderUtil.read(relatedArticle.getContentByLocale(locale))>
533
534
535 <#if selectorTipo.selectSingleNode(rootElement)?has_content>
536 <#assign tipo = selectorTipo.selectSingleNode(rootElement).getStringValue()?replace("\"", "") />
537 </#if>
538 <#if (tipo?? && tipo?trim == "imagen") && selector.selectSingleNode(rootElement)?has_content>
539 <#assign jsonObjectString = document.valueOf("//dynamic-element[@name='multimedia']/dynamic-content/text()") />
540 <#if jsonObjectString?has_content>
541 <#assign jsonObject = jsonObjectString?eval>
542 <#assign entryUuid = jsonObject.uuid />
543 <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) />
544 <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) />
545 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry",dlFileEntry.fileEntryId) />
546 <#assign assetRenderer = assetEntry.assetRenderer />
547 <#assign imagen = assetRenderer.getURLDownload(themeDisplay) />
548
549 <#assign imagen2 = noticiasRel[contNoticias] />
550
551 <#assign document2 = saxReaderUtil.read(imagen2.getContentByLocale(locale))>
552 <#assign jsonObjectString2 = document2.valueOf("//dynamic-element[@name='multimedia']/dynamic-content/text()") />
553 <#assign jsonObject2 = jsonObjectString2?eval>
554 <#assign entryUuid2 = jsonObject2.uuid />
555 <#assign entryGroupId2 = getterUtil.getLong(jsonObject2.groupId) />
556 <#assign dlFileEntry2 = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid2, entryGroupId2) />
557 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry",dlFileEntry2.fileEntryId) />
558 <#assign assetRenderer = assetEntry.assetRenderer />
559 <#assign imagen3 = assetRenderer.getURLDownload(themeDisplay) />
560
561
562
563 </#if>
564 </#if>
565
566 <#assign selectorTitular = saxReaderUtil.createXPath("dynamic-element[@name='Titular']") />
567 <#if selectorTitular.selectSingleNode(rootElement)?has_content>
568 <#assign titularRelacionada = selectorTitular.selectSingleNode(rootElement).getStringValue()?replace("\"", "") />
569 </#if>
570
571
572 <li class="li-slider">
573 <a class="a-related" href="/-/${noticiaRel.getUrlTitle()}">
574 <div class="div-related" style="min-height:200px;max-height:300px;">
575 <img src="${imagen3}" alt="" style="width: 260px; height: 200px;">
576 </div>
577 <span>${titularRelacionada}</span>
578 </a>
579 </li>
580 <#assign contNoticias = contNoticias + 1 />
581 <#if (contNoticias == 8) >
582 <#break>
583 </#if>
584
585 </#list>
586 </ul>
587 </div>
588 </div>
589
590 </div>
591 </div>
592 </#if> <#-- if (noticiasRel?size>0) -->
593 </#if> <#-- relatedEntries?has_content -->
594
595 <#if listCategory[0].getCategoryId()?? && !relatedEntries?has_content>
596 <#assign entries = commonUtilsApi.findRelatedContentByStructure(themeDisplay.getCompanyId(),themeDisplay.getUserId(),themeDisplay.getScopeGroupId(),categoryId,"${journalArticle.getDDMStructureKey()}",0,8)/>
597
598 <#if entries?has_content>
599 <div id="relatedByCategory" class="row" style=" background-color: #e0e0e0;">
600 <div class="col-xs-12">
601 <div class="row">
602 <div class="col-xs-12">
603 <h3><@liferay.language key="noticias.relacionadas" /></h3>
604 </div>
605 </div>
606 <div class="row">
607 <div class="col-xs-12">
608
609 <ul id="categorySlider">
610 <#list entries as noticiaAsset>
611
612
613 <#assign noticiaRel = journalArticleLocalService.fetchLatestArticle(getterUtil.getLong(noticiaAsset.getField("entryClassPK").getValue())) />
614 <#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg">
615
616 <#assign rootElement = saxReaderUtil.read(noticiaRel.getContentByLocale(locale)).getRootElement() />
617 <#assign selectorTipo = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso']/dynamic-element[@name='tipoRecurso']") />
618 <#assign selectorTipoImagen = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecursoFieldSet']/dynamic-element[@name='tituloRecursoFieldSetFieldSet']/dynamic-element[@name='tipoRecurso']") />
619
620 <#assign selector = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso']/dynamic-element[@name='multimedia']") />
621 <#assign selectorImagen = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecursoFieldSet']/dynamic-element[@name='tituloRecursoFieldSetFieldSet']/dynamic-element[@name='multimedia']") />
622
623 <#assign document = saxReaderUtil.read(noticiaRel.getContentByLocale(locale))>
624
625
626 <#if selectorTipo.selectSingleNode(rootElement)?has_content>
627 <#assign tipo = selectorTipo.selectSingleNode(rootElement).getStringValue()?replace("\"", "") />
628 </#if>
629 <#if selectorTipoImagen.selectSingleNode(rootElement)?has_content>
630 <#assign tipoImagen = selectorTipoImagen.selectSingleNode(rootElement).getStringValue()?replace("\"", "") />
631 </#if>
632
633 <#if (tipoImagen?? && tipoImagen?trim == "imagen") && selectorImagen.selectSingleNode(rootElement)?has_content>
634 <!-- <#assign jsonObjectString = document.valueOf("//dynamic-element[@name='tituloRecursoFieldSet']/dynamic-element[@name='tituloRecursoFieldSetFieldSet']/dynamic-element[@name='multimedia']/dynamic-content/text()") /> -->
635 <#assign jsonObjectString = selectorImagen.selectSingleNode(rootElement).getStringValue()/>
636 <#if jsonObjectString?has_content >
637 <#assign jsonObject = jsonObjectString?eval>
638 <#assign entryUuid = jsonObject.uuid />
639 <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) />
640 <#attempt>
641 <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) />
642 <#recover>
643 <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId("f210c305-77c0-5891-b21c-439ff1267042", 20142) />
644 </#attempt>
645 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry",dlFileEntry.fileEntryId) />
646 <#assign assetRenderer = assetEntry.assetRenderer />
647 <#assign imagen = assetRenderer.getURLDownload(themeDisplay) />
648
649 </#if>
650 </#if>
651
652 <#assign selectorTitular = saxReaderUtil.createXPath("dynamic-element[@name='Titular']") />
653 <#if selectorTitular.selectSingleNode(rootElement)?has_content>
654 <#assign titularRelacionada = selectorTitular.selectSingleNode(rootElement).getStringValue()?replace("\"", "") />
655 </#if>
656 <#if "/-/"+noticiaRel.getUrlTitle() != themeDisplay.getURLCurrent()>
657 <li>
658 <#if lang == "es_ES">
659 <#assign urlTitularRel = "/cas/actualidad/-/content/${noticiaRel.getUrlTitle()}"/>
660 <a class="a-related" href="${urlTitularRel}">
661 <div class="div-related" style="min-height:200px;max-height:300px;">
662 <img src="${imagen}" alt="" style="width: 100%;">
663 </div>
664 <span>${titularRelacionada}</span>
665 </a>
666 <#elseif lang == "ca_ES" >
667 <#assign urlTitularRel = "/val/actualitat/-/content/${noticiaRel.getUrlTitle()}"/>
668 <a class="a-related" href="${urlTitularRel}">
669 <div class="div-related" style="min-height:200px;max-height:300px;">
670 <img src="${imagen}" alt="" style="width: 100%;">
671 </div>
672 <span>${titularRelacionada}</span>
673 </a>
674 <#else>
675 <#assign urlTitularRel = "/val/actualitat/-/content/${noticiaRel.getUrlTitle()}"/>
676 <a class="a-related" href="${urlTitularRel}">
677 <div class="div-related" style="min-height:200px;max-height:300px;">
678 <img src="${imagen}" alt="" style="width: 100%;">
679 </div>
680 <span>${titularRelacionada}</span>
681 </a>
682 </#if>
683 </li>
684 </#if>
685
686 </#list>
687 </ul>
688
689 </div>
690 </div>
691
692 </div>
693 </div>
694 </#if> <#-- if entries?has_content -->
695 </#if> <#-- if listCategory[0].getCategoryId()?? && !relatedEntries?has_content -->
696
697 </div> <!-- class = "noticia-contenido-related-content" -->
698
699
700</div> <!-- class="container noticia-contenido" -->
701
702
703<@liferay_portlet["runtime"] portletName="socialnetwork_share_Actualidad_SocialnetworkSharePortlet" />
704
705<script type="text/javascript">
706
707$(document).ready(function() {
708 var backUrl = "${backUrl}";
709 var titularSanitized = encodeURIComponent('${Titular.getData()?js_string}');
710
711 // Modificamos los enlaces de los social media buttons
712 var urlNoticiaActual = "${urlArticleNoContext}";
713
714 var enlaceWhatsapp = document.getElementById("enlace-whatsapp");
715 var cadenaWhatsapp = "whatsapp://send?text=";
716 enlaceWhatsapp.setAttribute("href", cadenaWhatsapp.concat(urlNoticiaActual));
717
718 var enlaceTwitter = document.getElementById("enlace-twitter");
719 var cadenaTwitter = "https://twitter.com/intent/tweet?original_referer=";
720 cadenaTwitter = cadenaTwitter.concat(urlNoticiaActual);
721 cadenaTwitter = cadenaTwitter.concat("&text=").concat(titularSanitized).concat(" ").concat(urlNoticiaActual);
722 cadenaTwitter = cadenaTwitter.concat("&via=AjuntamentVLC");
723 enlaceTwitter.setAttribute("href", cadenaTwitter);
724
725 var enlaceFacebook = document.getElementById("enlace-facebook");
726 var cadenaFacebook = "http://www.facebook.com/sharer/sharer.php?u=";
727 enlaceFacebook.setAttribute("href", cadenaFacebook.concat(urlNoticiaActual));
728
729 var enlaceEmail = document.getElementById("enlace-email");
730 var cadenaEmail = enlaceEmail.getAttribute("href");
731 enlaceEmail.setAttribute("href", cadenaEmail.concat(urlNoticiaActual));
732
733 var imgsSlider = $("#imgsSlider").lightSlider({
734 item:1,
735 autoWidth: false,
736 mode: "slide",
737 slideMove: 1,
738 speed: 2000, //ms'
739 auto: true,
740 loop: true,
741 slideEndAnimation: true,
742 pause: 5000,
743
744 keyPress: false,
745 controls: true,
746 prevHtml: '<i class="fa fa-chevron-left"> </i>',
747 nextHtml: '<i class="fa fa-chevron-right"> </i>',
748 vertical:false,
749
750 thumbItem:10,
751 pager: false,
752 gallery: false,
753 currentPagerPosition: 'middle',
754
755 enableTouch:true,
756 enableDrag:true,
757 freeMove:true,
758 swipeThreshold: 40,
759 responsive : [{
760 breakpoint:1200,
761 settings: {
762 item:1,
763 }
764 },
765 {
766 breakpoint:800,
767 settings: {
768 item:1,
769 slideMove: 1,
770 }
771 },
772 {
773 breakpoint:480,
774 settings: {
775 item:1,
776 slideMove: 1,
777 }
778 }],
779
780 onBeforeStart: function (el) {},
781 onSliderLoad: function (el) {},
782 onBeforeSlide: function (el) {},
783 onAfterSlide: function (el) {},
784 onBeforeNextSlide: function (el) {},
785 onBeforePrevSlide: function (el) {}
786
787 });
788 var sliderImgVid = $("#imgsVidsSlider").lightSlider({
789 item:4,
790 autoWidth: false,
791 mode: "slide",
792 slideMove: 2,
793 speed: 500, //ms'
794 auto: true,
795 loop: true,
796 slideEndAnimation: true,
797 pause: 2000,
798
799 keyPress: false,
800 controls: true,
801 prevHtml: '<i class="fa fa-chevron-left"> </i>',
802 nextHtml: '<i class="fa fa-chevron-right"> </i>',
803 vertical:false,
804
805 thumbItem:10,
806 pager: true,
807 gallery: false,
808 currentPagerPosition: 'middle',
809
810 enableTouch:true,
811 enableDrag:true,
812 freeMove:true,
813 swipeThreshold: 40,
814 responsive : [{
815 breakpoint:1200,
816 settings: {
817 item:4,
818 }
819 },
820 {
821 breakpoint:800,
822 settings: {
823 item:3,
824 slideMove: 1,
825 }
826 },
827 {
828 breakpoint:480,
829 settings: {
830 item:1,
831 slideMove: 1,
832 }
833 }],
834
835 onBeforeStart: function (el) {},
836 onSliderLoad: function (el) {},
837 onBeforeSlide: function (el) {},
838 onAfterSlide: function (el) {},
839 onBeforeNextSlide: function (el) {},
840 onBeforePrevSlide: function (el) {}
841
842 });
843 var slider = $("#categorySlider").lightSlider({
844 item:4,
845 autoWidth: false,
846 mode: "slide",
847 slideMove: 1,
848 speed: 2000, //ms'
849 auto: true,
850 loop: true,
851 slideEndAnimation: false,
852 pause: 6000,
853
854 keyPress: true,
855 controls: true,
856 prevHtml: '<i class="fa fa-chevron-left"> </i>',
857 nextHtml: '<i class="fa fa-chevron-right"> </i>',
858 vertical:false,
859
860 thumbItem:10,
861 pager: true,
862 gallery: false,
863 currentPagerPosition: 'middle',
864
865 enableTouch:true,
866 enableDrag:true,
867 freeMove:true,
868 swipeThreshold: 40,
869 responsive : [{
870 breakpoint:1200,
871 settings: {
872 item:3,
873 }
874 },
875 {
876 breakpoint:990,
877 settings: {
878 item:2,
879 slideMove: 1,
880 }
881 },
882 {
883 breakpoint:768,
884 settings: {
885 item:1,
886 slideMove: 1,
887 }
888 }],
889
890 onBeforeStart: function (el) {},
891 onSliderLoad: function (el) {},
892 onBeforeSlide: function (el) {},
893 onAfterSlide: function (el) {},
894 onBeforeNextSlide: function (el) {},
895 onBeforePrevSlide: function (el) {}
896
897 });
898
899 // añade play/pause a botones inferiores del carrusel
900 $('.lSPager').wrap('<div class="slider-dots-wrapper"></div>');
901 $('.slider-dots-wrapper').prepend('<span class="btn-play glyphicon">');
902 $('.btn-play').on('click', function () {
903 if ($('.btn-play').hasClass('btn-play-paused') ) {
904 slider.play();
905 } else {
906 slider.pause();
907 }
908 $('.btn-play').toggleClass('btn-play-paused');
909 });
910
911 jQuery.urlParam = function(name){
912 var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
913 return results?results[1]:0;
914 }
915
916 var redirectParam = jQuery.urlParam("redirect");
917 $(".volver").on("click", function(){
918 if(redirectParam !== 0){
919 window.location.href = decodeURIComponent(redirectParam);
920 }else if(backUrl == ""
921 ||(backUrl.length > 6 && backUrl.substring(backUrl.length-7, backUrl.length).toLowerCase() == "/client")) {
922 history.go(-1);
923 }else{
924 window.location.href = backUrl;
925 }
926 });
927
928 $('.div-multimedia').click(function(){
929 $('.contenido-multimedia').toggle();
930 });
931
932 $('.lexicon-icon-share-alt').replaceWith('<img class="img-compartir" src="${themeImagesPath}/icons/icono_compartir.svg">')
933 var shareButtons = $('.pull-right');
934 $('.div-share').append(shareButtons);
935
936 $('.clone').css("text-align","left");
937
938});
939
940 $(document).on('click', '[data-toggle="lightbox"]', function(event) {
941 event.preventDefault();
942 $(this).ekkoLightbox({
943 alwaysShowClose:true
944 });
945 });
946
947 // modifica title en head del html
948 document.title = '${Titular.getData()?js_string}';
949
950 function showpics()
951 {var a=$("#box").val();$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags="+a+"&tagmode=any&format=json&jsoncallback=?",function(a)
952 {$("#images").hide().html(a).fadeIn("fast"),$.each(a.items,function(a,e){$("<img/>").attr("src",e.media.m).appendTo("#images")})})}
953</script>
954<style>
955 .noticia-contenido-related-content {
956 font-size: 0.9em;
957 clear: both;
958 }
959 .fa {
960 margin-right: 0.7em;
961 }
962 .noticia-date {
963 padding-top: 15px !important;
964 }
965 .compartir-redes-sociales ul {
966 background-color: transparent;
967 }
968 #compartir {
969 width: 50 !important;
970 float: right !important;
971 }
972 .dateRedes {
973 margin-bottom: 3%;
974 }
975 .listaCategoriasCabecera {
976 display: flex;
977 margin-top: 10px;
978 margin-bottom: 10px;
979 list-style: none;
980 }
981 .itemCategoria::before {
982 content: "\2022";
983 color: #ffcd00;
984 font-size: 90px;
985 line-height: 0;
986 }
987 .enlaceCategoria {
988 display: block;
989 margin-top: -41px;
990 padding-left: 30px;
991 }
992
993 .lSSlideOuter .lSPager.lSpg>li.active a, .lSSlideOuter .lSPager.lSpg>li:hover a {
994 background-color: #ffcd00;
995 }
996 .btn-default {
997 background-color: black;
998 }
999
1000 .noticia-contenido .slider-img {
1001 max-height: 38em !important;
1002 height: auto;
1003 }
1004
1005 .container-flickr {
1006 height: 520px;
1007 width: 100%;
1008 padding: 0;
1009 margin: 0;
1010 }
1011
1012 .iframe-flickr {
1013 width:100%;
1014 height:100%;
1015 }
1016
1017 .a-flickr {
1018 text-align:center;
1019 margin-top:1em;
1020 }
1021
1022 #relatedByCategory h3 {
1023 margin-top: 0.5rem;
1024 }
1025 #relatedByCategory .lslide .a-related span,
1026 #relatedByCategory .clone .a-related span {
1027 font-family:Montserrat-SemiBold;
1028 display: block;
1029 margin-top: 5px;
1030 }
1031
1032 .slider-dots-wrapper {
1033 text-align: center;
1034 }
1035 .noticia-contenido-related-content .btn-play {
1036 color: #222;
1037 display: inline-block;
1038 font-size: 13px;
1039 }
1040 .noticia-contenido-related-content .btn-play:hover {
1041 cursor: pointer;
1042 }
1043 .noticia-contenido-related-content .btn-play:before {
1044 content: "\e073";
1045 }
1046 .noticia-contenido-related-content .btn-play-paused:before {
1047 content: "\e072";
1048 }
1049 .lSSlideOuter .lSPager.lSpg {
1050 display: inline-block;
1051 }
1052 .lSSlideOuter .lSPager.lSpg>li a {
1053 width: 10px;
1054 height: 10px;
1055 }
1056 div.div-related picture{
1057 display:unset;
1058 }
1059 #p_p_id_BusquedaNoticias_INSTANCE_V791mPRXG6Ah_,
1060 #p_p_id_com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_bIh9UFapkll4_ {
1061 display:none;
1062 }
1063
1064
1065</style>
Nodo: sweb742:8080:

