Usuario:Chixpy/WSS1/barrabotones.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.
// <pre><nowiki>
// 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

// Desactivamos botones por defecto (Así no los carga primero)
// TODO: Habría que discriminar cual es la función a quitar dependiendo de la skin
//  o vaciar el array...
function addButton() {
  return;
};

function mwInsertEditButton(){
  return;
};

// Meh, por si lo anterior no funciona
if (typeof(mwCustomEditButtons) != 'undefined') {mwCustomEditButtons = {};};

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

WSS.Barra = {
  // Funciones para usar con la carga automática de botones
  // ------------------------------------------------------
  
  // WSS.Barra.AnadirBarra (identificador)
  // Añade una barra nueva de botones
  AnadirBarra : function(identificador)
  {
   if (!identificador || (identificador == "")) {identificador = "toolbar"};
   WSS.Barra.Botones[WSS.Barra.Botones.length] = {"barra": identificador,
     "nombre": "", "imagen": "", "funcion": ""};
  },

  // WSS.Barra.AnadirBotonBarra (barra, imagen, nombre, funcion)
  // Añade un botón a la barra especificada
  AnadirBotonBarra : function(barra, nombre, imagen, funcion)
  {
   if (!barra || (barra == "")) {barra = "toolbar"};
   if (!nombre || (nombre == "")) {nombre = "&nbsp;";};
   if (!imagen) {imagen == "";};
   if (!funcion) {funcion == "";};

    WSS.Barra.Botones[WSS.Barra.Botones.length] = {"barra": barra, "nombre": nombre,
      "imagen": imagen, "funcion": funcion};
  },

  // Funciones internas para poder usar desde otros módulos
  // ------------------------------------------------------

  // WSS.Barra.CrearBarra (identificador)
  CrearBarra : function(identificador)
  {
    if ((identificador == "") || !identificador) {return;}

    // Si ya existe, ¡¡out!!
    if (WSS.FP.ObtenerElemento(identificador, true)) {return;}

    // Exclusivo de Wikia: <editform>...<SinID><wpTextbox1></wpTextbox1></SinID></editform>
    return WSS.FP.AnadirAntes (
      WSS.FP.ObtenerElemento("wpTextbox1").parentNode,
      WSS.FP.ObtenerElemento("wpTextbox1"),
      "div",
      {id: identificador});         
  },

  // WSS.Barra.CrearBotonBarra (barra, imagen, funcion, texto)
  // Método cutre sin usar DOM :-P
  CrearBotonBarra : function(barra, imagen, funcion, texto)
  {
    var boton = '';
    if (funcion != '')
    {
      boton += '<a href="javascript:' + funcion + '">';
      if (imagen != '')
      {
        boton += '<img width="23" height="22" src="' + imagen +
          '" border="0" alt="' + texto + '" title="' + texto + '"/>';
      }
      else
      {
        boton += '<span style="background:#ddd; border:outset #ddd 1px; ' +
          'padding: 0 .25em;">' + texto + '</span>';
      }
      boton += "</a>";      
    }
    else
    {
      boton += texto;
    }
    
    var barrabotones = WSS.FP.ObtenerElemento(barra);
    if (!barrabotones) {barrabotones = WSS.Barra.CrearBarra (barra); };
    barrabotones.innerHTML += boton;

    // return boton; //Como esta hecho a mano no devuelvo el botón...
  },

  // Carga automática de botones
  // ---------------------------

  // WSS.Barra.CargarBarra
  // Funcion que carga las barras de herramientas
  CargarBarra: function()
  {
    if (WSS.Barra.Cargar == false) {return;};

    // Si no hay caja de edición, no hay botones
    if (!WSS.FP.ObtenerElemento("wpTextbox1", true)) {return;}

    // Nos aseguramos que borramos todos los botones por defecto de verdad
    if (WSS.FP.ObtenerElemento("toolbar", true))
    {
      WSS.FP.ObtenerElemento("toolbar").innerHTML = "";
    }

    for (i = 0; i < WSS.Barra.Botones.length; i++)
    {
      if (!WSS.Barra.Botones[i].nombre) {WSS.Barra.Botones[i].nombre = "";};
      if (!WSS.Barra.Botones[i].funcion) {WSS.Barra.Botones[i].funcion = "";};

      if ((WSS.Barra.Botones[i].nombre == "") &&
        (WSS.Barra.Botones[i].funcion == ""))
      {
        WSS.Barra.CrearBarra (WSS.Barra.Botones[i].barra);
      }
      else
      {
        WSS.Barra.CrearBotonBarra (WSS.Barra.Botones[i].barra,
          WSS.Barra.Botones[i].imagen, WSS.Barra.Botones[i].funcion,
          WSS.Barra.Botones[i].nombre)
      }
    }
  },

  Botones : [],
  Cargar : true,    /* Cargar módulo de botones*/
  Globales : true,  /* Cargar botones globales */
  Locales : true,   /* Cargar botones locales  */
  Usuario : true,   /* Cargar botones globales de usuario*/  

  // Directorio donde se encuentran los botones del Mediwiki
  DirBotonComun : wgServer + stylepath + "/common/images/",

  // Directorio base de los botones alojados en algún repositorio común
  // (por ejemplo central de Wikia o si se usa en WP (que lo dudo) pues el common)
  DirBotonRep : '',

  // Directorio base de las imágenes alojados en la wiki base donde está el WWS.
  DirBotonBase : '',

  // Directorio base de las imágenes locales para botones
  DirBotonBaseLocal : '',

  // Variables usadas por funciones-globales
  // ¿Habría que sacar estas variables de aquí y ponerlas en otro lado?
  FirmaPlantilla : false,
  EstiloTabla : ''
}


WSS.FP.IncluirConfiguracion ("funcionesbotones", true, true, true);
WSS.FP.IncluirConfiguracion ("botones", WSS.Barra.Globales ,
  WSS.Barra.Locales, WSS.Barra.Usuario );

addOnloadHook(WSS.Barra.CargarBarra, false);

} //if (!WSS.Barra)