User:Chixpy/WSS1/barrabotones.js

// // 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

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

// 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; };

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 = " ";}; 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;}

// Apaño para que funcione en Wikia porque: ... 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 += ''; if (imagen != '') {       boton += ''; }     else {       boton += '' + texto + ' '; }     boton += ""; }   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)