/** *@file modalIdiomas.js *@date 08/03/2024 *@author Cristina Caba García (cristinacaba1983@gmail.com) **/ function ModalIdiomas() { this.iu = new Iu(); this.ajax = new Ajax(BASE_URL); this.linkAlternate = new Array(); this.cargarModal = false; this.codIdiomaNavegador = null; this.cookies = null; this.miCookie = null; // Funciones de clase, éstas deben de estar en todos los js this.iniciar = function() { this.miCookie = null; //Cogemos si tenemos que cargar o no el modal this.cargarModal = "1"; //Cogemos el idioma del navegador this.codIdiomaNavegador = ""; //Busca los elementos link con el atributo rel="alternate" this.linkAlternate = document.querySelectorAll('link[rel="alternate"]'); //Mostramos el modal de idiomas o no if(this.cargarModal == 1 && this.cogerCookie('modalIdiomasAceptado') != "SI") { this.insertarCookie('modalIdiomasAceptado',"SI"); $("#idiomasModal").modal('show'); } } // Funciones de trabajo. this.cogerCookie = function(name) { /** -Función para obtener una cookie @param name, nombre de la cookie que queremos. **/ //Inicializamos variables var coo = null; var partesCookies = document.cookie.split(';'); for(var i = 0; i < partesCookies.length; i++) { coo = partesCookies[i].trim(); if(coo.startsWith(name + '=')) { this.miCookie = coo.substring(name.length + 1); } } return this.miCookie; } this.redirigir = function() { /**- Función que redirige la web a su enlace alternativo en función del idioma del navegador del usuario. **/ $.each(this.linkAlternate,function(index,value){ var idioma = value.hreflang; var codigoIdioma = idioma.substr(0,2); if(codigoIdioma == modalIdiomas.codIdiomaNavegador) { window.location.href = value.href; } }); } this.insertarCookie = function(name,value) { /** -Función para establecer una cookie @param value, valor de la cookie. **/ const date = new Date(); date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000)); // días a milisegundos const expires = "expires=" + date.toUTCString(); document.cookie = `${name}=${value}; ${expires}; path=/`; } } var modalIdiomas = new ModalIdiomas(); $(document).ready(function() { modalIdiomas.iniciar(); $("#aceptarRedirigirIdioma").click(function(){ modalIdiomas.redirigir(); }); $("#cancelarRedirigirIdioma").click(function(){ $("#idiomasModal").modal("hide"); }); });