Publicador de contenidos

Atrás Punto de agua Campanar

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