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