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