MediaWiki:Common.js

Un article de la désencyclopédie.
Aller à la navigation Aller à la recherche

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/* Any JavaScript here will be loaded for all users on every page load. */

/** 
* UTIL
*/
function getElementsByClassName(node, classname)
{
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

/**
* Ajouter une nouvelle fonction a excuter au chargement de la page.
*/ 
function desen_addLoadEvent(func) 
{
  if (window.addEventListener) 
    window.addEventListener("load", func, false);
  else if (window.attachEvent) 
    window.attachEvent("onload", func);
}


// ============================================================
// BEGIN Dynamic Navigation Bars
 
// set up the words in your language
var NavigationBarHide = 'Enrouler';
var NavigationBarShow = 'Dérouler';
 
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
var NavigationBarShowDefault = 0;
 
 
// shows and hides content and picture (if available) of navigation bars
 
function toggleNavigationBar(navigationBarID)
{
    var NavFrame = document.getElementById(navigationBarID);
 
    if (!NavFrame) return false;
 
    
    var NavToggles = NavFrame.getElementsByTagName("a");
    var NavToggle;
 
    for ( var i = 0; i < NavToggles.length; ++i)
    {
      if (NavToggles.item(i).className == "NavToggle")
      {
        NavToggle = NavToggles.item(i); break;
      }
    }
    if (!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.className == 'poll') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavToggle') {
                NavChild.firstChild.data = ( NavFrame.className == 'adminpoll' ? gStandardPollHeader : NavigationBarShow );
            }
        }
 
    // if hidden now
    } else {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavContent' || NavChild.className == 'poll') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavToggle') {
                NavChild.firstChild.data = NavigationBarHide;
            }
        }
    }

    /********Changement de couleur du bouton pour la boîte série*********/
    if( document.getElementById( 'navTogWhite' ) ){
        var togWhite = document.getElementsByClassName('NavToggle');
        for (var b = 0; b < togWhite.length; b++) {
            togWhite[b].style.color = "white";
        }
    }
}
 
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
    var indexNavigationBar = 0;
    var bodyContent = document.getElementById("bodyContent");
    if (!bodyContent) return;
    var divs = bodyContent.getElementsByTagName("div");
    for( var i=0; i < divs.length; i++ ) {

        var NavFrame = divs.item(i);
        if (NavFrame.className == "NavFrame" || ( NavFrame.className == "poll" && NavFrame.innerHTML.indexOf(gStandardPollQuestionStart) != -1 ) ) {
 
            if (NavFrame.className == "poll")
            {
              NavFrame = NavFrame.parentNode;
              NavFrame.className = "adminpoll";
            }
            var navFrameId = NavFrame.getAttribute("id") || "NavFrame" + (++indexNavigationBar);
 
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute("href", "javascript:toggleNavigationBar(\"" + navFrameId + "\")");
 
            var NavToggleText = document.createTextNode(NavigationBarHide);
            NavToggle.appendChild(NavToggleText);

            NavFrame.insertBefore( NavToggle, NavFrame.firstChild );
            NavFrame.setAttribute('id', navFrameId);
 
            toggleNavigationBar(navFrameId);
 
        }
    }
}
 
desen_addLoadEvent(createNavigationBarToggleButton);
 
// END Dynamic Navigation Bars
// ============================================================


 
//============================================================
// 
// VBO
// 
//============================================================
 
var wgTitle, wgCanonicalNamespace;

function addPollHandler()
{
var textarea = document.getElementById('wpTextbox1');

if (!textarea || textarea.value.indexOf("{" + "{" + "VBO" + "}" + "}") != -1 || textarea.value.indexOf("{" + "{" + "BO" + "}" + "}") != -1 || textarea.value.length < 4000 || textarea.value.indexOf("__NOVBO__") != -1) return true;

textarea.value = textarea.value + "\n\n{" + "{" + "VBO" + "}" + "}"   +   "\n\n";
return true;
}
 
 
function addPollToSave()
{
if (wgCanonicalNamespace != "" && wgCanonicalNamespace != "Désinformation") return;
 
var save = document.getElementById("wpSave");
var editform = document.forms['editform'];
var textarea = document.getElementById('wpTextbox1');
 
if (save && editform && (!editform.elements["wpSection"] || !editform.elements["wpSection"].value))
{

   // Add poll when clicking the save button.
   save.onclick = addPollHandler;

  }
}
 
desen_addLoadEvent(addPollToSave);

/*
   Gestion de scripts dans des pages protégées.
*/

function execPageScripts()
{
/* Attention !!! Avant d'inclure une page ci-dessous, protégez-la pour admins ! */
var eps_AUTHORIZED_PAGES = {"Admin Test" : 1, "Nihilisme" : 1, "Psychanalyse" : 1, "Celui qui lit ça" : 1, "Utilisateur:Monsieur Brouillon/CIA" : 1};
if (wgCanonicalNamespace != "" || !eps_AUTHORIZED_PAGES[wgTitle]) return;
var eps_spans = document.getElementById("bodyContent").getElementsByTagName("span");
 
for( var eps_i = 0; eps_i < eps_spans.length; eps_i++)
{
   var eps_scripted = eps_spans.item(eps_i);
   if (eps_scripted.className != "__SCRIPT__") continue;
   var eps_toto = eval(eps_scripted.innerHTML);
   if (eps_toto &&  eps_scripted.nextSibling.innerHTML) eps_scripted.nextSibling.innerHTML = eps_toto;
}
}

desen_addLoadEvent(execPageScripts);

/** Nouvelle version du code USERNAME honteusement chouravé du côté de l'uncyclo ******************************
 * The annoying hack used by [[Template:USERNAME]]!
 * Inserts user name into <span class='insertusername'></span>
 * Originally by [[wikia:User:Splarka|Splarka]], [[User:Spang]]
 * New version by [[User:Bizzeebeever]]
 */
$j( function() {
	var name = mw.config.get( 'wgUserName' );
	if ( !window.disableUsernameReplace && name ) {
		$j( 'span.insertusername' ).text( name );
		$j( '<a href="/wiki/Utilisateur:' + name + '" title="Utilisateur:' + name + '">' + name + '</a> <small>(<a href="/wiki/Discussion_utilisateur:' + name + '" title="Discussion utilisateur:' + name + '">discussion</a>)</small>' ).replaceAll( 'span.insertusernamesig' );
	}
} );

importedScripts = {}; // object keeping track of included scripts, so a script ain't included twice
 function importScript( page ) {
     if( importedScripts[page] ) {
         return;
     }
     importedScripts[page] = true;
     var url = wgScriptPath
             + '/index.php?title='
             + encodeURIComponent( page.replace( / /g, '_' ) )
             + '&action=raw&ctype=text/javascript';
     var scriptElem = document.createElement( 'script' );
     scriptElem.setAttribute( 'src' , url );
     scriptElem.setAttribute( 'type' , 'text/javascript' );
     document.getElementsByTagName( 'head' )[0].appendChild( scriptElem );
 }
 
 function importStylesheet( page ) {
     var sheet = '@import "'
               + wgScriptPath
               + '/index.php?title='
               + encodeURIComponent( page.replace( / /g, '_' ) )
               + '&action=raw&ctype=text/css";'
     var styleElem = document.createElement( 'style' );
     styleElem.setAttribute( 'type' , 'text/css' );
     styleElem.appendChild( document.createTextNode( sheet ) );
     document.getElementsByTagName( 'head' )[0].appendChild( styleElem );
 }

// Utilise par [[Modele:Texte qui s'ecrit]]
// Ce code sert a ecrire du texte progressivement lettre par lettre
desen_addLoadEvent(function () {if ((window.desactiver_texte_qui_s_ecrit !== true) && (document.getElementById("unSeulTexteQuiSEcrit") || document.getElementById('plusieursTextesQuiSEcrivent'))) importScript("MediaWiki:TexteQuiSEcrit.js");});

// Utilise par [[Modele:Zone tactile]]
// Ce code sert a deplacer des div avec le curseur
desen_addLoadEvent(function () {if ((window.desactiver_zone_tactile !== true) && (document.getElementsByClassName("zoneTactile") !== [])) importScript("MediaWiki:ZoneTactile.js");});


/** Title rewrite ********************************************************
* Permet de changer le titre d'une page en utilisant [[Modèle:Titre]]
*/
function rewriteTitle() {
	if( typeof( SKIP_TITLE_REWRITE ) != 'undefined' && SKIP_TITLE_REWRITE )
		return;

	var titleDiv = document.getElementById('title-meta');

	if( titleDiv == null || titleDiv == undefined )
		return;

	var cloneNode = titleDiv.cloneNode(true);
	var firstHeading = document.getElementById('firstHeading');
	var node = firstHeading.childNodes[0];

	// new, then old!
	firstHeading.replaceChild(cloneNode, node);
	cloneNode.style.display = 'inline';

	var titleAlign = document.getElementById('title-align');
	firstHeading.style.textAlign = titleAlign.childNodes[0].nodeValue;
}

desen_addLoadEvent( rewriteTitle );


/*Activation du modèle nologo pour la suppression du logo en haut à gauche*/
/**************************************************************************/
function noLogo() {
	if( document.getElementById( 'nologo' ) ){
		document.getElementById('p-logo').style.visibility = "hidden";
		document.getElementById('p-logo').style.width = "1px";
	}
 }
desen_addLoadEvent(noLogo);