Usuario:Chixpy/WSS1/inicializar.js

De Inciclopedia
Ir a la navegación Ir a la búsqueda

Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
  • Opera: Presiona Ctrl+F5.
// Basada en la versión de Axxgreazz para el MonoBook-Suie de WP-es
//   http://es.wikipedia.org/wiki/Usuario:Axxgreazz/Monobook-Suite
// Y basado en http://en.wikipedia.org/wiki/User:Topaz/Wikiscripts

// Modificada por User:Chixpy


// Cutreapaño para gente que usa NoScript
if(typeof quantserve != 'function') {
  function quantserve()
  {
    return false;
  }
} 


//Módulo que inicializa algunas variables usadas por otros módulos, así como algunas
// variables genérica.

var WSS = new Object();

// ---------------------------------------------------------------------------

// Funciones Principales del WSS

WSS.FP ={  
  // WSS.FP.ObtenerElemento (identificador, nowarning)
  // Busca el elemento que tenga ese <identificador> 
  // nowarning = true -> no muestra el error (por ejemplo si se usa para comprobar la existencia del elemento)
  ObtenerElemento : function (identificador, nowarning)
  {
    var elemento = document.getElementById ? document.getElementById(identificador) : document.all[identificador];
    if (!elemento && !nowarning) {
      var Error = WSS.FP.AnadirHijo(document.body, "div");
      Error.innerHTML = "<p>WSS1: ¡OOOPPPSSS! No se ha encontrado el identificador: " + identificador + "</p>";
    }
    return elemento
  },

  // WSS.FP.AnadirHijo (padre, tipo, atributos)
  // Crea un elemento <tipo> (p.e., "div") con unos <atributos>
  //   (p.e., className:"clase", id: "nombre") y lo pone como hijo del
  //   elemento <padre>
  // Además devuelve el elemento recién creado
  AnadirHijo : function(padre, tipo, atributos)
  {
    var elemento = document.createElement(tipo);
    if (atributos)
    {
      for (key in atributos) { elemento[key] = atributos[key] }
    }

    if (!padre) {
      padre = WSS.FP.AnadirHijo(document.body, "div");
      padre.innerHTML = "<p>WSS1: ¡OOOPPPSSS! No se ha encontrado el padre para poder añadir: " + tipo + "</p>";      
    }
    return padre.appendChild(elemento);
  },

  // WSS.FP.AnadirAntes (padre, elemento0, tipo, atributos)
  // Crea un elemento <tipo> (p.e., "div") con unos <atributos>
  //   (p.e., className:"clase", id: "nombre") y lo coloca antes del elemento
  //   <elemento0> que se encuentra dentro de <padre>
  // Además devuelve el elemento recién creado
  AnadirAntes : function(padre, elemento0, tipo, atributos)
  {
    var elemento = document.createElement(tipo);
    if (atributos)
    {
      for (key in atributos) { elemento[key] = atributos[key]; }
    }

    if (!padre) {
      padre = WSS.FP.AnadirHijo(document.body, "div");
      padre.innerHTML = "<p>WSS1: ¡OOOPPPSSS! No se ha encontrado el padre para poder añadir: " + tipo+ "</p>";      
    }

    if (!elemento0) {
      padre.innerHTML = "<p>WSS1: ¡OOOPPPSSS! No se ha encontrado el elemento0 para poder añadir: " + tipo+ "</p>";      
      elemento0 = WSS.FP.AnadirHijo(padre, "div");
    }

    return padre.insertBefore(elemento, elemento0);
  },

  // WSS.FP.AnadirCeldaTabla (tabla, NColumnas)
  // Añade una celda a una tabla
  // Se se sobrepasa el número de columnas crea una nueva fila.
  // 
  AnadirCeldaTabla : function(tabla, NColumnas){
    var celda = null;
    var fila = tabla.getElementsByTagName("tr");

    // Obtenemos la última fila
    if (fila.length == 0) {
      fila = WSS.FP.AnadirHijo(tabla, "tr");
    } else {
      fila = fila[fila.length - 1];
    };

    // Si la fila ya está completa, creamos otra
    if (fila.childNodes.length >= NColumnas) {
      fila = WSS.FP.AnadirHijo (tabla, "tr");      
    }; 
    return WSS.FP.AnadirHijo (fila , "td");
  },

  // WSS.FP.IncluirConfiguracion (archivo, IncGlobal, IncLocal, IncGlobalUsuario)
  // Incluye una serie de páginas con JavaScript de configuración en el siguiente
  //   orden:
  // Todas aquellas cosas modificables se cargan en el siguiente orden:
  //   1.- Wikia:Inciclopedia:User:Chixpy/WWS1/<pagina>-global.js
  //   2.- <EsaWiki>:User:Chixpy/WWS1/<pagina>-local.js
  //   3.- Wikia:Inciclopedia:User:<usuario>/WWS1/<pagina>-g.js
  //   4.- <EsaWiki>:User:<usuario>/WWS1/<pagina>.js
  // Parámetros
  //   archivo - Nombre de la página de configuración (sin ".js")
  //   IncGlobal - ¿Incluir configuración global?
  //   IncLocal- ¿Incluir configuración local?
  //   IncGlobalUsuario - ¿Incluir configuración global del usuario?
  IncluirConfiguracion : function (archivo, IncGlobal, IncLocal, IncGlobalUsuario)
  {
    if (IncGlobal == true) {
      WSSIncluir ("", "", archivo + "-global.js");
    };
    if (IncLocal== true) { 
       WSSIncluir (wgServer + wgScriptPath, "", archivo + "-local.js");
    };
    if (IncGlobalUsuario == true) { 
      WSSIncluir ("", wgUserName + "/WSS1", archivo + "-g.js");
    };
    WSSIncluir (wgServer + wgScriptPath, wgUserName + "/WSS1", archivo + ".js");
  }
}

// Es un coñazo que capturen los errores del common.js
if (window._customJSerror) {
  var Error = WSS.FP.AnadirHijo(document.body, "div");
  Error.innerHTML = "<p>WSS1: Se ha capturado la siguiente excepción: " + window._customJSerror + "</p>";      
}