MediaWiki:Common.js

De La Grande Bibliotheque de Tamriel
Aller à : navigation, rechercher

Note : après avoir enregistré 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 pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac)
  • Google Chrome : appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac)
  • Internet Explorer : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5
  • Opera : allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d’exploration → Images et fichiers en cache.
/**
 * Source : https://fr.wikipedia.org/w/index.php?title=MediaWiki:Common.js
 */

/**
 * Boîtes déroulantes
 *
 * Pour [[Modèle:Méta palette de navigation]]
 */

var Palette_Enrouler = '[masquer]';
var Palette_Derouler  = '[afficher]';

var Palette_max = 1;
var Palette_index = -1;

function Palette_toggle(indexPalette){
  var Button = document.getElementById( "collapseButton" + indexPalette);
  var Table = document.getElementById( "collapsibleTable" + indexPalette);
  if (!Table || !Button) return false;

  var Rows = Table.rows;
  var RowDisplay = "none";
  if (Button.firstChild.data == Palette_Derouler) {
    Button.firstChild.data = Palette_Enrouler;
    RowDisplay = Rows[0].style.display;
  } else {
    Button.firstChild.data = Palette_Derouler;
  }
  for (var i = 1; i < Rows.length; i++) {
    Rows[i].style.display = RowDisplay
  }
}

function Palette(Element){
  if(!Element) Element = document;
  var TableIndex = 0;
  var TableIndexes = new Array();
  var Tables = Element.getElementsByTagName( "table" );
  for ( var i = 0; i < Tables.length; i++ ) {
    if ( hasClass( Tables[i], "collapsible" ) ) {
      var Table = Tables[i];
      var Header = Table.getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
      /* only add button and increment count if there is a header row to work with */
      if (Header) {
        TableIndex++
        Palette_index++;
        TableIndexes[Palette_index] = Table;
        Table.setAttribute( "id", "collapsibleTable" + Palette_index );
        var Button     = document.createElement( "span" );
        var ButtonLink = document.createElement( "a" );
        var ButtonText = document.createTextNode( Palette_Enrouler );
        Button.className = "navboxToggle";
        ButtonLink.setAttribute( "id", "collapseButton" + Palette_index );
        ButtonLink.setAttribute( "href", "javascript:;" );
        $(ButtonLink).click(new Function( "evt", "Palette_toggle(" + Palette_index + " ); evt.preventDefault();") );
        ButtonLink.appendChild( ButtonText );
        Button.appendChild( document.createTextNode("\u00a0"));  //ajout d'un espace insécable pour décoller ce bouton du texte de la celulle
        Button.appendChild( ButtonLink );
        Header.insertBefore( Button, Header.childNodes[0] );
      }
    }
  }
  for(var index in TableIndexes){
    var Table = TableIndexes[index];
    if(hasClass(Table,"collapsed")||(TableIndex>Palette_max && hasClass(Table,"autocollapse")))
    Palette_toggle(index);
  }
}
addOnloadHook(Palette);


/**
 * Pour [[Modèle:Boîte déroulante]]
 */

var BoiteDeroulante_Enrouler = '[masquer]';
var BoiteDeroulante_Derouler  = '[afficher]';
var BoiteDeroulante_max = 0;
var BoiteDeroulante_index = -1;

function BoiteDeroulante_toggle(indexBoiteDeroulante){
      var NavFrame = document.getElementById("NavFrame" + indexBoiteDeroulante);
      var NavToggle = document.getElementById("NavToggle" + indexBoiteDeroulante);
      var CaptionContainer = document.getElementById("NavCaption" + indexBoiteDeroulante);
      if (!NavFrame || !NavToggle || !CaptionContainer) return;
      var caption = new Array();
      var CaptionSpans = CaptionContainer.getElementsByTagName('span');
      caption[0] = CaptionSpans[0].innerHTML;
      caption[1] = CaptionSpans[1].innerHTML;

      var Contents = NavFrame.getElementsByTagName('div');
      if (NavToggle.innerHTML == caption[1]) {
            NavToggle.innerHTML = caption[0];
            for(var a=0,m=Contents.length;a<m;a++){
                  if(hasClass(Contents[a], "NavContent")){
                        Contents[a].style.display = 'none';
                        return;
                  }
            }
      }else{
            NavToggle.innerHTML = caption[1];
            for(var a=0,m=Contents.length;a<m;a++){
                  if(hasClass(Contents[a], "NavContent")){
                        Contents[a].style.display = 'block';
                        return;
                  }
            }
      }
}

