EL AYUNTAMIENTO INSTALA TRES MODELOS DE SEMÁFOROS DESCONTADORES DE PRUEBA CON EL FIN DE HOMOLOGAR UN MODELO ÚNICO PARA TODA ESPAÑA - València
EL AYUNTAMIENTO INSTALA TRES MODELOS DE SEMÁFOROS DESCONTADORES DE PRUEBA CON EL FIN DE HOMOLOGAR UN MODELO ÚNICO PARA TODA ESPAÑA
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>
Nodo: sweb742:8080: