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

