MedyaViki:Common.js

Un artíkolo de la Vikipedya, la ansiklopedya líbera

Nota: Antes de publikar, tal ves nesesites aktualisar la caché de su navegador para ver los nuevos trokamientos.

  • Firefox / Safari: Mantenga presionada la tekla Shift mientras pulsa el botón Reload, o presione Ctrl-F5 o Ctrl-R (⌘-R en Mac)
  • Google Chrome: Presione Ctrl-Shift-R (⌘-Shift-R en Mac)
  • Internet Explorer / Edge: Mantenga presionada la tekla Ctrl mientras pulsa el botón Refresh, o presione Ctrl-F5
  • Opera: Presione Ctrl-F5.
/* Kualunke kodd de JavaScript escrito aquí se va cargar para todos los usadores en cada carga de hoja. */

/*</nowiki></pre>
-------------------------------------
TROCAMIENTO DE CSS O JS EN UNAS HOJAS
-------------------------------------

Traído de Uncyclopedia

Instrucciones para ajustar a una hoja un CSS o JS específico: 

Ajusta a la lista venidera la hoja que se debe trocar comillas incluidas:
<code><nowiki>"<Nombre del espacio>:<Nombre hoja>": "<Nombre skin>",</nowiki></code>

<big>'''Atansyón:  LAS ÚLTIMAS DE LA LISTAS NO TIENEN COMA AL FINAL'''</big>

*'''<Nombre del espacio>:<Nombre hoja>''': Es el nombre completo de la hoja SIN sustituir los espacios por caracteres de subrayado.
*'''<Nombre skin>''': Se trata del nombre una dosya MediaWiki:Skin/<Nombre skin> que contiene es CSS o el JS dependiendo del arraycon las modificaciones. En caso de ser vazío ("") entoncés <Nombre skin> = <Nombre del espacio>:<Nombre hoja>
*No es para usar en las hojas de usador ni en cada hoja de Inciclopedia. Sólo para casos eksepsionales.

Si no egziste <code><nowiki>MediaWiki:Skin/<Nombre skin>.css</nowiki></code> (o js) sólo crialó i trócalo.
<pre><nowiki>*/
SkinPersonalidadas = {

/*   EL ÚLTIMO NO LLEVA COMA AL FINAL  */
};

JSPersonalidados = {
    "La Primera Hoja": "",
    "Créditos": "Créditos.js",
    "Marihuana": "Marihuana.js"

/*   EL ÚLTIMO NO LLEVA COMA AL FINAL  */
};

var re = RegExp("(.*) - Inciclopedia");
var matches = re.exec(document.title);
var skinName;

if (matches) {
    if (SkinPersonalidadas[matches[1]] != undefined) {
        skinName = (SkinPersonalidadas[matches[1]].length > 0) ? SkinPersonalidadas[matches[1]] : matches[1] +
                   '.css';
        document.write('<style type="text/css">/*<![CDATA[*/ @import "/index.php?title=MediaWiki:Skin/' +
                        skinName + '&action=raw&ctype=text/css"; /*]]>*/</style>');
    }

    if (JSPersonalidados[matches[1]] != undefined) {
        skinName = (JSPersonalidados[matches[1]].length > 0) ? JSPersonalidados[matches[1]] : matches[1] + 
                   '.js';
        document.write('<'+'script src="http://inciclopedia.wikia.com/index.php?' 
                       +  'title=MediaWiki:Skin/' + skinName
                       +  '&action=raw&ctype=text/javascript&dontcountme=s' 
                       +  '"><'+'/script>');        
    }
}

/*</nowiki></pre>
-----------------------------------------
KODD PARA PLEGADO/DESPLEGADO DE BLOQUES
-----------------------------------------
Traido de [[wikipedia:es:mediwiki:common.js]].

Modificado de la parte de Chixpy en [[w:c:videojuego:mediawiki:monobook.js]]
  para su correcto funcionamiento en Vikia.

Xabblones que hazen uso de este kodd: [[xabblón:Desplegable]]

Prerequisitos:

NavigationBarShowDefault : Si ay más de este número de desplegables
  ocultar todas otomatica mente.
<pre><nowiki>*/

var NavigationBarHide = '[Ocultar]';
var NavigationBarShow = '[Mostrar]';

