1/** 2 * @package Godoweb 3 * @author Godoweb https://www.godoweb.com 4 * @copyright Copyright (c) 2010 - 2023 godoweb 5 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later 6 */ 7/** 8 * Carga configuracion de la pagina local 9 */ 10 11 12window.addEventListener('DOMContentLoaded', function() { 13 "use strict"; 14 godo.globalDiv(); 15 godo.globalMeta(); 16 godo.insertScss(); // carga godoweb.scss dentro del master 17 godo.ClaseDispositivo(); 18////////////////////////////////////* FIN-ENTRADA */////////////////////////// 19 20/////////////////* Controla la falta de imagenes *//////////////////////////////// 21 const images = document.querySelectorAll('img'); 22 const imagen_por_defecto = '/images/logos/logo_grande_rectangulo_web.jpg' 23 images.forEach(img => { 24 img.addEventListener('error', () => { 25 img.src = imagen_por_defecto; 26 }); 27 }); 28/////////////////* Fin Controla la falta de imagenes *//////////////////////////////// 29 30 31/////////////////* Cambia featured por Destacat *//////////////////////////////// 32// Encuentra el elemento con la clase "featured-article-badge" 33const insigniaDestacada = document.querySelector('.featured-article-badge'); 34 35// Verifica si el elemento existe 36if (insigniaDestacada) { 37 // Cambia el contenido del texto a "Destacat" 38 insigniaDestacada.textContent = 'Destacat'; 39} 40/////////////////* Fin Cambia featured por Destacat *//////////////////////////////// 41 42 43 44 45 46//////////////////////////////////// iguala todas la cajas con la clase ".gd-igualar" 47const eleIgualar = document.querySelectorAll(".gd-igualar"); 48if(eleIgualar){ 49 //console.log(eleIgualar.length); 50 godo.igualarCaja(eleIgualar); 51} 52 53////////////////// Encuentra el elemento <dd> con la clase "category-name" 54var categoryElements = document.querySelectorAll('.category-name'); 55// Reemplaza el contenido del elemento eliminando "Category:" 56if (categoryElements) { 57 categoryElements.forEach(function(categoryElement) { 58 categoryElement.innerHTML = categoryElement.innerHTML.replace('Category:', ''); 59 }); 60} 61var timeElements = document.querySelectorAll('time'); 62// Reemplaza el contenido del elemento eliminando "Category:" 63if (timeElements) { 64 timeElements.forEach(function(timeElement) { 65 timeElement.innerHTML = timeElement.innerHTML.replace('Published: ', ''); 66 }); 67} 68 69//////////////// limpia en la presentacio de tags 70// Obtener todos los elementos con la clase '.tag-body' 71var elementosTagBody = document.querySelectorAll('.tag-body'); 72if (elementosTagBody) { 73 // Iterar sobre cada elemento y realizar el reemplazo 74 elementosTagBody.forEach(function(elemento) { 75 // Obtener el texto del elemento 76 var textoOriginal = elemento.innerText; 77 // Reemplazar saltos de lÃnea en el texto 78 var textoSinSaltos = textoOriginal.replace(/(\r\n|\n|\r)/gm, ""); 79 // Asignar el texto modificado de nuevo al elemento 80 elemento.innerText = textoSinSaltos; 81 }); 82} 83var elementosBlogBody = document.querySelectorAll('.gd-blog-introtext'); 84if (elementosBlogBody) { 85 // Iterar sobre cada elemento y realizar el reemplazo 86 elementosBlogBody.forEach(function(elemento) { 87 // Obtener el texto del elemento 88 var textoOriginal = elemento.innerText; 89 elemento.innerText = textoOriginal; 90 }); 91 } 92 93// ///////////////////// Cabecera tres articulos /////////////////////////// 94const cabecera = document.querySelector('.sp-module.gd-cabecera'); 95if(cabecera){ 96 // Obtener el contenedor principal 97 const cabecera = document.querySelector('.sp-module.gd-cabecera'); 98 const contenedorPrincipal = cabecera.querySelector('#gd-modulo-articulos-categoria.gd-modulo-articulos-categoria'); 99 const selectores = contenedorPrincipal.querySelectorAll('.com-content-category-blog__items.blog-item'); 100 // Crear el primer selector 101 const columna1 = document.createElement('div'); 102 columna1.classList.add('columna1'); // Añadir la clase "columna1" al nuevo selector 103 // Crear el segundo selector 104 const columna2 = document.createElement('div'); 105 columna2.classList.add('columna2'); // Añadir la clase "columna2" al nuevo selector 106 // Añadir los selectores al contenedor principal 107 contenedorPrincipal.appendChild(columna1); 108 contenedorPrincipal.appendChild(columna2); 109 columna1.appendChild(selectores[0]); 110 // Mover los otros dos selectores a 'columna2' 111 for (let i = 1; i < selectores.length; i++) { 112 columna2.appendChild(selectores[i]); 113 // Llamar a la función para realizar el movimiento 114 recolocaInfo(selectores[i]); 115 116 } 117 118 function recolocaInfo(selector) { 119 // Seleccionar el elemento con la clase ".gd-info-blog" 120 const infoBlog = selector.querySelector(".gd-info-blog"); 121 122 // Seleccionar el elemento con la clase ".article-intro-image" 123 const introImage = selector.querySelector(".article-intro-image"); 124 125 // Verificar si ambos elementos existen antes de realizar el movimiento 126 if (infoBlog && introImage) { 127 // Mover el elemento ".gd-info-blog" dentro de ".article-intro-image" 128 introImage.appendChild(infoBlog); 129 } 130 } 131 function alturasItems(){ 132 // Obtener el elemento ".sp-module.gd-cabecera" 133 const gdCabecera = document.querySelector('.columna1'); 134 // Obtener la altura de ".sp-module.gd-cabecera" 135 const alturaCabecera = gdCabecera.offsetHeight; 136 // Calcular la altura deseada para los elementos ".com-content-category-blog__items.blog-item" de la columna2 137 const alturaDeseada = Math.floor(alturaCabecera / 2) - 4; 138 // Obtener los elementos ".com-content-category-blog__items.blog-item" de la columna2 139 const elementosColumna2 = document.querySelectorAll('.columna2 .com-content-category-blog__items.blog-item'); 140 // Ajustar la altura de cada elemento según sea necesario 141 elementosColumna2.forEach((elemento) => { 142 const alturaelemento = elemento.offsetHeight; 143 const altura = alturaDeseada - alturaelemento; 144 if (altura > 0) { 145 elemento.style.height = `${alturaDeseada}px`; 146 }; 147 }) 148 } 149 const esunMovil = godo.esMovil();
150 if( esunMovil == false ){alturasItems();} 151} 152 153const existe = document.querySelector(".com-tags-tag.tag-category"); 154if (existe){ 155function reemplazarStrongPorEspacio(elementos) { 156 if (elementos) { 157 elementos.forEach(function(elemento) { 158 var contenidoHTML = elemento.innerHTML; 159 var contenidoModificado = contenidoHTML.replace(/<strong>/g, ' ').replace(/<\/strong>/g, ' '); 160 elemento.innerHTML = contenidoModificado; 161 }); 162 } 163} 164 165// Reemplazar en elementos con la clase 'ul.com-tags-tag__category.category.list-group' 166reemplazarStrongPorEspacio(document.querySelectorAll('ul.com-tags-tag__category.category.list-group')); 167 168// Reemplazar en elementos con la clase '.container-inner .row' 169reemplazarStrongPorEspacio(document.querySelectorAll('.container-inner .row')); 170 171// Reemplazar en elementos con la clase '.container' 172reemplazarStrongPorEspacio(document.querySelectorAll('.container')); 173 174// Reemplazar en elementos dentro del 'body' 175reemplazarStrongPorEspacio(document.querySelectorAll('body')); 176 177} 178 179 180const carruselFlax = document.querySelector('#carruselFlax'); 181if(carruselFlax){ 182 var carousel = new bootstrap.Carousel(carruselFlax, { 183 interval: 7000, // velocidad que cambia el slider 184 wrap: true 185 }) 186 const modulosArt = document.querySelectorAll('.sp-module.gd-flaxmodulo'); 187 const moduloArtItems = modulosArt[0].querySelectorAll('.mod-articlesnews__item'); // los elementos del modulo de articulos flax 188 modulosArt[0].style.display = 'none'; // escondo el origen 189 colocoFlaxItems(moduloArtItems); 190 191 192 193 function colocoFlaxItems(moduloArtItems){ 194 const itemsNewFlas = carruselFlax.querySelectorAll(".carousel-item"); // items del flax ahora hay 5 195 //var elAnchoSelector = (itemsNewFlas[0].getBoundingClientRect().width) - 45; 196 var articulo =""; 197 var News = ""; 198 moduloArtItems.forEach(function (item,index) { 199 articulo = item.querySelector('.newsflash-title').innerHTML; 200 News = itemsNewFlas[index]; 201 // News.style.maxWidth = elAnchoSelector + 'px'; 202 News.innerHTML = articulo; 203 }) 204 205 } 206} 207 208 209// logo cuando desaparece el superio 210// Define las funciones ponlogo y quitalogo 211// Función para añadir el logo 212function agregarLogo() { 213 const contenedor = document.querySelector('#sp-header div.container'); 214 if(contenedor){ 215 const logo = document.createElement('div'); 216 logo.id = 'gd-logo-stic'; 217 logo.innerHTML = '<img src="/images/logos/logo.jpg" loading="lazy" width="150" height="14" data-path="local-images:/logos/logo.jpg"/>'; 218 219 // Inserta el logo como el primer hijo del contenedor 220 contenedor.prepend(logo); 221 } 222 223} 224 225// Función para eliminar el logo 226function eliminarLogo() { 227 const logo = document.querySelector('#gd-logo-stic'); 228 if(logo){ 229 logo.remove(); 230 } 231} 232 // Observa los cambios en la clase de la barra 233 const observer = new MutationObserver(function(mutations) { 234 mutations.forEach(function(mutation) { 235 if (mutation.attributeName === "class") { 236 var attributeValue = $(mutation.target).prop(mutation.attributeName); 237 if (attributeValue.includes("header-sticky")) { 238 agregarLogo(); 239 } else { 240 eliminarLogo(); 241 } 242 } 243 }); 244 }); 245 246 // Verifica si el elemento con ID #sp-header existe 247 const targetNode = document.querySelector('#sp-header'); 248 if (targetNode) { 249 // Inicia la observación 250 observer.observe(targetNode, { 251 attributes: true 252 }); 253 } else { 254 console.error('El nodo objetivo con ID "sp-header" no se encontró.'); 255 } 256 257 ///////////////////////retirar cla clase gd-node para poder ver flax 258 window.addEventListener('load', function() { var section = document.getElementById('sp-flax'); if (section) { section.classList.remove('gd-no'); } }); 259 260 // 261 262 263 264 265 266 267 268 269}); 270 271 272 273 274 275 276
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.