function BoiteDeroulante(Element){
      if(!Element) Element = document;
      var NavFrameCount = -1;
      var NavFrames = Element.getElementsByTagName("div");
      for(var i=0,l=NavFrames.length;i<l;i++){
            if(hasClass(NavFrames[i], "NavFrame")){
                  var NavFrame = NavFrames[i];
                  NavFrameCount++;
                  BoiteDeroulante_index++;

                  if (NavFrame.title && NavFrame.title.indexOf("/")!=-1) {
                        var Enrouler = NavFrame.title.HTMLize().split("/")[1];
                        var Derouler = NavFrame.title.HTMLize().split("/")[0];
                  }else{
                        var Enrouler = BoiteDeroulante_Enrouler;
                        var Derouler = BoiteDeroulante_Derouler;
                  }
                  NavFrame.title='';
                  var CaptionContainer = document.createElement('span');
                  CaptionContainer.id = 'NavCaption' + BoiteDeroulante_index;
                  CaptionContainer.style.display = "none";
                  CaptionContainer.innerHTML = '<span>' + Derouler + '</span><span>' + Enrouler + '</span>';
                  NavFrame.appendChild(CaptionContainer);

                  var NavToggle = document.createElement("a");
                  NavToggle.className = 'NavToggle';
                  NavToggle.id = 'NavToggle' + BoiteDeroulante_index;
                  NavToggle.href = 'javascript:BoiteDeroulante_toggle(' + BoiteDeroulante_index + ');';
                  var NavToggleText = document.createTextNode(Enrouler);
                  NavToggle.appendChild(NavToggleText);

                  NavFrame.insertBefore( NavToggle, NavFrame.firstChild );
                  NavFrame.id = 'NavFrame' + BoiteDeroulante_index;
                  if (BoiteDeroulante_max <= NavFrameCount) {
                        BoiteDeroulante_toggle(BoiteDeroulante_index);
                  }
            }
      }

}
addOnloadHook(BoiteDeroulante);


/*********************************/
/* Autres fonctions non classées */
/*********************************/
 
/*
* Fonction
*
* Récupère la valeur d'une variable globale en gérant le cas lorsque cette variable n'existe pas
* @param nom_variable Nom de la variable dont on veut connaître la valeur
* @param val_defaut Valeur par défaut si la variable n'existe pas
* @return La valeur de la variable, ou val_defaut si la variable n'existe pas
*
* Auteur : Sanao
* Dernière révision : 22 novembre 2007
*/
function getVarValue(nom_variable, val_defaut)
{
	var result = null;
 
	try {
		result = eval(nom_variable.toString());
	} catch (e) {
		result = val_defaut;
	}
 
	return(result);
}
 
/*
* Fonction
*
* Retourne une chaîne de caractères de la date courante selon dans un certain format
* @param format Format de la date "j" pour le jour, "m" pour le mois et "a" pour l'année. Ainsi si l'on est le 21 novembre 2007 et l'on passe en paramètre cette chaîne "a_m_d", la chaîne retournée sera "2007_novembre_21"
* Auteur : Sanao
* Dernière révision : 21 novembre 2007
*/
function getStrDateToday(format)
{
  var str_mois = new Array();
  with (str_mois)
  {
    push("janvier");
    push("février");
    push("mars");
    push("avril");
    push("mai");
    push("juin");
    push("juillet");
    push("août");
    push("septembre");
    push("octobre");
    push("novembre");
    push("décembre");
  }
  var today = new Date();
  var day = today.getDate();
  var year = today.getYear();
  if (year < 2000)
  {
    year = year + 1900;
  }
  var str_date = format;
 
  //Création de la chaîne
  var regex = /j/gi;
  str_date = str_date.replace(regex, day.toString());
  regex = /a/gi;
  str_date = str_date.replace(regex, year.toString());
  regex = /m/gi;
  str_date = str_date.replace(regex, str_mois[today.getMonth()]);
 
  return (str_date);
}
 
/* petites fonctions pratiques  - Darkoneko, 09/01/2008 */
 
//créé un lien et le retourne.
//le parametre onclick est facultatif.
function createAdressNode(href, texte, onclick) {
  var a = document.createElement('a')
  a.href = href
  a.appendChild(document.createTextNode( texte ) )
  if(arguments.length == 3) {   a.setAttribute("onclick", onclick )  }
 
  return a
}
 
//Créé un cookie. il n'existais qu'une version dédiée à l'accueil. Celle ci est plus générique
//le parametre duree est en jours
function setCookie(nom, valeur, duree ) {
   var expDate = new Date()
   expDate.setTime(expDate.getTime() + ( duree * 24 * 60 * 60 * 1000))
   document.cookie = nom + "=" + escape(valeur) + ";expires=" + expDate.toGMTString() + ";path=/"
}
 
/*
 * Chargement des styles Agora.
 */
if( [
	2, 	3, // (Discussion) Utilisateur:
	4, // Wikipédia:
	10, // Modèle:
	12, // Aide:
	100, 101, // (Discussion) Portail:
	102, 103 // (Discussion) Projet:
].indexOf(mw.config.get('wgNamespaceNumber')) >= 0 ) {
    mw.loader.load( 'mediawiki.ui' );
}