function toggleNavigationBar(indexNavigationBar)
{
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

    if (!NavFrame || !NavToggle) {
        return false;
    }

    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavToggle') {
                NavChild.firstChild.data = NavigationBarShow;
            }
        }

    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavToggle') {
                NavChild.firstChild.data = NavigationBarHide;
            }
        }
    }
}

 // adds show/hide-button to navigation bars
 function createNavigationBarToggleButton()
 {
    var indexNavigationBar = 0;
    // iterate over all <div>-elements
    for(
            var i=0; 
            NavFrame = document.getElementsByTagName("div")[i]; 
            i++
        ) {
        // if found a navigation bar
        if (NavFrame.className == "NavFrame") {

            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');

            var NavToggleText = document.createTextNode( NavigationBarShow );
            NavToggle.appendChild(NavToggleText);

            // add NavToggle-Button as first div-element 
            // in <div class="NavFrame">
            NavFrame.insertBefore(
                NavToggle,
                NavFrame.firstChild
            );
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }

    //Plegamos todas....
        for(
                var i=1; 
                i<=indexNavigationBar; 
                i++
        ) {
            toggleNavigationBar(i);
            toggleNavigationBar(i);
        }   
 }

$(createNavigationBarToggleButton);

/* </nowiki></pre>
-------------------------------------------------------------------------------
                    REDEFINICIONES DE COMPORTAMIENTO
-------------------------------------------------------------------------------

-------------------------------------
REDEFINICION DEL BOTÓN "SUBIR IMAGEN"
-------------------------------------
Añadido por: [[User:chixpy|Chixpy]] en Inciclopedia

Aquí hago una redifición de la función llamada por el enlace subir imagen que hay en la barra de herramientas.

En vez de usar [[special:MiniUpload]] llama a [[special:upload]]
<pre><nowiki>*/

function specialImageUpload(tagOpen, tagClose, sampleText)
{
   // Hack: We need to know whether or not a user is logged in
   // before they can upload a file.  Therefore, to know whether or not
   // they are logged in, we can look for the "watch this" checkbox on
   // the edit page since this only appears when the user is logged in to
   // the site.  If they are not logged in, we display a message and prompt
   // to ask if they would like to log in now.  If they are logged in, we
   // open up the image upload popup window, and allow them to upload.

    // if user is not logged in
    if ( document.getElementById('wpWatchthis') == null )
      loginBeforeUpload();
    else
    {
    	var re = /http:\/\/([^\/]*)\//g;
    	var matches = re.exec(window.location.href);
    	if ( !matches ) {
		// TAH: firefox bug: have to do it twice for it to work
		matches = re.exec(window.location.href);
	}
	var domain = matches[1];

	//alert("logged in, let's open the image uploader popup: " + domain);

	if (imageUploadDialog && imageUploadDialog.open && !imageUploadDialog.closed)
	  imageUploadDialog.close();

    	imageUploadDialog = window.open("http://" + domain + "/wiki/Special:Upload",
          "upload_file",
          "toolbar=no,location=no,top=0,left=0,menubar=0,scrollbars=yes,width=800"); 
    }
}

/*</nowiki></pre>
-----------------------------------------
MOSTRANDO BOTÓN DESHACER PARA REGISTRADOS
-----------------------------------------
Como ocultamos el botón deshacer a las IP, hay que volverlos a hacer aparecer.
<pre><nowiki>*/

$ ( function(){
  if (mw.config.get('wgUserName')){
    // Mostramos botón deshacer de las hojas de comparación
    deshacer = document.getElementById("mw-diff-ntitle1");
    if (deshacer){
      deshacer.getElementsByTagName("a")[2].style.display = 'inline';
    }
  }
}
)

/** Interwiki links to featured articles ***************************************
 *
 *  Description: Highlights interwiki links to featured articles (or
 *               equivalents) by changing the bullet before the interwiki link
 *               into a star.
 *  Maintainers: [[en:User:R. Koot]]
 */
 
function LinkFA() 
{
    if ( document.getElementById( "p-lang" ) ) {
        var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
 
        for ( var i = 0; i < InterwikiLinks.length; i++ ) {
            if ( document.getElementById( InterwikiLinks[i].className + "-fa" ) && InterwikiLinks[i].className.indexOf( "badge-featuredarticle" ) === -1 ) {
                InterwikiLinks[i].className += " FA"
                InterwikiLinks[i].title = "This is a featured article in another language.";
            }
        }
    }
}
 
$( LinkFA );

/**
 * Main Page layout fixes
 *
 * Description: Adds an additional link to the complete list of languages available.
 * Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
 */
if ( mw.config.get( 'wgPageName' ) === 'La_Primera_Hoja' || mw.config.get( 'wgPageName' ) === 'Diskusyón:La_Primera_Hoja' || mw.config.get( 'wgPageName' ) === 'La_Primera_Oja' || mw.config.get( 'wgPageName' ) === 'La_Primera_Oja_(OF)' || mw.config.get( 'wgPageName' ) === 'La_Primera_Oja_(OT)' || mw.config.get( 'wgPageName' ) === 'לה_פרימירה_אוזֿה' ) {
    $( function () {
        mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',
            'Todas las linguas', 'interwiki-completelist', 'La lista entera de las Vikipedyas' );
    } );
}