Se ha producido un error al procesar la plantilla.
When calling function "getField", required parameter "languageId" (parameter #2) was specified, but had null/missing value.
----
Tip: If the parameter value expression on the caller side is known to be legally null/missing, you may want to specify a default value for it with the "!" operator, like paramValue!defaultValue.
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #function getField(field, languageId,... [in template "20096#20121#LDA-BLOG-DETALLE" in function "getField" at line 1124, column 1]
---- 1<#-- Obtención de variables auxiliares varias --> 2<#assign journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")> 3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 4<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 5<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 6<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 7<#assign portalURL = themeDisplay.getPortalURL() /> 8<#assign currentUrlPost = portalURL + themeDisplay.getURLCurrent() /> 9 10<#assign titleTelefono = languageUtil.get(locale, "lda.te.llamamos.title.telefono") /> 11 12<#-- Obtención de categorías del publicador de contenidos --> 13<#assign journalArticleId = .vars['reserved-article-id'].data> 14<#assign articleResourcePrimaryKey = journalArticleResourceLocalService.getArticleResourcePrimKey(groupId, journalArticleId)> 15<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", articleResourcePrimaryKey)> 16<#assign assetCategories = assetEntry.getCategories()> 17 18<#-- Obtención de otras noticias relacionadas --> 19<#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')> 20<#assign void = assetEntryQuery.setOrderByCol1("modifiedDate")> 21<#assign void = assetEntryQuery.setOrderByCol2("title")> 22<#assign arrayGroupIds = [themeDisplay.getScopeGroupId()] /> 23<#assign void2 = assetEntryQuery.setGroupIds(arrayGroupIds)> 24<#assign relatedNews = assetEntryLocalService.getEntries(assetEntryQuery)> 25<#assign counterRelated = 0 /> 26 27<#if (assetCategories?size > 0)> 28<#list relatedNews as related> 29 <#if (related.getClassName() == "com.liferay.journal.model.JournalArticle" && related.getGroupId() == groupId)> 30 <#assign assetRenderer = related.getAssetRenderer()/> 31 <#assign journalArticle = assetRenderer.getAssetObject() /> 32 <#assign articleResourcePrimaryKeyOtras = journalArticleResourceLocalService.getArticleResourcePrimKey(groupId, journalArticle.getArticleId())> 33 <#assign assetEntryOtras = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", articleResourcePrimaryKeyOtras)> 34 <#assign assetCategoriesOtras = assetEntryOtras.getCategories()> 35 <#list assetCategoriesOtras as categoriaOtra> 36 <#if (categoriaOtra.getName() == assetCategories[0].getName()) && (journalArticle.DDMStructureKey == journalArticleLocalService.getLatestArticle(assetEntry.classPK).DDMStructureKey)> 37 <#assign counterRelated = counterRelated + 1 /> 38 </#if> 39 </#list> 40 </#if> 41</#list> 42 43<#-- Obtención del journalArticle de estructura Te Llamamos relacionado por categoria con el detalle de blog --> 44<#assign localeCurrent = themeDisplay.getLocale() /> 45<#assign vocabularyName = "Te Llamamos"> 46<#assign vocabulary = assetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), vocabularyName)> 47<#assign categoriesTeLlamamos = vocabulary.getCategories()> 48<#assign tieneTeLlamamosRelacionado = false /> 49 50<#list categoriesTeLlamamos as categoriaTeLlamamos> 51 <#assign categoriaDetalle = assetCategories[0].getName()/> 52 <#if (assetCategories[0].getName()?contains("Ejercicio") || assetCategories[0].getName()?contains("Dental") || assetCategories[0].getName()?contains("Familia") || assetCategories[0].getName()?contains("Nutrici"))> 53 <#assign categoriaDetalle = "Salud" /> 54 </#if> 55 <#if categoriaTeLlamamos.getName() == categoriaDetalle> 56 <#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')> 57 <#assign categoriaValidaQuery = [categoriaTeLlamamos.getCategoryId()]> 58 <#assign void = assetEntryQuery.setAnyCategoryIds(categoriaValidaQuery)> 59 <#assign assetEntryTeLlamamos = assetEntryLocalService.getEntries(assetEntryQuery)> 60 <#if (assetEntryTeLlamamos?size > 0) > 61 <#assign tieneTeLlamamosRelacionado = true /> 62 <#if assetEntryTeLlamamos[0].getClassName() == "com.liferay.journal.model.JournalArticle"> 63 <#assign assetRenderer = assetEntryTeLlamamos[0].getAssetRenderer()/> 64 <#assign journalArticle = assetRenderer.getAssetObject() /> 65 <#assign document = saxReaderUtil.read(journalArticle.getContent())> 66 <#assign rootElement = document.getRootElement()> 67 <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 68 <#assign txtbutton = getField("txtbutton", localeCurrent, defaultLanguageId, rootElement)!> 69 <#assign linkBotonRojo = getField("linkBotonRojo", localeCurrent, defaultLanguageId, rootElement)!> 70 <#assign imgIcon = getField("imgIcon", localeCurrent, defaultLanguageId, rootElement)!> 71 <#assign desactivarAltIcono = getField("desactivarAltIcono", localeCurrent, defaultLanguageId, rootElement)!> 72 <#assign txtButtonAbove = getField("txtButtonAbove", localeCurrent, defaultLanguageId, rootElement)!> 73 <#assign textoExtra = getField("textoExtra", localeCurrent, defaultLanguageId, rootElement)!> 74 <#assign telfLineaDirecta = getField("telfLineaDirecta", localeCurrent, defaultLanguageId, rootElement)!> 75 <#assign ocultartelfLineaDirecta = getField("ocultartelfLineaDirecta", localeCurrent, defaultLanguageId, rootElement)!> 76 <#assign placeholderInput = getField("placeholderInput", localeCurrent, defaultLanguageId, rootElement)!> 77 <#assign helpInputTelefono = getField("helpInputTelefono", localeCurrent, defaultLanguageId, rootElement)!> 78 <#assign textBotonLlamame = getField("textBotonLlamame", localeCurrent, defaultLanguageId, rootElement)!> 79 <#assign mostrarBotonTelefono = getField("mostrarBotonTelefono", localeCurrent, defaultLanguageId, rootElement)!> 80 <#assign mostrarInputTelefono = getField("mostrarInputTelefono", localeCurrent, defaultLanguageId, rootElement)!> 81 </#if> 82 <#assign isMobile = browserSniffer.isMobile(request) /> 83 <#assign urlTeLlamamos = themeDisplay.getPortalURL() + layout.getGroup().getExpandoBridge().getAttribute("urlTeLlamamos") /> 84 <#if categoriaTeLlamamos.getName()?contains("Coche")> 85 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioCoche")) /> 86 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromCoche")) /> 87 <#assign tipoVehiculo = 'C' /> 88 <#assign nameEvento = 'Coche' /> 89 <#elseif categoriaTeLlamamos.getName()?contains("Moto")> 90 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioMoto")) /> 91 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromMoto")) /> 92 <#assign tipoVehiculo = 'M' /> 93 <#assign nameEvento = 'Moto' /> 94 <#elseif categoriaTeLlamamos.getName()?contains("Hogar")> 95 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioHogar")) /> 96 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromHogar")) /> 97 <#assign tipoVehiculo = 'H' /> 98 <#assign nameEvento = 'Hogar' /> 99 <#elseif categoriaTeLlamamos.getName()?contains("Patinetes")> 100 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioVehProf")) /> 101 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromVehProf")) /> 102 <#assign tipoVehiculo = 'E' /> 103 <#assign nameEvento = 'Movilidad' /> 104 <#elseif categoriaTeLlamamos.getName()?contains("Ocupaci")> 105 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioOcupacion")) /> 106 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromOcupacion")) /> 107 <#assign tipoVehiculo = 'P' /> 108 <#assign nameEvento = 'Ocupacion' /> 109 <#elseif categoriaTeLlamamos.getName()?contains("Mascotas")> 110 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioMascotas")) /> 111 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromMascotas")) /> 112 <#assign tipoVehiculo = 'P' /> 113 <#assign nameEvento = 'Mascotas' /> 114 <#elseif categoriaTeLlamamos.getName()?contains("Salud")> 115 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioSalud")) /> 116 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromSalud")) /> 117 <#assign tipoVehiculo = 'S' /> 118 <#assign nameEvento = 'Salud' /> 119 <#elseif categoriaTeLlamamos.getName()?contains("Dental")> 120 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioSalud")) /> 121 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromSalud")) /> 122 <#assign tipoVehiculo = 'S' /> 123 <#assign nameEvento = 'Salud' /> 124 <#else> 125 <#if themeDisplay.getURLCurrent()?contains("/multirriesgo-negocios/")> 126 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioMultirriesgo")) /> 127 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromMultirriesgo")) /> 128 <#assign tipoVehiculo = 'E' /> 129 <#assign nameEvento = 'Multirriesgo' /> 130 <#else> 131 <#assign idServicioPagina = idServicioPagina?has_content?then(idServicioPagina , layout.getGroup().getExpandoBridge().getAttribute("idServicioVehProf")) /> 132 <#assign fromPagina = fromPagina?has_content?then(fromPagina , layout.getGroup().getExpandoBridge().getAttribute("fromVehProf")) /> 133 <#assign tipoVehiculo = 'E' /> 134 <#assign nameEvento = 'Empresas' /> 135 </#if> 136 </#if> 137 </#if> 138 </#if> 139</#list> 140</#if> 141 142<#assign claseGapHeroMediaRight = "" /> 143<#if (txtButtonAbove?has_content && !getterUtil.getBoolean(mostrarBotonTelefono))> 144 <#assign claseGapHeroMediaRight = "hero-media-right--small-gap"/> 145</#if> 146 147<#assign claseHeroCotizadorSmall = "" /> 148<#if themeDisplay.getURLCurrent()?starts_with("/seguro-ocupacion") || themeDisplay.getURLCurrent()?contains("/blog/ocupacion")> 149 <#assign claseHeroCotizadorSmall = "lda-hero__cotizador-small" /> 150</#if> 151 152<#assign ariaHiddenBlogImagenDetalle = "false" /> 153<#if getterUtil.getBoolean(desactivarAltBlogImagenDetalle.getData())> 154 <#assign ariaHiddenBlogImagenDetalle = "true" /> 155</#if> 156 157 158 159<#assign ariaHiddenBlogImagePreview = "false" /> 160<#if getterUtil.getBoolean(desactivarAltBlogImagePreview.getData())> 161 <#assign ariaHiddenBlogImagePreview = "true" /> 162</#if> 163 164<#assign ariaHiddenBlogDetalleInfografia = "false" /> 165<#if getterUtil.getBoolean(desactivarAltBlogDetalleInfografia.getData())> 166 <#assign ariaHiddenBlogDetalleInfografia = "true" /> 167</#if> 168 169<div class="lda-blog-detalle"> 170 171 <div class="container container-pl-xs-0"> 172 <div class="lda-banner-header"> 173 <div class="lda-banner-header__image"> 174 <#if (blogImagenDetalle.getData())?? && blogImagenDetalle.getData() != ""> 175 <img aria-hidden="${ariaHiddenBlogImagenDetalle}" class="img-fondo" alt="${blogImagenDetalle.getAttribute("alt")}" 176 data-fileentryid="${blogImagenDetalle.getAttribute("fileEntryId")}" 177 src="${blogImagenDetalle.getData()}"/> 178 </#if> 179 </div> 180 <div class="container"> 181 <div class="row"> 182 <div class="col-lg-6"> 183 184 <@liferay.breadcrumbs /> 185 <div class="lda-banner-header__info d-flex flex-column"> 186 <#if (blogTitle.getData())??> 187 <h1>${blogTitle.getData()}</h1> 188 </#if> 189 <#if (blogSubtituloBanner.getData()?has_content && blogSubtituloBanner.getData() != "")> 190 <div class="h2 lda-banner-header__descripcion">${blogSubtituloBanner.getData()}</div> 191 </#if> 192 </div> <!-- ldabanner-header-info --> 193 </div> 194 <div class="col-lg-6"> 195 <#if (assetCategories?size > 0)> 196 <#if tieneTeLlamamosRelacionado> 197 <#assign ocultarTelfLDA = false /> 198 <#if ocultartelfLineaDirecta == "true"> 199 <#assign ocultarTelfLDA = true /> 200 </#if> 201 <#assign claseTlfVacio = "" /> 202 <#if ocultarTelfLDA> 203 <#assign claseTlfVacio = "lda-hero-media-right__content-info-full-width" /> 204 </#if> 205 <#if txtButtonAbove?has_content || getterUtil.getBoolean(mostrarBotonTelefono)> 206 <div class="lda-hero-media-right d-flex flex-column mb-120 ${claseGapHeroMediaRight}"> 207 <div class="lda-hero-media-right__content-top"> 208 <#if (txtButtonAbove?has_content)> 209 <p class="low-3 mb-4 mb-1mb-sm-3 text-center">${txtButtonAbove}</p> 210 </#if> 211 <#if getterUtil.getBoolean(mostrarBotonTelefono)> 212 <a class="lda-btn lda-btn--primary" href="${linkBotonRojo}" onclick="sendEventAnalitica('Silo', '${nameEvento}', 'calcular_precio', 'calcular_precio_${nameEvento?lower_case}')"> 213 <#if (txtbutton)??> 214 ${txtbutton} 215 </#if> 216 </a> 217 </#if> 218 </div> 219 </#if> 220 <#if (textoExtra?has_content || !ocultarTelfLDA ||textBotonLlamame?has_content)> 221 <div class="lda-hero-media-right__content d-flex flex-column"> 222 <div class="lda-hero-media-right__info d-flex align-items-center flex-row"> 223 <#if (imgIcon?has_content && imgIcon != '{}' && imgIcon != '{"description":"","title":"","url":""}' && imgIcon != '{"alt":""}')> 224 <#assign imgIconContentData = jsonFactoryUtil.createJSONObject(imgIcon)/> 225 <span class="lda-hero-media-right__avatar d-flex align-items-center justify-content-end"> 226 <img aria-hidden="${desactivarAltIcono}" class="lda-hero-media-right__img" alt="${imgIconContentData.alt}" data-fileentryid="${imgIconContentData.fileEntryId}" src="${imgIconContentData.url}" /> 227 </span> 228 </#if> 229 <div class="lda-hero-media-right__content-info d-flex flex-sm-row flex-column justify-content-between w-100 mr-sm-2 ${claseTlfVacio}"> 230 <#if (textoExtra)??> 231 <span class="lda-hero-media-right__text text-truncate">${textoExtra}</span> 232 </#if> 233 234 <#if !ocultarTelfLDA> 235 <#assign titleTelefono = languageUtil.get(locale, "lda.te.llamamos.title.telefono") /> 236 <a title="${titleTelefono} ${telfLineaDirecta}" href="tel:+34${telfLineaDirecta}" onclick="sendEventAnalitica('Telefono', 'telefono_texto', '${nameEvento?lower_case}', 'telefono_texto')" class="text-truncate mid-4 align-items-center lda-tel__secondary ml-sm-1 pl-4 html-drp-phone">${telfLineaDirecta}</a> 237 </#if> 238 </div> 239 </div> 240 <#if getterUtil.getBoolean(mostrarInputTelefono)> 241 <div class="lda-text-field-cta d-flex"> 242 <input class="text-truncate" type="tel" id="nameInput" name="nameInput" pattern="[0-9]{9}" maxlength="9" placeholder="${placeholderInput}" autocomplete="tel" aria-label="Teléfono"/> 243 <div class="lda-tooltip d-flex align-items-center"> 244 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" 245 fill="none"> 246 <path d="M9.9974 18.3307C14.5998 18.3307 18.3307 14.5998 18.3307 9.9974C18.3307 5.39502 14.5998 1.66406 9.9974 1.66406C5.39502 1.66406 1.66406 5.39502 1.66406 9.9974C1.66406 14.5998 5.39502 18.3307 9.9974 18.3307Z" 247 stroke="#1A1A1A" stroke-opacity="0.6" stroke-linecap="round" 248 stroke-linejoin="round"/> 249 <path d="M10 13.3333V10" stroke="#1A1A1A" stroke-opacity="0.6" 250 stroke-linecap="round" stroke-linejoin="round"/> 251 <path d="M10 6.66406H10.0075" stroke="#1A1A1A" stroke-opacity="0.6" 252 stroke-linecap="round" stroke-linejoin="round"/> 253 </svg> 254 <div class="lda-tooltip__info low-1"> 255 <#if (helpInputTelefono)??> 256 ${helpInputTelefono} 257 </#if> 258 </div> 259 </div> 260 <#if isMobile> 261 <button class="lda-btn lda-btn--secondary lda-disabled device-is-mobile" id="teLlamamosBtn" 262 onclick="window.location = '/te-llamamos-gratis.html?idServicio=' + '${idServicioPagina}' + '&from='+ '${fromPagina}' + '&indVehiculo=' + '${tipoVehiculo}'; sendEventAnalitica('Silo','C2C', analiticaGetPageName(), 'c2c')"> 263 <#if (textBotonLlamame)??> 264 ${textBotonLlamame} 265 </#if> 266 </button> 267 <#else> 268 <button class="lda-btn lda-btn--secondary lda-disabled device-is-non-mobile" data-toggle="modal" data-target="#ldaModal" id="teLlamamosBtn" 269 onclick="validarTeLlamamos(this); callLlamameAPI(this, '${fromPagina}', '${idServicioPagina}', '${tipoVehiculo}', getClosestNameInput(this), '${nameEvento?lower_case}', '${urlTeLlamamos}', '${telfLineaDirecta}')"> 270 <#if (textBotonLlamame)??> 271 ${textBotonLlamame} 272 </#if> 273 </button> 274 </#if> 275 </div> 276 </#if> 277 <p id="lda-error-tlfn" class="lda-error low-1" role="alert"></p> 278 </div> 279 </#if> 280 </div> 281 </#if> 282 </#if> 283 </div> 284 </div> 285 </div> 286 </div> 287 </div> 288 289 <div class="container lda-container-blog"> 290 291 <div class="column-content"> 292 293<#assign readingTimeLabel = "" /> 294 295<#if (tiempoEstimadoLectura.getData()?has_content && tiempoEstimadoLectura.getData() != "")> 296 <#assign readingTimeLabel = tiempoEstimadoLectura.getData() /> 297<#elseif (blogTextoDetalle.getData()?? && blogTextoDetalle.getData()?has_content)> 298 <#assign rawContent = blogTextoDetalle.getData() /> 299 <#if blogTextFinalDetalle.getData()?? && blogTextFinalDetalle.getData()?has_content> 300 <#assign rawContent = rawContent + blogTextFinalDetalle.getData() /> 301 </#if> 302 <#assign cleanText = rawContent?replace('<[^>]+>', '', 'r') /> 303 <#assign cleanText = cleanText?replace('\\s+', ' ', 'r')?trim /> 304 <#assign wordCount = cleanText?split(" ")?size /> 305 <#assign readingMinutes = (wordCount / 200)?ceiling /> 306 307 <#if readingMinutes < 1> 308 <#assign readingMinutes = 1 /> 309 </#if> 310 311 <#assign readingTimeLabel = "Tiempo de lectura: " + readingMinutes + " minutos" /> 312</#if> 313 314<#assign webContentDataAutor = jsonFactoryUtil.createJSONObject(autor.getData())/> 315<#if webContentDataAutor?? && webContentDataAutor.title??> 316<div class="container-autor-estimacion d-flex space-between"> 317 <#assign classPKAutor = webContentDataAutor.classPK?number /> 318 <#assign relatedJournalArticleAutor = journalArticleLocalService.getLatestArticle(classPKAutor) /> 319 <#assign documentAutor = saxReaderUtil.read(relatedJournalArticleAutor.getContent())> 320 <#assign rootElementAutor = documentAutor.getRootElement()> 321 <#assign defaultLanguageIdAutor = parseXml("@default-locale", rootElementAutor)> 322 <#assign nombreApellidos = getField("nombreApellidos", localeCurrent, defaultLanguageIdAutor, rootElementAutor)!> 323 <#assign imagen = getField("imagen", localeCurrent, defaultLanguageIdAutor, rootElementAutor)!> 324 <#assign titulo = getField("titulo", localeCurrent, defaultLanguageIdAutor, rootElementAutor)!> 325 <#assign verificado = getField("verificado", localeCurrent, defaultLanguageIdAutor, rootElementAutor)!> 326 327 <div class="content-autor d-flex flex-row align-items-center gap-2 mb-5"> 328 <#if imagen?has_content && imagen != '{}' && imagen != '{"description":"","title":"","url":""}' && imagen != '{"alt":""}'> 329 <#assign srcImagen = jsonFactoryUtil.createJSONObject(imagen).url /> 330 <#if jsonFactoryUtil.createJSONObject(imagen).alt?has_content> 331 <#assign altImagen = jsonFactoryUtil.createJSONObject(imagen).alt /> 332 <#else> 333 <#assign altImagen = nombreApellidos /> 334 </#if> 335 <img class="img-autor" src="${srcImagen}" alt="${altImagen}" width="40" height="40" loading="lazy"/> 336 <#else> 337 <#assign inicial = nombreApellidos?substring(0, 1)?upper_case /> 338 <div class="d-flex align-items-center justify-content-center fw-bold" style="width:40px;height:40px;min-width:40px;background-color:#F7F7F7;color:#1A1A1AA6;font-size: 1.5rem;border-radius:4px;line-height:2rem;"> 339 ${inicial} 340 </div> 341 </#if> 342 <div class="d-flex flex-column"> 343 <#if verificado == "true"> 344 <div class="d-flex align-items-center autor-verify"> 345 <span class="low-3 name-autor">${nombreApellidos}</span> 346 <svg width="16" height="24" viewBox="0 0 16 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 347 <g clip-path="url(#clip0_969_3519)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.76818 5.52475C7.42932 4.79907 8.57126 4.79902 9.23237 5.52475L9.91271 6.27149C10.1131 6.49145 10.4012 6.61088 10.6985 6.59701L11.7076 6.55014C12.6884 6.50433 13.4963 7.31218 13.4505 8.29298L13.4029 9.30209C13.3892 9.59926 13.5085 9.88756 13.7285 10.0879L14.4752 10.7682C15.201 11.4294 15.2011 12.5713 14.4752 13.2324L13.7285 13.9128C13.5086 14.1132 13.3891 14.4013 13.4029 14.6986L13.4505 15.7077L13.4492 15.8893C13.3981 16.7261 12.7261 17.3983 11.8893 17.4492L11.7076 17.4505L10.6985 17.403C10.4012 17.3891 10.1131 17.5085 9.91271 17.7285L9.23237 18.4753C8.57126 19.2011 7.42932 19.201 6.76818 18.4753L6.08784 17.7285C5.88744 17.5085 5.59929 17.3892 5.30203 17.403L4.29292 17.4505C3.31221 17.4964 2.50442 16.6883 2.55008 15.7077L2.59695 14.6986C2.61082 14.4012 2.4914 14.1132 2.27143 13.9128L1.52469 13.2324C0.798997 12.5714 0.799128 11.4294 1.52469 10.7682L2.27143 10.0879C2.49143 9.88755 2.61069 9.59932 2.59695 9.30209L2.55008 8.29298C2.50424 7.31218 3.31211 6.5043 4.29292 6.55014L5.30203 6.59701C5.59928 6.61082 5.88744 6.49146 6.08784 6.27149L6.76818 5.52475ZM10.5006 10.3132C10.3054 10.1179 9.98883 10.1179 9.79357 10.3132L7.48042 12.6263L6.5006 11.6465C6.30535 11.4512 5.98883 11.4513 5.79357 11.6465C5.59831 11.8418 5.59831 12.1583 5.79357 12.3535L7.1269 13.6869C7.32217 13.882 7.63869 13.8821 7.83393 13.6869L10.5006 11.0202C10.6958 10.8249 10.6958 10.5084 10.5006 10.3132Z" fill="#BBA35B"/></g> 348 <defs><clipPath id="clip0_969_3519"><rect width="16" height="16" fill="white" transform="translate(0 4)"/></clipPath></defs> 349 </svg> 350 </div> 351 <#else> 352 <span class="low-3 name-autor">${nombreApellidos}</span> 353 </#if> 354 <span class="low-2 description-autor">${titulo}</span> 355 </div> 356 </div> 357 358</#if> 359 360<#if readingTimeLabel?has_content> 361 <div id="estimacionLectura" class="mb-5 d-flex align-items-center flex-row"> 362 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 363 <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.5C6.75329 2.5 2.5 6.75329 2.5 12C2.5 17.2467 6.75329 21.5 12 21.5C17.2467 21.5 21.5 17.2467 21.5 12C21.5 6.75329 17.2467 2.5 12 2.5ZM1.5 12C1.5 6.20101 6.20101 1.5 12 1.5C17.799 1.5 22.5 6.20101 22.5 12C22.5 17.799 17.799 22.5 12 22.5C6.20101 22.5 1.5 17.799 1.5 12ZM12 5.5002C12.2761 5.5002 12.5 5.72405 12.5 6.0002V11.5002L18 11.5002C18.2761 11.5002 18.5 11.7241 18.5 12.0002C18.5 12.2763 18.2761 12.5002 18 12.5002L12 12.5002C11.8674 12.5002 11.7402 12.4475 11.6464 12.3537C11.5527 12.26 11.5 12.1328 11.5 12.0002V6.0002C11.5 5.72405 11.7239 5.5002 12 5.5002Z" fill="#1A1A1A" fill-opacity="0.65"/> 364 </svg> 365 <span class="low-3 color-content-mid">${readingTimeLabel}</span> 366 </div> 367</#if> 368<#if webContentDataAutor?? && webContentDataAutor.title??> 369 </div> <#-- cierre div class="container-autor-estimacion" --> 370</#if> 371 <div id="cardAnclas"> 372 373 </div> 374 375 <#if (blogDescripcion.getData()?has_content && blogDescripcion.getData() != "")> 376 <div class="container-xs_v2"> 377 <h2> 378 ${blogDescripcion.getData()} 379 </h2> 380 </div> 381 </#if> 382 <div class="container-xs_v2"> 383 <#assign posicionTarjeta = 0 /> 384 <#if (opcionPosicionTarjeta.getData())??> 385 <#if opcionPosicionTarjeta.getData() == 'tarjetaMitad'> 386 <#assign posicionTarjeta = 1 /> 387 </#if> 388 </#if> 389 <#if posicionTarjeta == 0> 390 <#if (blogEleccionCabecera.getData()) = 'blogOpcionGris'> 391 <div class="lda-large-card lda-large-card--grey border-radius-l"> 392 <div class="row"> 393 <div class="col-md-12 col-lg-6"> 394 <div class="lda-large-card__placement d-flex flex-column"> 395 <#if (blogGris.selectEtiquetadoTituloTarjeta.getData()?has_content)> 396 <#assign headingTitulo = blogGris.selectEtiquetadoTituloTarjeta.getData()?keep_after("TituloTarjeta")/> 397 <${headingTitulo} class="high-2 mb-0">${blogGris.blogGrisTitulo.getData()}</${headingTitulo}> 398 <#else> 399 <div class="high-2"> 400 ${blogGris.blogGrisTitulo.getData()} 401 </div> 402 </#if> 403 <#if (blogGris.selectEtiquetadoSubtituloTarjeta.getData()?has_content)> 404 <#assign headingSubtitulo = blogGris.selectEtiquetadoSubtituloTarjeta.getData()?keep_after("SubtituloTarjeta")/> 405 <${headingSubtitulo} class="low-3 mb-0">${blogGris.blogGrisSubtitulo.getData()}</${headingSubtitulo}> 406 <#else> 407 <div class="low-3"> 408 ${blogGris.blogGrisSubtitulo.getData()} 409 </div> 410 </#if> 411 </div> 412 </div><!--col-md6 --> 413 <div class="col-md-12 col-lg-6"> 414 <div class="lda-blog-card__action-card d-flex flex-column gap-3 gap-sm-5"> 415 <#if blogGris.blogGrisInterlink.getSiblings()?has_content> 416 <#list blogGris.blogGrisInterlink.getSiblings() as cur_blogGris_blogGrisInterlink> 417 <a href="${cur_blogGris_blogGrisInterlink.blogGrisLinkAccion.getData()}" title="${cur_blogGris_blogGrisInterlink.blogGrisTextoBoton.getData()}" 418 class="lda-action-card lda-action-card--default lda-action-card--horizontal"> 419 <#if (cur_blogGris_blogGrisInterlink.blogGrisIcon.getData())?? && cur_blogGris_blogGrisInterlink.blogGrisIcon.getData() != ""> 420 <#assign ariaHiddenBlogGrisIcon = "false" /> 421 <#if getterUtil.getBoolean(cur_blogGris_blogGrisInterlink.desactivarAltBlogGrisIcon.getData())> 422 <#assign ariaHiddenBlogGrisIcon = "true" /> 423 </#if> 424 <div class="lda-btn--icon lda-btn--low" id="lda-action-card-avatar"> 425 <img aria-hidden="${ariaHiddenBlogGrisIcon}" class="lda-action-card--avatar-img" alt="${cur_blogGris_blogGrisInterlink.blogGrisIcon.getAttribute("alt")}" data-fileentryid="${cur_blogGris_blogGrisInterlink.blogGrisIcon.getAttribute("fileEntryId")}" src="${cur_blogGris_blogGrisInterlink.blogGrisIcon.getData()}" /> 426 </div> 427 </#if> 428 <#if (cur_blogGris_blogGrisInterlink.blogGrisTextoBoton.getData())??> 429 <div class="lda-action-card--container"> 430 <div class="lda-action-card--texts"> 431 <div class="lda-action-card--title">${cur_blogGris_blogGrisInterlink.blogGrisTextoBoton.getData()}</div> 432 </div> 433 <!-- span class="icon-chevron"></span --> 434 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.64645 3.64645C7.45118 3.84171 7.45118 4.15829 7.64645 4.35355L15.2929 12L7.64645 19.6464C7.45118 19.8417 7.45118 20.1583 7.64645 20.3536C7.84171 20.5488 8.15829 20.5488 8.35355 20.3536L16.3536 12.3536C16.5488 12.1583 16.5488 11.8417 16.3536 11.6464L8.35355 3.64645C8.15829 3.45118 7.84171 3.45118 7.64645 3.64645Z" fill="#CC3333"></path> 435 </svg> 436 </div> 437 </#if> 438 </a> 439 </#list> 440 </#if> 441 </div> 442 443 </div> <!-- col6 --> 444 </div> 445 446 </div> 447 448 <#elseif (blogEleccionCabecera.getData()) = 'blogOpcionBlanco'> 449 <div class="lda-large-card lda-card--white border-radius-l"> 450 <#if (blogResumen.getData())??> 451 <div class="lda-blog-resumen"> 452 ${blogResumen.getData()} 453 </div> 454 </#if> 455 <div class="lda-rr-ss d-flex flex-column align-items-start justify-content-start"> 456 <div class="high-1"><@liferay.language key="lda.blog.detail.social.media" /></div> 457 <div class="lda-rr-ss__icons d-flex mt-3"> 458 <a class="lda-btn lda-btn--icon lda-btn--low" title="<@liferay.language key="lda.social.media.facebook" />" 459 href="https://www.facebook.com/sharer.php?u=${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()?replace('/w/','/')}"> 460 <svg width="24" height="24" viewBox="0 0 80 72" fill="none" xmlns="http://www.w3.org/2000/svg"> 461<path d="M52.8375 40.2973L54.5487 29.2626H43.8492V22.1019C43.8492 19.083 45.3438 16.1403 50.1358 16.1403H55V6.74549C55 6.74549 50.5859 6 46.3655 6C37.5541 6 31.7946 11.2851 31.7946 20.8526V29.2626H22V40.2973H31.7946V66.973H43.8492V40.2973H52.8375Z" fill="#CC3333"/> 462</svg> 463 </a> 464 <a class="lda-btn lda-btn--icon lda-btn--low" title="<@liferay.language key="lda.social.media.twitter" />" 465 href=" https://twitter.com/intent/tweet?text=${blogTitle.getData()}&tw_p=tweetbutton&url=${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()?replace('/w/','/')}"> 466 <svg width="24" height="24" viewBox="0 0 80 72" fill="none" xmlns="http://www.w3.org/2000/svg"> 467<path d="M44.4463 31.8653L64.1168 9H59.4555L42.3756 28.8536L28.734 9H13L33.6288 39.0222L13 63H17.6615L35.6983 42.0339L50.1049 63H65.8389L44.4463 31.8653ZM38.0617 39.2867L35.9716 36.2972L19.3411 12.5091H26.501L39.9219 31.7068L42.0121 34.6964L59.4577 59.6505H52.2979L38.0617 39.2867Z" fill="#CC3333"/> 468</svg> </a> 469 </div> 470 </div> 471 </div> 472 </#if> 473 <#else> 474 <#if bloqueList.getSiblings()?has_content> 475 <#assign classPaddingBottom = "pb-0 pt-0" /> 476 <#list bloqueList.getSiblings() as cur_bloqueList> 477 <#if cur_bloqueList.tituloBloqueList.getData()?has_content> 478 <#assign classPaddingBottom = "pb-4" /> 479 </#if> 480 </#list> 481 <div class="lda-content-text ${classPaddingBottom}"> 482 483 <#if tituloPreBloqueList.getData()?has_content> 484 <h3 class="mb-0">${tituloPreBloqueList.getData()}</h3> 485 </#if> 486 487 <div class="row"> 488 <#list bloqueList.getSiblings() as cur_bloqueList> 489 <div class="col-lg-6 col-md-12"> 490 <div class="lda-icon-card lda-icon-card__new d-flex gap-3 mt-5 mb-1 mb-lg-4"> 491 <#if (cur_bloqueList.iconoBloqueList.getData())?? && cur_bloqueList.iconoBloqueList.getData() != ""> 492 493 <#assign ariaHiddenIconoBloqueList = "false" /> 494 <#if getterUtil.getBoolean(cur_bloqueList.desactivarAltIconoBloqueList.getData())> 495 <#assign ariaHiddenIconoBloqueList = "true" /> 496 </#if> 497 498 <div class="lda-btn--icon lda-btn--low"> 499 <img aria-hidden="${ariaHiddenIconoBloqueList}" alt="${cur_bloqueList.iconoBloqueList.getAttribute("alt")}" data-fileentryid="${cur_bloqueList.iconoBloqueList.getAttribute("fileEntryId")}" src="${cur_bloqueList.iconoBloqueList.getData()}" /> 500 </div> 501 </#if> 502 <div class="lda-icon-card__info d-flex flex-column"> 503 <#if cur_bloqueList.tituloBloqueList.getData()?has_content> 504 <h3 class="high-3 min-h-56 d-flex align-items-center m-0">${cur_bloqueList.tituloBloqueList.getData()}</h3> 505 </#if> 506 <#if cur_bloqueList.subtituloBloqueList.getData()?has_content> 507 <div class="high-1 min-h-56 d-flex align-items-center"> 508 ${cur_bloqueList.subtituloBloqueList.getData()} 509 </div> 510 </#if> 511 <#if cur_bloqueList.cuerpoBloqueList.getData()?has_content> 512 <div class="lda-card--small-description pb-0 pt-0"> 513 ${cur_bloqueList.cuerpoBloqueList.getData()} 514 </div> 515 </#if> 516 </div> 517 </div> 518 </div> 519 </#list> 520 </div> 521 </#if> 522 </div> 523 </#if> 524 </div> 525 526 <div class="container-xs_v2"> 527 528 <#if blogTextoDetalle.getData()?? && blogTextoDetalle.getData() != "" && blogTextoDetalle.getData()?has_content> 529 <div class="lda-content-text"> 530 ${blogTextoDetalle.getData()} 531 </div> 532 </#if> 533 534 <#if blogTabla.getData()?? && blogTabla.getData() != "" && blogTabla.getData()?has_content> 535 <div class="lda-content-contenido"> 536 <#assign article = blogTabla.getData()?eval /> 537 <@liferay_asset["asset-display"] 538 className=article.className 539 classPK=getterUtil.getLong(article.classPK, 0) 540 template="full_content"/> 541 </div> 542 </#if> 543 544 <#if blogImagePreview.getData()?? && blogImagePreview.getData() != "" && blogImagePreview.getData()?has_content> 545 <#if !getterUtil.getBoolean(ocultarImagenBlog.getData())> 546 <div class="lda-content-text lda-blog-detalle__imagen"> 547 <img aria-hidden="${ariaHiddenBlogImagePreview}" alt="${blogImagePreview.getAttribute("alt")}" 548 data-fileentryid="${blogImagePreview.getAttribute("fileEntryId")}" 549 src="${blogImagePreview.getData()}"/> 550 </div> 551 </#if> 552 </#if> 553 554 <#if blogVideoSetDetalle.blogVideoTexto.getData()?? && blogVideoSetDetalle.blogVideoTexto.getData() != "" && blogVideoSetDetalle.blogVideoTexto.getData()?has_content> 555 <div class="lda-content-text pb-0"> 556 ${blogVideoSetDetalle.blogVideoTexto.getData()} 557 </div> 558 </#if> 559 560 <#assign videoURL = "" /> 561 <#if blogVideoSetDetalle.blogVideoDetalle.getData()?? && blogVideoSetDetalle.blogVideoDetalle.getData() != "" && blogVideoSetDetalle.blogVideoDetalle.getData()?has_content> 562 <#assign videoURL = blogVideoSetDetalle.blogVideoDetalle.getData()/> 563 </#if> 564 <#if blogVideoSetDetalle.blogVideoURL.getData()?? && blogVideoSetDetalle.blogVideoURL.getData() != "" && blogVideoSetDetalle.blogVideoURL.getData()?has_content> 565 <#if (blogVideoSetDetalle.blogVideoURL.getData())?lower_case?contains('youtube') && (blogVideoSetDetalle.blogVideoURL.getData())?lower_case?contains('watch')> 566 <!-- Hay que cambiar el /watch?v= de youtube por /embed/ para que lo acepte el iframe --> 567 <#assign videoURL = blogVideoSetDetalle.blogVideoURL.getData()?keep_before('/watch?v=') + '/embed/' + blogVideoSetDetalle.blogVideoURL.getData()?keep_after('/watch?v=') /> 568 <#else> 569 <#assign videoURL = blogVideoSetDetalle.blogVideoURL.getData() /> 570 </#if> 571 </#if> 572 <#if videoURL != ""> 573 <div class="lda-content-text lda-video-card border-radius-l"> 574 <iframe style="aspect-ratio: 16 / 9; width: 100%;" 575 src=${videoURL} frameborder="0" 576 webkitallowfullscreen mozallowfullscreen allowfullscreen > 577 </iframe> 578 </div> 579 </#if> 580 581 582 <#if posicionTarjeta == 1> 583 <#if (blogEleccionCabecera.getData()) = 'blogOpcionGris'> 584 <div class="lda-large-card lda-large-card--grey border-radius-l"> 585 <div class="row"> 586 <div class="col-md-12 col-lg-6"> 587 <div class="lda-large-card__placement d-flex flex-column"> 588 <#if (blogGris.selectEtiquetadoTituloTarjeta.getData()?has_content)> 589 <#assign headingTitulo = blogGris.selectEtiquetadoTituloTarjeta.getData()?keep_after("TituloTarjeta")/> 590 <${headingTitulo} class="high-2 mb-0">${blogGris.blogGrisTitulo.getData()}</${headingTitulo}> 591 <#else> 592 <div class="high-2"> 593 ${blogGris.blogGrisTitulo.getData()} 594 </div> 595 </#if> 596 <#if (blogGris.selectEtiquetadoSubtituloTarjeta.getData()?has_content)> 597 <#assign headingSubtitulo = blogGris.selectEtiquetadoSubtituloTarjeta.getData()?keep_after("SubtituloTarjeta")/> 598 <${headingSubtitulo} class="low-3 mb-0">${blogGris.blogGrisSubtitulo.getData()}</${headingSubtitulo}> 599 <#else> 600 <div class="low-3"> 601 ${blogGris.blogGrisSubtitulo.getData()} 602 </div> 603 </#if> 604 </div> 605 </div><!--col-md6 --> 606 <div class="col-md-12 col-lg-6"> 607 <div class="lda-blog-card__action-card d-flex flex-column gap-3 gap-sm-5"> 608 <#if blogGris.blogGrisInterlink.getSiblings()?has_content> 609 <#list blogGris.blogGrisInterlink.getSiblings() as cur_blogGris_blogGrisInterlink> 610 <a href="${cur_blogGris_blogGrisInterlink.blogGrisLinkAccion.getData()}" title="${cur_blogGris_blogGrisInterlink.blogGrisTextoBoton.getData()}" 611 class="lda-action-card lda-action-card--default lda-action-card--horizontal"> 612 <#if (cur_blogGris_blogGrisInterlink.blogGrisIcon.getData())?? && cur_blogGris_blogGrisInterlink.blogGrisIcon.getData() != ""> 613 <#assign ariaHiddenBlogGrisIcon = "false" /> 614 <#if getterUtil.getBoolean(cur_blogGris_blogGrisInterlink.desactivarAltBlogGrisIcon.getData())> 615 <#assign ariaHiddenBlogGrisIcon = "true" /> 616 </#if> 617 <div class="lda-btn--icon lda-btn--low" id="lda-action-card-avatar"> 618 <img aria-hidden="${ariaHiddenBlogGrisIcon}" class="lda-action-card--avatar-img" alt="${cur_blogGris_blogGrisInterlink.blogGrisIcon.getAttribute("alt")}" data-fileentryid="${cur_blogGris_blogGrisInterlink.blogGrisIcon.getAttribute("fileEntryId")}" src="${cur_blogGris_blogGrisInterlink.blogGrisIcon.getData()}" /> 619 </div> 620 </#if> 621 <#if (cur_blogGris_blogGrisInterlink.blogGrisTextoBoton.getData())??> 622 <div class="lda-action-card--container"> 623 <div class="lda-action-card--texts"> 624 <div class="lda-action-card--title">${cur_blogGris_blogGrisInterlink.blogGrisTextoBoton.getData()}</div> 625 </div> 626 <!-- span class="icon-chevron"></span --> 627 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.64645 3.64645C7.45118 3.84171 7.45118 4.15829 7.64645 4.35355L15.2929 12L7.64645 19.6464C7.45118 19.8417 7.45118 20.1583 7.64645 20.3536C7.84171 20.5488 8.15829 20.5488 8.35355 20.3536L16.3536 12.3536C16.5488 12.1583 16.5488 11.8417 16.3536 11.6464L8.35355 3.64645C8.15829 3.45118 7.84171 3.45118 7.64645 3.64645Z" fill="#CC3333"></path> 628 </svg> 629 </div> 630 </#if> 631 </a> 632 </#list> 633 </#if> 634 </div> 635 636 </div> <!-- col6 --> 637 </div> 638 639 </div> 640 641 <#elseif (blogEleccionCabecera.getData()) = 'blogOpcionBlanco'> 642 <div class="lda-large-card lda-card--white border-radius-l"> 643 <#if (blogResumen.getData())??> 644 <div class="lda-blog-resumen"> 645 ${blogResumen.getData()} 646 </div> 647 </#if> 648 <div class="lda-rr-ss d-flex flex-column align-items-start justify-content-start"> 649 <div class="high-1"><@liferay.language key="lda.blog.detail.social.media" /></div> 650 <div class="lda-rr-ss__icons d-flex mt-3"> 651 <a class="lda-btn lda-btn--icon lda-btn--low" title="<@liferay.language key="lda.social.media.facebook" />" 652 href="https://www.facebook.com/sharer.php?u=${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()?replace('/w/','/')}"> 653 <svg width="24" height="24" viewBox="0 0 80 72" fill="none" xmlns="http://www.w3.org/2000/svg"> 654<path d="M52.8375 40.2973L54.5487 29.2626H43.8492V22.1019C43.8492 19.083 45.3438 16.1403 50.1358 16.1403H55V6.74549C55 6.74549 50.5859 6 46.3655 6C37.5541 6 31.7946 11.2851 31.7946 20.8526V29.2626H22V40.2973H31.7946V66.973H43.8492V40.2973H52.8375Z" fill="#CC3333"/> 655</svg> 656 </a> 657 <a class="lda-btn lda-btn--icon lda-btn--low" title="<@liferay.language key="lda.social.media.twitter" />" 658 href=" https://twitter.com/intent/tweet?text=${blogTitle.getData()}&tw_p=tweetbutton&url=${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()?replace('/w/','/')}"> 659 <svg width="24" height="24" viewBox="0 0 80 72" fill="none" xmlns="http://www.w3.org/2000/svg"> 660<path d="M44.4463 31.8653L64.1168 9H59.4555L42.3756 28.8536L28.734 9H13L33.6288 39.0222L13 63H17.6615L35.6983 42.0339L50.1049 63H65.8389L44.4463 31.8653ZM38.0617 39.2867L35.9716 36.2972L19.3411 12.5091H26.501L39.9219 31.7068L42.0121 34.6964L59.4577 59.6505H52.2979L38.0617 39.2867Z" fill="#CC3333"/> 661</svg> </a> 662 </div> 663 </div> 664 </div> 665 </#if> 666 <#else> 667 <#if bloqueList.getSiblings()?has_content && (bloqueList.getSiblings()[0].cuerpoBloqueList.getData()?has_content || tituloPreBloqueList.getData()?has_content)> 668 <div class="lda-content-text pt-0 pb-4"> 669 670 <#if tituloPreBloqueList.getData()?has_content> 671 <h3 class="mb-0">${tituloPreBloqueList.getData()}</h3> 672 </#if> 673 674 <div class="row"> 675 <#list bloqueList.getSiblings() as cur_bloqueList> 676 <div class="col-lg-6 col-md-12"> 677 <div class="lda-icon-card lda-icon-card__new d-flex gap-3 mt-5 mb-1 mb-lg-4"> 678 679 <#if (cur_bloqueList.iconoBloqueList.getData())?? && cur_bloqueList.iconoBloqueList.getData() != ""> 680 681 682 <#assign ariaHiddenIconoBloqueList = "false" /> 683 <#if getterUtil.getBoolean(cur_bloqueList.desactivarAltIconoBloqueList.getData())> 684 <#assign ariaHiddenIconoBloqueList = "true" /> 685 </#if> 686 687 <div class="lda-btn--icon lda-btn--low"> 688 <img aria-hidden="${ariaHiddenIconoBloqueList}" alt="${cur_bloqueList.iconoBloqueList.getAttribute("alt")}" data-fileentryid="${cur_bloqueList.iconoBloqueList.getAttribute("fileEntryId")}" src="${cur_bloqueList.iconoBloqueList.getData()}" /> 689 </div> 690 </#if> 691 <div class="lda-icon-card__info d-flex flex-column"> 692 <#if cur_bloqueList.tituloBloqueList.getData()?has_content> 693 <h3 class="high-3 min-h-56 d-flex align-items-center m-0">${cur_bloqueList.tituloBloqueList.getData()}</h3> 694 </#if> 695 696 <#if cur_bloqueList.subtituloBloqueList.getData()?has_content> 697 <div class="high-1 min-h-56 d-flex align-items-center"> 698 ${cur_bloqueList.subtituloBloqueList.getData()} 699 </div> 700 </#if> 701 702 <#if cur_bloqueList.cuerpoBloqueList.getData()?has_content> 703 <div class="lda-card--small-description pb-0 pt-0"> 704 ${cur_bloqueList.cuerpoBloqueList.getData()} 705 </div> 706 </#if> 707 </div> 708 </div> 709 </div> 710 </#list> 711 </div> 712 </div> 713 </#if> 714 </#if> 715 716 <#if blogTextFinalDetalle.getData()?? && blogTextFinalDetalle.getData() != "" && blogTextFinalDetalle.getData()?has_content> 717 <div class="lda-content-text"> 718 ${blogTextFinalDetalle.getData()} 719 </div> 720 </#if> 721 722 <#if blogDetalleInfografia.getData()?? && blogDetalleInfografia.getData() != "" && blogDetalleInfografia.getData()?has_content> 723 <div class="lda-content-text lda-blog-detalle__imagen"> 724 <img aria-hidden="${ariaHiddenBlogDetalleInfografia}" alt="${blogDetalleInfografia.getAttribute("alt")}" 725 data-fileentryid="${blogDetalleInfografia.getAttribute("fileEntryId")}" 726 src="${blogDetalleInfografia.getData()}"/> 727 </div> 728 </#if> 729 730 <#if blogPieInfografia.getData()?? && blogPieInfografia.getData() != "" && blogPieInfografia.getData()?has_content> 731 <div class="lda-blog-detalle__infografia"> 732 ${blogPieInfografia.getData()} 733 </div> 734 </#if> 735 736 <#assign webContentDataSuma = jsonFactoryUtil.createJSONObject(sumaSideImage.getData()) /> 737 <#if webContentDataSuma?? && webContentDataSuma.title??> 738 <#assign classPKSuma = webContentDataSuma.classPK?number /> 739 <#assign relatedJournalArticleSuma = journalArticleLocalService.getLatestArticle(classPKSuma) /> 740 <div> 741 <#assign instanceId = "ldaSumaSideImage" + relatedJournalArticleSuma.articleId> 742 <#assign preferences = { 743 "articleId": relatedJournalArticleSuma.articleId, 744 "groupId": themeDisplay.getScopeGroupId(), 745 "portletSetupPortletDecoratorId": "barebone" 746 } /> 747 748 <@liferay_portlet["runtime"] 749 defaultPreferences="${freeMarkerPortletPreferences.getPreferences(preferences)}" 750 instanceId="${instanceId}" 751 portletProviderAction=portletProviderAction.VIEW 752 portletName="com_liferay_journal_content_web_portlet_JournalContentPortlet" /> 753 754 <#assign preferences = {} /> 755 </div> 756 </#if> 757 758 759 <#assign webContentDataAutor = jsonFactoryUtil.createJSONObject(autor.getData())/> 760 <#if webContentDataAutor?? && webContentDataAutor.title??> 761 762 <#assign classPKAutor = webContentDataAutor.classPK?number /> 763 <#assign relatedJournalArticleAutor = journalArticleLocalService.getLatestArticle(classPKAutor) /> 764 <div> 765 <#assign instanceId = "ldaSumaSideImage" + relatedJournalArticleAutor.articleId> 766 <#assign preferences = { 767 "articleId": relatedJournalArticleAutor.articleId, 768 "groupId": themeDisplay.getScopeGroupId(), 769 "portletSetupPortletDecoratorId": "barebone" 770 } /> 771 772 <@liferay_portlet["runtime"] 773 defaultPreferences="${freeMarkerPortletPreferences.getPreferences(preferences)}" 774 instanceId="${instanceId}" 775 portletProviderAction=portletProviderAction.VIEW 776 portletName="com_liferay_journal_content_web_portlet_JournalContentPortlet" /> 777 778 <#assign preferences = {} /> 779 </div> 780 781 </#if> 782 783 784 785 <div class="lda-rr-ss d-flex flex-column align-items-start justify-content-start"> 786 <div class="high-1"><@liferay.language key="lda.blog.detail.social.media" /></div> 787 <div class="lda-rr-ss__icons d-flex mt-3"> 788 <a class="lda-btn lda-btn--icon lda-btn--low" title="<@liferay.language key="lda.social.media.facebook" />" 789 href="https://www.facebook.com/sharer.php?u=${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()?replace('/w/','/')}"> 790 <svg width="24" height="24" viewBox="0 0 80 72" fill="none" xmlns="http://www.w3.org/2000/svg"> 791<path d="M52.8375 40.2973L54.5487 29.2626H43.8492V22.1019C43.8492 19.083 45.3438 16.1403 50.1358 16.1403H55V6.74549C55 6.74549 50.5859 6 46.3655 6C37.5541 6 31.7946 11.2851 31.7946 20.8526V29.2626H22V40.2973H31.7946V66.973H43.8492V40.2973H52.8375Z" fill="#CC3333"/> 792</svg> 793 </a> 794 <a class="lda-btn lda-btn--icon lda-btn--low" title="<@liferay.language key="lda.social.media.twitter" />" 795 href=" https://twitter.com/intent/tweet?text=${blogTitle.getData()}&tw_p=tweetbutton&url=${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()?replace('/w/','/')}"> 796 <svg width="24" height="24" viewBox="0 0 80 72" fill="none" xmlns="http://www.w3.org/2000/svg"> 797<path d="M44.4463 31.8653L64.1168 9H59.4555L42.3756 28.8536L28.734 9H13L33.6288 39.0222L13 63H17.6615L35.6983 42.0339L50.1049 63H65.8389L44.4463 31.8653ZM38.0617 39.2867L35.9716 36.2972L19.3411 12.5091H26.501L39.9219 31.7068L42.0121 34.6964L59.4577 59.6505H52.2979L38.0617 39.2867Z" fill="#CC3333"/> 798</svg> </a> 799 </div> 800 </div> 801 </div> 802 803 </div> <!-- column-content --> 804 805 <div class="column-right ld-bg-alt border-radius-m px-3 py-5 p-sm-5 p-lg-4"> 806 <div class="low-3 mb-4 mb-lg-1">Artículos que te pueden interesar</div> 807 <div class="column-right__content--items"> 808 <#if relatedNews?has_content && (relatedNews?size > 1) && (counterRelated > 1)> 809 <#assign relatedCount = 0 > 810 <#list relatedNews as related> 811 <#if relatedCount < 3> 812 <#if related.getClassName() == "com.liferay.journal.model.JournalArticle"> 813 <#assign assetRenderer = related.getAssetRenderer()/> 814 <#assign journalArticle = assetRenderer.getAssetObject() /> 815 816 <#if journalArticleId != journalArticle.articleId> 817 <#assign assetRenderer = related.getAssetRenderer()/> 818 <#assign journalArticle = assetRenderer.getAssetObject() /> 819 <#assign document = saxReaderUtil.read(journalArticle.getContent())> 820 <#assign rootElement = document.getRootElement()> 821 <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 822 <#assign layoutURL = journalArticle.urlTitle /> 823 <#assign blogTitlePost = getField("blogTitle", localeCurrent, defaultLanguageId, rootElement)!> 824 <#assign blogImagePreviewPost = getField("blogImagePreview", localeCurrent, defaultLanguageId, rootElement)!> 825 <#assign ariaHiddenBlogImagePreviewPost = getField("desactivarAltBlogImagePreview", localeCurrent, defaultLanguageId, rootElement)!> 826 <#assign blogDescripcionPost = getField("blogDescripcion", localeCurrent, defaultLanguageId, rootElement)!> 827 828 <#if blogTitlePost?has_content && blogTitlePost != ""> 829 830 <#assign articleResourcePrimaryKeyOtras = journalArticleResourceLocalService.getArticleResourcePrimKey(groupId, journalArticle.getArticleId())> 831 <#assign assetEntryOtras = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", articleResourcePrimaryKeyOtras)> 832 <#assign assetCategoriesOtras = assetEntryOtras.getCategories()> 833 <#assign assetTagsOtras = assetEntryOtras.getTags()> 834 835 <#assign urlDetalleOtroPost = portalURL + "/" + journalArticle.getUrlTitle(localeCurrent)> 836 837 <#list assetCategoriesOtras as categoriaOtra> 838 <#assign categoryName = categoriaOtra.getName()> 839 <#list assetCategories as categoryPost> 840 841 <#if ((categoryName?contains("Profesionales") && categoryPost?contains("Profesionales")) || (categoryName?contains("Coche") && categoryPost?contains("Coche")) || (categoryName?contains("Moto") && categoryPost?contains("Moto")) || (categoryName?contains("Hogar") && categoryPost?contains("Hogar")) || (categoryName?contains("Salud") && categoryPost?contains("Salud")) || (categoryName?contains("Patinetes") && categoryPost?contains("Patinetes")) || (categoryName?contains("Ocupaci") && categoryPost?contains("Ocupaci")) || (categoryName?contains("Mascotas") && categoryPost?contains("Mascotas")) || (categoryName?contains("Multirriesgo") && categoryPost?contains("Multirriesgo")))> 842 <div class="lda-blog__item"> 843 844 <div class="lda-card-media__image"> 845 <#if (assetTagsOtras?size > 0 && urlDetalleOtroPost?contains("blog/salud/"))> 846 <div class="lda-card-media__tagContainer"> 847 <#list assetTagsOtras as etiqueta> 848 <#if !etiqueta.getName()?contains("-")> 849 <span class="lda-card-media__tag lda-btn lda-link lda-btn--white">${etiqueta.getName()}</span> 850 </#if> 851 </#list> 852 </div> 853 </#if> 854 <#if blogImagePreviewPost?has_content && blogImagePreviewPost != ""> 855 <#assign imgContentData = jsonFactoryUtil.createJSONObject(blogImagePreviewPost)/> 856 <img aria-hidden="${ariaHiddenBlogImagePreviewPost?string}" loading="lazy" width="100%" height="100%" class="imageElem" alt="${imgContentData.alt}" data-fileentryid="${imgContentData.fileEntryId}" src="${imgContentData.url}" /> 857 </#if> 858 </div> 859 <div class="d-flex flex-column"> 860 <div class="lda-card-media__category low-2 color-content-mid"> 861 <@liferay.language_format key='lda.blog.category' arguments='${categoryPost.getName()}' /> 862 </div> 863 <a class="low-3 line-clamp-3 text-decoration-none" href="${urlDetalleOtroPost}" title="${blogTitlePost}"> 864 ${blogTitlePost} 865 </a> 866 867 <a href="${urlDetalleOtroPost}" title="${blogTitlePost}" class="color-primary-red low-2 mt-1 d-inline-block"> 868 <@liferay.language key="lda.blog.list.link.more.info" /> 869 </a> 870 </div> 871 872 </div> 873 <#assign relatedCount = relatedCount + 1 /> 874 </#if> 875 </#list> 876 </#list> 877 878 879 880 </#if> 881 </#if> 882 </#if> 883 </#if> 884 </#list> 885 </#if> 886 887 </div> <!-- content-list --> 888 </div> <!-- column-right --> 889 890</div> <!-- container-nuevo --> 891 892 893</div> 894 895 896</div><!-- lda-article-show --> 897 898 899<#-- Script de video --> 900<#if (blogVideoSetDetalle.blogVideoScriptDetalle.getData()?? && blogVideoSetDetalle.blogVideoScriptDetalle.getData()!= "")> 901 ${blogVideoSetDetalle.blogVideoScriptDetalle.getData()} 902</#if> 903 904<#-- dar formato a las fechas --> 905<#assign articleDisplayDate = .vars['reserved-article-display-date'].data /> 906<#assign articleCreateDate = .vars['reserved-article-create-date'].data /> 907<#assign articleModifiedDate = .vars['reserved-article-modified-date'].data /> 908 909<#assign originalLocale = locale /> 910<#setting locale = 'es_ES' /> 911<#assign dateTimeFormat = languageUtil.get(originalLocale, "yyyy-MM-dd") /> 912 913<#assign dateCreate = articleCreateDate?date("EEE, dd MMM yyyy hh:mm:ss zzz") /> 914<#assign dateCreate = dateCreate?string(dateTimeFormat) /> 915 916<script type="application/ld+json"> 917 ${scriptMarcadoService.getBlogPosting(themeDisplay, journalArticleId)} 918</script> 919 920<#if (assetCategories?size > 0)> 921<script> 922$(document).ready(function() { 923 var $cardContainer = $('#cardAnclas'); 924 925 if ($cardContainer.length === 0) { 926 return; 927 } 928 929 if (!$.easing.customEaseIn) { 930 $.extend($.easing, { 931 customEaseIn: function (x, t, b, c, d) { 932 return c * (t /= d) * t + b; 933 } 934 }); 935 } 936 937 <#if getterUtil.getBoolean(ocultarSubtitulosIndice.getData())> 938 var $headings = $('h2').filter(function() { 939 return $(this).index() > $cardContainer.index() || $(this).offset().top > $cardContainer.offset().top; 940 }); 941 <#else> 942 var $headings = $('h2, h3, h4').filter(function() { 943 return $(this).index() > $cardContainer.index() || $(this).offset().top > $cardContainer.offset().top; 944 }); 945 </#if> 946 947 $headings = $headings.slice(0); 948 949 if ($headings.length === 0) { 950 $cardContainer.hide(); 951 return; 952 } 953 954 var listHtml = '<div class="card-title low-3 mb-4">Contenido del artículo</div><ul class="d-flex flex-column gap-3">'; 955 956 $headings.each(function(index) { 957 var $el = $(this); 958 var text = $el.text(); 959 960 var anchorId = $el.attr('id'); 961 if (!anchorId) { 962 anchorId = text.toLowerCase().replace(/[^\w\s-]/g, '').replace(/\s+/g, '-') + '-' + index; 963 $el.attr('id', anchorId); 964 } 965 966 var tagName = $el.prop("tagName").toLowerCase(); 967 var indent = 0; 968 969 if (tagName === 'h3') indent = 16; 970 if (tagName === 'h4') indent = 32; 971 972 listHtml += '<li>'; 973 listHtml += '<a class="lda-link" href="#' + anchorId + '" style="padding-left: ' + indent + 'px;">'; 974 listHtml += text; 975 listHtml += '</a></li>'; 976 }); 977 978 listHtml += '</ul>'; 979 980 $cardContainer.html(listHtml); 981 982 $cardContainer.find('a').on('click', function(e) { 983 e.preventDefault(); 984 985 var targetId = $(this).attr('href'); 986 var $target = $(targetId); 987 988 if ($target.length) { 989 $('html, body').animate({ 990 scrollTop: $target.offset().top - 32 991 }, 992 600, 993 'customEaseIn' 994 ); 995 } 996 }); 997}); 998 999 1000const tlfnMutado = document.querySelector('.lda-tel__secondary'); 1001 if (tlfnMutado) { 1002 function updateButton(btnLlamame, newValue) { 1003 tlfnMutado.setAttribute('title', '${titleTelefono} ' + newValue); 1004 btnLlamame.setAttribute('onclick', "validarTeLlamamos(this); callLlamameAPI(this, '${fromPagina}', '${idServicioPagina}', '${tipoVehiculo}', getClosestNameInput(this), '${nameEvento?lower_case}', '${urlTeLlamamos}', '" + newValue + "')"); 1005 } 1006 1007 const observer = new MutationObserver(mutations => { 1008 mutations.forEach(mutation => { 1009 if (mutation.type === 'characterData' || mutation.type === 'childList') { 1010 const newValue = tlfnMutado.innerText.trim(); 1011 if (newValue) { 1012 var btnLlamame = document.getElementById('teLlamamosBtn'); 1013 if (btnLlamame != null) { 1014 if (!${isMobile?c}) { 1015 updateButton(btnLlamame, newValue); 1016 } 1017 } 1018 } 1019 } 1020 }); 1021 }); 1022 1023 observer.observe(tlfnMutado, { 1024 subtree: true, 1025 characterData: true, 1026 childList: true, 1027 }); 1028 } 1029 1030AUI().ready(function(){ 1031 document.querySelector('meta[name="twitter:description"]').setAttribute("content", "${blogResumen.getData()?replace("<[^>]+>", "", "r")?replace("\\s+", " ", "r")?js_string}"); 1032 1033 var btnLlamame = document.getElementById('teLlamamosBtn'); 1034 if (btnLlamame != null) { 1035 if (btnLlamame.classList.contains('device-is-mobile') && (window.innerWidth > "600")) { 1036 if (!btnLlamame.classList.contains('lda-disabled')){ 1037 btnLlamame.classList.add('lda-disabled'); 1038 } 1039 btnLlamame.setAttribute('onclick', "validarTeLlamamos(this); callLlamameAPI(this, '${fromPagina}', '${idServicioPagina}', '${tipoVehiculo}', getClosestNameInput(this), '${nameEvento?lower_case}', '${urlTeLlamamos}', '${telfLineaDirecta}')"); 1040 btnLlamame.classList.remove('device-is-mobile'); 1041 btnLlamame.classList.add('device-is-non-mobile'); 1042 } 1043 } 1044 1045 var isBeco, textCreator, dateFirstPublication, pageWordCounter, pageSection, pageSubSection, pageSeoTipologia, pageSeoTerritorio, pageSeoTargetBP, pageMultimedia, pageContentType; 1046 1047 <#if getterUtil.getBoolean(isBeco.getData())> 1048 isBeco = 1; 1049 <#else> 1050 isBeco = 0; 1051 </#if> 1052 1053 textCreator = "Línea Directa"; 1054 1055 dateFirstPublication = "${dateCreate}".replaceAll("-",""); 1056 1057 pageWordCounter = ${blogTitle.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogSubtituloBanner.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogDescripcion.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogResumen.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogGris.blogGrisTitulo.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogGris.blogGrisSubtitulo.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogTextoDetalle.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogVideoSetDetalle.blogVideoTexto.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${tituloPreBloqueList.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${bloqueList.tituloBloqueList.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${bloqueList.cuerpoBloqueList.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogTextFinalDetalle.getData()?replace("<[^>]+>", "", "r")?word_list?size} + ${blogPieInfografia.getData()?replace("<[^>]+>", "", "r")?word_list?size}; 1058 var pageWordCounterString = pageWordCounter.toString(); 1059 1060 pageSection = "${assetEntry.getCategories()[0].getName()}"; 1061 1062 <#if assetEntry.getCategories()[0].getName() == "Salud"> 1063 pageSubSection = "${assetEntry.getTags()[0].getName()}"; 1064 <#else> 1065 pageSubSection = ""; 1066 </#if> 1067 1068 pageSeoTipologia = "${selectTipologia.getData()?keep_after('_')}"; 1069 1070 <#assign buyerPersona = "" /> 1071 <#list selectBuyer.getData()?split(",") as value> 1072 <#assign buyerPersona = buyerPersona + value?keep_after('_') + "," /> 1073 </#list> 1074 pageSeoTargetBP = '${buyerPersona?replace("\"","")?replace("]","")?keep_before_last(",")}'; 1075 1076 pageSeoTerritorio = "${selectTerritorios.getData()?keep_after('_')}" 1077 1078 pageMultimedia = "imagen"; 1079 <#if (blogDetalleInfografia.getData()?has_content) && blogDetalleInfografia.getData() != ""> 1080 pageMultimedia = "infografia"; 1081 </#if> 1082 <#if (blogVideoSetDetalle.blogVideoURL.getData()?has_content || blogVideoSetDetalle.blogVideoDetalle.getData()?has_content)> 1083 pageMultimedia = "video"; 1084 </#if> 1085 1086 pageContentType = "blog_post"; 1087 1088 window.utag_data["date_first_publication"] = dateFirstPublication; 1089 window.utag_data["page_wordcounter"] = pageWordCounter; 1090 window.utag_data["page_section"] = pageSection; 1091 window.utag_data["page_subsection"] = pageSubSection; 1092 window.utag_data["page_seotipologia"] = pageSeoTipologia; 1093 window.utag_data["page_seoterritorio"] = pageSeoTerritorio; 1094 window.utag_data["page_seotargetBP"] = pageSeoTargetBP; 1095 window.utag_data["page_multimedia"] = pageMultimedia; 1096 window.utag_data["page_content_type"] = pageContentType; 1097 window.utag_data["be_beco"] = isBeco; 1098 window.utag_data["text_creator"] = textCreator; 1099 1100}); 1101 1102 1103window.addEventListener("orientationchange", function() { 1104 var btnLlamame = document.getElementById('teLlamamosBtn'); 1105 if (btnLlamame != null) { 1106 if (btnLlamame.classList.contains('device-is-mobile')) { 1107 btnLlamame.setAttribute('onclick', "validarTeLlamamos(this); callLlamameAPI(this, '${fromPagina}', '${idServicioPagina}', '${tipoVehiculo}', getClosestNameInput(this), '${nameEvento?lower_case}', '${urlTeLlamamos}', '${telfLineaDirecta}')"); 1108 btnLlamame.classList.remove('device-is-mobile'); 1109 btnLlamame.classList.add('device-is-non-mobile'); 1110 btnLlamame.classList.add('lda-disabled'); 1111 } else if (btnLlamame.classList.contains('device-is-non-mobile')) { 1112 btnLlamame.setAttribute('onclick', "window.location = '/te-llamamos-gratis.html?idServicio=' + '${idServicioPagina}' + '&from='+ '${fromPagina}' + '&indVehiculo=' + '${tipoVehiculo}'; sendEventAnalitica('Silo','C2C', analiticaGetPageName(), 'c2c')"); 1113 btnLlamame.classList.remove('device-is-non-mobile'); 1114 btnLlamame.classList.remove('lda-disabled'); 1115 btnLlamame.classList.add('device-is-mobile'); 1116 $("#lda-error-tlfn").css({"display": "none"}); 1117 } 1118 } 1119 1120}, false); 1121</script> 1122</#if> 1123 1124<#function getField field languageId defaultLanguageId xml> 1125 <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@field-reference='" + field + "']]"> 1126 <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@field-reference='" + field + "']]"> 1127 <#local selector = saxReaderUtil.createXPath(localeSelector)> 1128 <#local value = selector.selectSingleNode(xml)!> 1129 <#if value?has_content><#return value.getText()></#if> 1130 <#local selector = saxReaderUtil.createXPath(defaultSelector)> 1131 <#local value = selector.selectSingleNode(xml)!> 1132 <#if value?has_content><#return value.getText()></#if> 1133 <#return ""> 1134</#function> 1135 1136<#function parseXml xpath xml> 1137 <#local selector = saxReaderUtil.createXPath(xpath)> 1138 <#local result = selector.selectSingleNode(xml)!> 1139 <#if result?has_content><#return result.getStringValue()></#if> 1140 <#return ""> 1141</#function> 1142 1143 1144<style> 1145 .img-autor { 1146 border-radius: 4px; 1147 } 1148 .autor-verify { 1149 gap:0.25rem; 1150 } 1151 .description-autor { 1152 color: #1A1A1AA6 !important; 1153 } 1154 .container-autor-estimacion { 1155 flex-direction: column; 1156 } 1157 1158 #estimacionLectura { 1159 gap: 0.25rem; 1160 } 1161 1162 @media (min-width: 1440px) { 1163 .container-autor-estimacion { 1164 flex-direction: row; 1165 justify-content: space-between; 1166 } 1167 } 1168 1169 @media (max-width: 600px) { 1170 1171 #estimacionLectura svg { 1172 width: 20px; 1173 heigth: 20px; 1174 } 1175 } 1176 1177 1178</style> Te llamamos gratis
Te llamamos gratis
Te llamamos gratis