Usuario:Chixpy/WSS1/menusmw.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

// Modificada por User:Chixpy

// Usa "inicializar.js"

// Evitemos su carga duplicada
if (!WSS.Menu){

WSS.Menu = {
  // Funciones para usar con la carga automática de menús
  // ----------------------------------------------------	

  // WSS.Menu.AnadirMenu (identificador, nombre)
  // Añade un menu nuevo (un menú tipo "navegación" o "herramientas")
  AnadirMenu : function(identificador, nombre)
  {
    WSS.Menu.WSSMenus[WSS.Menu.WSSMenus.length] = {"menu": identificador, "url": "",
      "nombre": nombre};
  },

  // WSS.Menu.AnadirOpcionMenu (menu, dirección, nombre)
  AnadirOpcionMenu : function(menu, dirección, nombre)
  {
    WSS.Menu.WSSMenus[WSS.Menu.WSSMenus.length] = {"menu": menu, "url": dirección,
      "nombre": nombre};
  },	
	
  // Funciones internas para llamar desde otros módulos
  // --------------------------------------------------
  // WSS.Menu.CrearMenu (identificador, nombre)
  // Crea la estructura correspondiente al menú y devuelve el lugar dónde se añaden las opciones
  //   (Normalmente el <ul> o la tabla)
  CrearMenu : function(identificador, nombre)
  {
    if ((identificador == "") || !identificador) {return;}
    if (WSS.FP.ObtenerElemento(identificador, true)) {return;}

    var NuevoMenu = null;
 
    switch (skin)
    {
      // MONACO
      case 'monaco':
        NuevoMenu = WSS.FP.AnadirHijo( WSS.FP.ObtenerElemento("navigation_widget"),
          "div", {className:"widget"}
        );
        NuevoMenu.style.fontSize = "smaller";
        NuevoMenu.cellSpacing="5";
        WSS.FP.AnadirHijo(NuevoMenu, "h5").innerHTML = nombre;
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "table", {id: identificador, width: "100%"});
      break;

      // ANSWERS
      case 'answers':
        NuevoMenu = WSS.FP.AnadirHijo( WSS.FP.ObtenerElemento("toolbox"),
          "div", {className:"portlet"}
        );
        NuevoMenu.style.fontSize = "smaller";
        NuevoMenu.cellSpacing="5";
        WSS.FP.AnadirHijo(NuevoMenu, "h5").innerHTML = nombre;
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "table", {id: identificador, width: "100%"});
      break;

      // VECTOR
      case 'vector':
        NuevoMenu = WSS.FP.AnadirHijo( WSS.FP.ObtenerElemento("mw-panel"),
          "div", {className:"portal"}
        );
        WSS.FP.AnadirHijo(NuevoMenu, "h5").innerHTML = nombre;
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "div", {className:"body"});
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "ul", {id: identificador});
      break;

      // OASIS / WIKIA / O COMO SE LE PONGA EN PUNTA
      case 'oasis':
      case 'wikia':
/* Barra flotante de wikia...*/
        NuevoMenu = getElementsByClass("toolbar", document.body, "div")[0];
        NuevoMenu = getElementsByClass("tools", NuevoMenu , "ul")[0];
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "li", {class: "mytools"});
        WSS.FP.AnadirHijo(NuevoMenu, "img", {class: "mytools-icon",
          src:"http://images1.wikia.nocookie.net/__cb29781/common/skins/common/blank.gif"});
        WSS.FP.AnadirHijo(NuevoMenu, "a", {href:"#", innerHTML: nombre});        
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "ul", {id: identificador, class: "my-tools-menu"});

/* En la barra lateral...
        NuevoMenu = WSS.FP.ObtenerElemento("WikiaRail");
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "section")
        WSS.FP.AnadirHijo(NuevoMenu, "h1").innerHTML = nombre;
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "table", {id: identificador, width: "100%"});
*/
      break;

      // MONOBOOK / MYSKIN / OTRAS
      default:
        NuevoMenu = WSS.FP.AnadirHijo(WSS.FP.ObtenerElemento("column-one"),
          "div", {className:"portlet"});
        WSS.FP.AnadirHijo(NuevoMenu, "h5").innerHTML = nombre;
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "div", {className:"pBody"})
        NuevoMenu = WSS.FP.AnadirHijo(NuevoMenu, "ul", {id:identificador});
    }

    return NuevoMenu;
  },

  // WSS.Menu.CrearOpcionMenu (menu, dirección, nombre)
  // Devuelve la nueva opción creada
  CrearOpcionMenu : function(menu, dirección, nombre)
  {
    var Opcion = WSS.FP.ObtenerElemento(menu);
    if (!Opcion) {Opcion = WSS.Menu.CrearMenu(menu, menu)};

    switch (skin)
    {
      case 'monaco':
        Opcion = WSS.FP.AnadirCeldaTabla(Opcion, 2)
      break;
      case 'answers':
        Opcion = WSS.FP.AnadirCeldaTabla(Opcion, 3)
      case 'wikia':
      case 'oasis':
        Opcion = WSS.FP.AnadirHijo(Opcion, "li", {class: "mytools"});
      break;
      default:
        Opcion = WSS.FP.AnadirHijo(Opcion, "li");
    }

    with(WSS.FP.AnadirHijo(Opcion, "a"))
    {
      innerHTML = nombre;
      href = dirección;
    }
    return Opcion;
  },

  // Carga automática de menus
  // -------------------------

  // WSS.Menu.CargarMenu
  // Funcion que cargar los menús.
  CargarMenu : function()
  {
    if (WSS.Menu.Cargar == false) {return;};

    for (i = 0; i < WSS.Menu.WSSMenus.length; i++)
    {
      if (WSS.Menu.WSSMenus[i].url == ""){        
        WSS.Menu.CrearMenu (WSS.Menu.WSSMenus[i].menu, WSS.Menu.WSSMenus[i].nombre);
      }
      else
      {
        WSS.Menu.CrearOpcionMenu (WSS.Menu.WSSMenus[i].menu,
          WSS.Menu.WSSMenus[i].url, WSS.Menu.WSSMenus[i].nombre);
      };
    };
  },

  WSSMenus : [],
  Cargar : true,    // Cargar módulo de menús
  Globales : true,  // Cargar menús globales
  Locales : true,   // Cargar menús locales
  Usuario : true    // Cargar menús globales de usuario

  // Nota: Los menús locales de usuario siempre se cargan cuando está activo  
};

WSS.FP.IncluirConfiguracion ("menus", WSS.Menu.Globales, WSS.Menu.Locales,
    WSS.Menu.Usuario);

addOnloadHook(WSS.Menu.CargarMenu, false);

} //if (!WSS.Menu)