MediaWiki:Modele.js

De Wiki-Anjou
Révision datée du 1 février 2013 à 15:20 par Céline (discussion | contributions) (Page créée avec « // ============================================================ // BEGIN Boîtes déroulantes // set up the words in your language var NavigationBarHide = '▲ Masquer'; ... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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.
// ============================================================
// BEGIN Boîtes déroulantes

// set up the words in your language
var NavigationBarHide = '▲ Masquer';
var NavigationBarShow = '▼ Afficher';

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


function toggleNavigationBar(indexNavigationBar){
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
    if (!NavFrame || !NavToggle) return false;
    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;
        }
    } 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;
        }
    }
}

function createNavigationBarToggleButton(){
    var indexNavigationBar = 0;
    var AllDivs = document.getElementsByTagName("div");
    for(var i=0,l=AllDivs.length;i<l;i++) {
        if (hasClass(AllDivs[i], "NavFrame")) {
            var NavFrame = AllDivs[i];
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
            var NavToggleText = document.createTextNode(NavigationBarHide);
            NavToggle.appendChild(NavToggleText);
            NavFrame.insertBefore( NavToggle, NavFrame.firstChild);
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(var i=1;i<=indexNavigationBar;i++) {
            toggleNavigationBar(i);
        }
    }
}
aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;

// END Boîtes déroulantes
// ============================================================

// ============================================================
// BEGIN Compte à rebours
/* Permet d'afficher un compte à rebours sur une page avec le modèle [[Modèle:Compte à rebours]] */
/* Plyd - 3 février 2009 */

function Rebours() {
  if(wgNamespaceNumber==0) return;
  try {
   var Comptes = getElementsByClassName(document, "span", "rebours");
   if(!Comptes[0]) return;
   for(var a=0,l=Comptes.length;a<l;a++) {
      destime = Comptes[a].title.HTMLize().split(";;");
      Maintenant = (new Date).getTime();
      Future = new Date(Date.UTC(destime[0], (destime[1]-1), destime[2], destime[3], destime[4], destime[5])).getTime();
      Diff = (Future-Maintenant);
      if (Diff < 0) {Diff = 0}
      TempsRestantJ = Math.floor(Diff/(24*3600*1000));
      TempsRestantH = Math.floor(Diff/(3600*1000)) % 24;
      TempsRestantM = Math.floor(Diff/(60*1000)) % 60;
      TempsRestantS = Math.floor(Diff/1000) % 60;
      TempsRestant = "" + destime[6] + " ";  
      if (TempsRestantJ == 1) {
         TempsRestant = TempsRestant + TempsRestantJ + " jour ";
      } else if (TempsRestantJ > 1) {
         TempsRestant = TempsRestant + TempsRestantJ + " jours ";
      }
      TempsRestant = TempsRestant + TempsRestantH + " h " + TempsRestantM  + " min " + TempsRestantS + " s";
      Comptes[a].innerHTML = TempsRestant;
    }
    setTimeout("Rebours()", 1000)
  } catch (e) {}
}
addOnloadHook(Rebours);

// END Compte à rebours
// ============================================================

// ============================================================
// BEGIN Images
// Permet d'afficher un diaporama d'images avec le modèle [[Modèle:Images]] 

function toggleImage(group, remindex, shwindex) {
  document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none";
  document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline";
}
 
function imageGroup(bc){
  if (document.URL.match(/printable/g)) return;
  if(!bc){
    var bc=document.getElementById("bodyContent");
    if( !bc ) bc = document.getElementById("mw_contentholder");
    if( !bc ) bc = document.getElementById("article");
    if( !bc ) return;
  }
  var divs=bc.getElementsByTagName("div");
  var i = 0, j = 0;
  var units, search;
  var currentimage;
  var UnitNode;
  for (i = 0; i < divs.length ; i++) {
    if (divs[i].className != "ImageGroup") continue;
    UnitNode=undefined;
    search=divs[i].getElementsByTagName("div");
    for (j = 0; j < search.length ; j++) {
      if (search[j].className != "ImageGroupUnits") continue;
      UnitNode=search[j];
      break;
    }
    if (UnitNode==undefined) continue;
    units=Array();
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
      var temp = UnitNode.childNodes[j];
      if (temp.className=="center") units.push(temp);
    }
    for (j = 0 ; j < units.length ; j++) {
      currentimage=units[j];
      currentimage.id="ImageGroupsGr"+i+"Im"+j;
      var imghead = document.createElement("div");
      var leftlink;
      var rightlink;
      if (j != 0) {
        leftlink = document.createElement("a");
        leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");";
        leftlink.innerHTML="◀";
        leftlink.title="Image précédente";
      } else {
        leftlink = document.createElement("span");
        leftlink.innerHTML="&nbsp;";
      }
      if (j != units.length - 1) {
        rightlink = document.createElement("a");
        rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");";
        rightlink.innerHTML="▶";
        rightlink.title="Image suivante";
      } else {
        rightlink = document.createElement("span");
        rightlink.innerHTML="&nbsp;";
      }
      var comment = document.createElement("tt");
      comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
      with(imghead) {
        style.fontSize="110%";
        style.fontweight="bold";
        appendChild(leftlink);
        appendChild(comment);
        appendChild(rightlink);
      }
      currentimage.insertBefore(imghead,currentimage.childNodes[0]);
      if (j != 0) currentimage.style.display="none";
    }
  }
}
addOnloadHook(imageGroup);

// END Images
// ============================================================

// ============================================================
// BEGIN Texte défilant
// Permet d'afficher un texte défilant avec le modèle [[Modèle:Texte défilant]] 

var defilant_vars = new Array();
defilant_vars["span"] = new Array();
defilant_vars["texte"] = new Array();
defilant_vars["texteDef"] = new Array();
defilant_vars["Largeur"] = new Array();
defilant_vars["Tempo"] = new Array();
function defilant_init(){
     var Defilants = getElementsByClassName(document, "span", "defilant");
     if(!Defilants[0]) return;
     for(var a=0,l=Defilants.length;a<l;a++){
          Defilants[a].id = "Defilant_"+a;
          var Spans = Defilants[a].getElementsByTagName('span');
          var texte = getTextContent(Spans[0]).replace(/&nbsp;/g, " ");
          var texteDef = getTextContent(Spans[1]).replace(/&nbsp;/g, " ");
          var Tempo = parseInt(Spans[0].title.split(';;')[0]);
          if(typeof(Tempo)!="number") Tempo = 150;
          var Largeur = parseInt(Spans[0].title.split(';;')[1]);
          if(typeof(Largeur)!="number") Largeur = 20;
          while(texteDef.length < Largeur){
               texteDef += texte; 
          }
          defilant_vars["span"][a] = Spans[1];
          defilant_vars["texte"][a] = texte;
          defilant_vars["texteDef"][a] = texteDef;
          defilant_vars["Largeur"][a] = Largeur;
          defilant_vars["Tempo"][a] = Tempo;
          Spans[1].innerHTML = texteDef;
          defilant(a);
     }
}
addOnloadHook(defilant_init);

function defilant(a){
     defilant_vars["texteDef"][a] = defilant_vars["texteDef"][a].substring(1,defilant_vars["texteDef"][a].length) + defilant_vars["texteDef"][a].substring(0,1);
     defilant_vars["span"][a].innerHTML = defilant_vars["texteDef"][a];
     setTimeout("defilant("+a+")", defilant_vars["Tempo"][a]);
}

// END Texte défilant
// ============================================================