Momentálně se pracuje na harmonizaci obsahu českých stránek

Čeština - druhé vydání 2005

MediaWiki:Common.js: Porovnání verzí

Z Demopædia
Přejít na: navigace, hledání
(hasClass was missing)
m (naimportována 1 revize)
 
(Není zobrazeno 10 mezilehlých verzí od 3 dalších uživatelů.)
Řádka 1: Řádka 1:
/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky.  */
 
/* N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée.
 
 
ATTENTION : Avant de modifier cette page, veuillez tester vos changements avec votre propre
 
monobook.js. Une erreur sur cette page peut faire bugger le site entier (et gêner l'ensemble des
 
visiteurs), même plusieurs heures après la modification !
 
 
NE PAS RETIRER CECI SINON : remplacement des signature, substitution des modèles, ... : <nowiki>
 
 
/*************************************************************/
 
/* Fonctions javascript : pallient les limites de javascript */
 
/* Surveiller : http://www.ecmascript.org/                  */
 
/*************************************************************/
 
 
 
/**
 
/**
  * insertAfter : insérer un élément dans une page
+
  * Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
*/
+
  * loaded for all users on every wiki page. If possible create a gadget that is
function insertAfter(parent, node, referenceNode) {
+
  * enabled by default instead of adding it here (since gadgets are fully
  parent.insertBefore(node, referenceNode.nextSibling);
+
  * optimized ResourceLoader modules with possibility to add dependencies etc.)
}
 
 
 
function hasClass(node, className) {
 
  if (node.className == className) {
 
    return true;
 
  }
 
  var reg = new RegExp('(^| )'+ className +'($| )')
 
  if (reg.test(node.className)) {
 
    return true;
 
  }
 
  return false;
 
}
 
 
 
 
/**
 
* Boîtes déroulantes
 
*
 
* Pour [[Modèle:Méta palette de navigation]]
 
*/
 
 
 
var autoCollapse = 2;
 
var collapseCaption = '[ Enrouler ]';
 
var expandCaption = '[ Dérouler ]';
 
 
 
function collapseTable( tableIndex ) {
 
  var Button = document.getElementById( "collapseButton" + tableIndex );
 
  var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
  if ( !Table || !Button ) return false;
 
 
 
  var Rows = Table.getElementsByTagName( "tr" );
 
 
 
  if ( Button.firstChild.data == collapseCaption ) {
 
    for ( var i = 1; i < Rows.length; i++ ) {
 
      Rows[i].style.display = "none";
 
    }
 
    Button.firstChild.data = expandCaption;
 
  } else {
 
    for ( var i = 1; i < Rows.length; i++ ) {
 
      Rows[i].style.display = Rows[0].style.display;
 
    }
 
    Button.firstChild.data = collapseCaption;
 
  }
 
}
 
 
 
function createCollapseButtons() {
 
  var tableIndex = 0;
 
  var NavigationBoxes = new Object();
 
  var Tables = document.getElementsByTagName( "table" );
 
 
 
  for ( var i = 0; i < Tables.length; i++ ) {
 
    if ( hasClass( Tables[i], "collapsible" ) ) {
 
      NavigationBoxes[ tableIndex ] = Tables[i];
 
      Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 
 
 
      var Button    = document.createElement( "span" );
 
      var ButtonLink = document.createElement( "a" );
 
      var ButtonText = document.createTextNode( collapseCaption );
 
 
 
      Button.style.styleFloat = "right";
 
      Button.style.cssFloat = "right";
 
      Button.style.fontWeight = "normal";
 
      Button.style.textAlign = "right";
 
      Button.style.width = "6em";
 
 
 
      ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
 
      ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
 
      ButtonLink.appendChild( ButtonText );
 
 
 
      Button.appendChild( ButtonLink );
 
 
 
      var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
 
      /* only add button and increment count if there is a header row to work with */
 
      if (Header) {
 
        Header.insertBefore( Button, Header.childNodes[0] );
 
        tableIndex++;
 
      }
 
    }
 
  }
 
 
 
  for (var i = 0; i < tableIndex; i++) {
 
    if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) collapseTable( i );
 
  }
 
}
 
 
 
addOnloadHook(createCollapseButtons);
 
 
 
/**
 
* Pour [[Modèle:Boîte déroulante]]
 
  */
 
var NavigationBarShowDefault = 0;
 
 
function toggleNavigationBar(indexNavigationBar) {
 
  var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
 
  var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
 
  if (!NavFrame || !NavToggle) return;
 
 
  // surcharge des libellés dérouler/enrouler grâce a l'attribut title
 
  // exemple : title="[déroulade]/[enroulade]"
 
  var caption = [expandCaption, collapseCaption];
 
  if (NavFrame.title && NavFrame.title.length > 0) {
 
    caption = NavFrame.title.split("/");
 
    if (caption.length < 2) caption.push(collapseCaption);
 
  }
 
 
  // if shown now
 
  if (NavToggle.firstChild.data == caption[1]) {
 
    for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
 
      if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'none';
 
      if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'none';
 
      if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[0];
 
    }
 
 
  // if hidden now
 
  } else if (NavToggle.firstChild.data == caption[0]) {
 
    for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
 
      if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'block';
 
      if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'block';
 
      if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[1];
 
    }
 
  }
 
}
 
 
// adds show/hide-button to navigation bars
 
function createNavigationBarToggleButton() {
 
  var indexNavigationBar = 0;
 
  var NavFrame;
 
  // iterate over all < div >-elements
 
  for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) {
 
    // if found a navigation bar
 
    if (hasClass(NavFrame, "NavFrame")) {
 
      indexNavigationBar++;
 
      var NavToggle = document.createElement("a");
 
      NavToggle.className = 'NavToggle';
 
      NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 
      NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
 
      // surcharge des libellés dérouler/enrouler grâce a l'attribut title
 
      var caption = collapseCaption;
 
      if (NavFrame.title && NavFrame.title.indexOf("/") > 0) {
 
        caption = NavFrame.title.split("/")[1];
 
      }
 
 
 
      var NavToggleText = document.createTextNode(caption);
 
      NavToggle.appendChild(NavToggleText);
 
 
      // add NavToggle-Button as first div-element
 
      // in <div class="NavFrame">
 
      NavFrame.insertBefore( NavToggle, NavFrame.firstChild );
 
      NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
 
    }
 
  }
 
  // if more Navigation Bars found than Default: hide all
 
  if (NavigationBarShowDefault < indexNavigationBar) {
 
    for( var i=1; i<=indexNavigationBar; i++ ) {
 
      toggleNavigationBar(i);
 
    }
 
  }
 
}
 
 
addOnloadHook(createNavigationBarToggleButton);
 
 
 
/**
 
* Compteur de consultation d'articles
 
*
 
* Please talk to User:LeonWeber before changing anything or
 
* if there are any issues with that.
 
  * this should be adjusted to a good value.
 
* BE CAREFULL, you will break zedler if it's too low!
 
* And then DaB. will kill Leon :-(
 
*/
 
 
 
var disable_counter = 0;
 
var counter_factor = 900;
 
 
 
function pgcounterSetup() {
 
  if(disable_counter == 0) {
 
    var url = window.location.href;
 
    if(Math.floor(Math.random()*counter_factor)==42) { // the probability thing
 
      if(wgIsArticle==true) { // do not count history pages etc.
 
        var pgcountNs = wgCanonicalNamespace;
 
        if(wgCanonicalNamespace=="") pgcountNs = "0";
 
        var cnt_url = "http://pgcount.wikimedia.de/index.png?ns=" + pgcountNs + "&title=" + encodeURI(wgTitle) + "&factor=" + counter_factor + "&wiki=frwiki";
 
        var img = new Image();
 
        img.src = cnt_url;
 
      }
 
    }
 
  }
 
}
 
 
 
addOnloadHook(pgcounterSetup);
 
 
 
/**
 
* Réécriture des titres
 
*
 
* Fonction utilisée par [[Modèle:Titre incorrect]]
 
*
 
* La fonction cherche un bandeau de la forme
 
* <div id="RealTitleBanner">
 
*  <span id="RealTitle">titre</span>
 
* </div>
 
*
 
* Un élément comportant id="DisableRealTitle" désactive la fonction
 
*/
 
function rewritePageH1() {
 
  var realTitleBanner = document.getElementById('RealTitleBanner');
 
  if (realTitleBanner) {
 
    if (!document.getElementById('DisableRealTitle')) {
 
      var realTitle = document.getElementById('RealTitle');
 
      var h1 = document.getElementsByTagName('h1')[0];
 
      if (realTitle && h1) {
 
        var titleText = realTitle.innerHTML;
 
        if (titleText == '') h1.style.display = 'none';
 
        else h1.innerHTML = titleText;
 
        realTitleBanner.style.display = 'none';
 
      }
 
    }
 
  }
 
}
 
 
 
addOnloadHook(rewritePageH1);
 
 
 
/**
 
* WikiMiniAtlas
 
*
 
* voir WP:WMA
 
*/
 
document.write('<script type="text/javascript" src="'
 
    + 'http://meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js'
 
    + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 
 
 
var wma_settings = {
 
  buttonImage: 'http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Geographylogo.svg/18px-Geographylogo.svg.png'
 
}
 
 
 
/**
 
* Icônes de titre
 
*
 
* Cherche les icônes de titre (class="icone de titre") et les
 
* déplace à droite du titre de la page.
 
* Doit être exécuté après une éventuelle correction de titre.
 
*/
 
function IconesDeTitre() {
 
  var h1 = document.getElementsByTagName("h1")[0];
 
  var icones = document.getElementsByTagName("div");
 
  var icones2 = new Array();
 
  var j = 0;
 
  for (var i = 0; i < icones.length; ++i) {
 
    if (icones[i].className == "icone de titre") {
 
      icones2[j++] = icones[i];
 
    }
 
  }
 
  for (; j > 0; --j) {
 
    icones2[j-1].style.display = "block"; /* annule display:none par défaut */
 
    icones2[j-1].style.borderWidth = "1px";
 
    icones2[j-1].style.borderStyle = "solid";
 
    icones2[j-1].style.borderColor = "white";
 
    h1.insertBefore(icones2[j-1], h1.firstChild); /* déplacement de l'élément */
 
  }
 
}
 
 
 
addOnloadHook(IconesDeTitre);
 
 
 
/**
 
* Déplacement de coordonnées qui apparaissent en haut de la page
 
*/
 
function moveCoord() {
 
  var h1 = document.getElementsByTagName("h1")[0];
 
  var coord = document.getElementById('coordinates');
 
  if ( !coord || !h1 ) return;
 
  coord.id = "coordinates-title";
 
  h1.insertBefore(coord, h1.firstChild);
 
}
 
 
 
addOnloadHook(moveCoord);
 
 
 
/**
 
* Déplacement des [modifier]
 
*
 
* Correction des titres qui s'affichent mal en raison de limitations dues à MediaWiki.
 
*
 
* Copyright 2006, Marc Mongenet. Licence GPL et GFDL.
 
*
 
* The function looks for <span class="editsection">, and move them
 
* at the end of their parent and display them inline in small font.
 
* var oldEditsectionLinks=true disables the function.
 
*/
 
function setModifySectionStyle() {
 
  try {
 
    if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
 
    var spans = document.getElementsByTagName("span");
 
    for (var s = 0; s < spans.length; ++s) {
 
      var span = spans[s];
 
      if (span.className == "editsection") {
 
        span.style.fontSize = "xx-small";
 
        span.style.fontWeight = "normal";
 
        span.style.cssFloat = span.style.styleFloat = "none";
 
        span.parentNode.appendChild(document.createTextNode(" "));
 
        span.parentNode.appendChild(span);
 
      }
 
    }
 
  } catch (e) { /* something went wrong */ }
 
}
 
 
 
addOnloadHook(setModifySectionStyle);
 
 
 
/**
 
* Cache cadres de l'accueil
 
*
 
* Ajoute un lien sur la page d'accueil pour cacher facilement les cadres
 
* Mémorisé par cookie.
 
* Copyright 2007, fr:user:Plyd et fr:User:IAlex. Licence GFDL et GPL.
 
*/
 
var cookieCacheCadresName = "cacheCadresAccueil";
 
var CacheCadresVal = {};
 
var totalCadresAccueil = 0;
 
 
 
function affCadreAccueil(id) {
 
  visible = CacheCadresVal[id] = (!CacheCadresVal[id]);
 
  getElementsByClass('accueil_contenu',null,'div')[id].style.display = visible ? 'block' : 'none';
 
  document.getElementById('CacheCadreAccueil' + id).innerHTML = visible ? 'masquer' : 'afficher';
 
  sauverCookieAccueil();
 
}
 
 
 
function sauverCookieAccueil() {
 
  var date = new Date();
 
  date.setTime(date.getTime() + 30*86400*1000);
 
  var val = 0;
 
  for ( var i=0; i< totalCadresAccueil ; i++ ) {
 
    if (!CacheCadresVal[i]) val = val | Math.pow(2,i);
 
  }
 
  document.cookie = cookieCacheCadresName + "=" + val + "; expires="+date.toGMTString() + "; path=/";
 
}
 
 
 
function LiensCadresAccueil() {
 
  if (wgPageName != "Accueil") return;
 
  cookieCadresAccueil = getCookieVal(cookieCacheCadresName);
 
  for ( var i=0; i<5; i++) {
 
    var titre = getElementsByClass('headergris',document,'h2')[i];
 
    if (!titre) break;
 
    titre.innerHTML += " <span style='font-size: xx-small; font-weight: normal; float: none; margin-right:100px' class='editsection'>[<a id='CacheCadreAccueil" + i + "' href='javascript:affCadreAccueil(" + i + ");'>masquer</a>]</span>";
 
    CacheCadresVal[i] = true;
 
    totalCadresAccueil++;
 
  }
 
  cookieCadresAccueil = getCookieVal(cookieCacheCadresName);
 
  for ( var i=0; i< totalCadresAccueil ; i++ ) {
 
    n =Math.pow(2,i);
 
    aff = !(cookieCadresAccueil & n);
 
    if (!aff) affCadreAccueil(i);
 
  }
 
}
 
addOnloadHook(LiensCadresAccueil);
 
 
 
/**
 
* Déplace les liens portails vers la boite de catégorie
 
*
 
* Copyright 2007, fr:user:Aoineko. Licence GFDL et GPL.
 
*/
 
var gUseMovePortalToCategoryBox = 1;
 
 
 
function movePortalToCategoryBox() {
 
  if(!gUseMovePortalToCategoryBox)
 
      return;
 
 
 
  // search for portails
 
  var div_portal = document.getElementById('portallinks');
 
  if(div_portal && (div_portal.className == 'movable')) {
 
      div_portal.style.display = 'none'; // hide the portail div
 
      var div_cat = document.getElementById('catlinks'); // get cat div
 
      if(!div_cat) { // no category box ? then create it
 
        var div_foot;
 
        var divs = document.getElementsByTagName('div');
 
        for(var i = 0; i < divs.length ; i++)
 
            if(divs[i].className == 'printfooter')
 
              div_foot = divs[i];
 
        div_cat = document.createElement("div");
 
        div_cat.setAttribute('id', 'catlinks');
 
        div_foot.parentNode.insertBefore(div_cat, div_foot);
 
      }
 
      div_cat.innerHTML = div_portal.innerHTML + '<hr/>' + div_cat.innerHTML;
 
  }
 
}
 
 
 
addOnloadHook(movePortalToCategoryBox);
 
 
 
 
 
/*************************************/
 
/* Applications pour les rédacteurs  */
 
/*************************************/
 
 
 
/* todo : migrer celles qui ne sont pas vitales dans les gadgets */
 
 
 
/**
 
  * Fonctions de remplissage automatique
 
*/
 
function InitPaS(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n" +
 
        "{{subst:Initialiser PàS|" + page_name + "|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}\n" +
 
        "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des Pages à supprimer -->";
 
}
 
 
 
function InitLANN(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n" +
 
        "{{subst:Initialiser LANN|" + page_name + "|~~~~}}\n" +
 
        "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des articles non neutres -->";
 
}
 
 
 
function InitIaS(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n" +
 
        "{{subst:Préchargement Image à Supprimer|" + page_name + "|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}\n" +
 
        "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des Images à supprimer -->";
 
}
 
 
 
function InitPAdQ(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n\n" +
 
        "{{subst:Initialiser PAdQ|" + page_name + "|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}";
 
}
 
 
 
function InitIaA(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n" +
 
        "{{subst:Amélioration image}}";
 
}
 
 
 
function InitPCP(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n" +
 
        "{{subst:Initialiser PCP|" + page_name + "|~~~~}}\n" +
 
        "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des\n" +
 
        "    articles soupçonnées de violation de copyright -->";
 
}
 
 
 
function InitArbReq(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n" +
 
        "{{subst:Wikipédia:Comité d'arbitrage/Arbitrage/Modèle}}\n" +
 
        "<!-- N'oubliez pas d'ajouter un lien vers cette page sur [[Wikipédia:Comité d'arbitrage/Arbitrage]] -->";
 
}
 
 
 
function InitDiscArbReq(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser -->\n" +
 
        "{{subst:Discussion Wikipédia:Comité d'arbitrage/Arbitrage/Modèle}}";
 
}
 
 
 
function InitCdl(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n" +
 
        "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale du comité de lecture -->\n\n" +
 
        "<noinclude>{{subst:Initialiser Comité de lecture2}}</noinclude>\n" +
 
        "{{subst:Initialiser Comité de lecture|" + page_name + "|~~~~}}";
 
}
 
 
 
function InitProjetTraduction(page_name) {
 
  var mustSkip=wgPageName.indexOf('Projet:Traduction/*/');
 
  if (mustSkip == -1) {
 
    return "{{subst:Initialiser la page de traduction|{{subst:SUBPAGENAME}}|~~~~|\n" +
 
          "<!--  À la création de la page, suivez les consignes ci-dessous pour proposer l'article.    \n" +
 
          "      ATTENTION : Veuillez ne rien effacer !                                            -->\n" +
 
          "1. Indiquez ci-dessous la langue de l'article à traduire (ex: en de es it pt...)\n" +
 
          "|en|\n" +
 
          "2. Indiquez ci-dessous le nom de l'article original (ex: Frankreich)\n" +
 
          "|Nom original ici| \n" +
 
          "3. Indiquez ci-dessous en une phrase l'intérêt de la traduction\n" +
 
          "|article très bien|\n" +
 
          "4. Ajoutez éventuellement un court commentaire \n" +
 
          "|commentaire très intéressant ici|\n" +
 
          "| 5. C'est fini, vous pouvez désormais sauvegarder cette page.\n" +
 
          "}}";
 
  } else {
 
    return "";
 
  }
 
}
 
 
 
function InitPBA(page_name) {
 
  return "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->\n\n" +
 
        "{{subst:Initialiser PBA|" + page_name + "|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}";
 
}
 
 
 
function InitPL(page_name) {
 
  return "<!-- Remplir les paramètres mois et année à la sous page correspondante, et créer les liens rouges -->\n" +
 
        "{{Portail:Littérature/Invitation à la lecture/Sélection/Modèle \n" +
 
        "| mois = \n" +
 
        "| année = \n" +
 
        "}} \n" +
 
        "<noinclude>{{Portail:Littérature/Invitation à la lecture/Sélection/Modèle inclusion \n" +
 
        "| mois = \n" +
 
        "| année = \n" +
 
        "}} \n" +
 
        "</noinclude>";
 
}
 
 
 
 
 
var init_if_empty = new Array(
 
  new Array('Wikipédia:Pages_à_supprimer/', InitPaS),
 
  new Array('Wikipédia:Liste_des_articles_non_neutres/', InitLANN),
 
  new Array('Wikipédia:Images_à_supprimer/', InitIaS),
 
  new Array('Wikipédia:Proposition_articles_de_qualité/', InitPAdQ),
 
  new Array('Wikipédia:Pages_soupçonnées_de_violation_de_copyright/', InitPCP),
 
  new Array('Discussion_Wikipédia:Comité_d\'arbitrage/Arbitrage/', InitDiscArbReq),
 
  new Array('Wikipédia:Comité_d\'arbitrage/Arbitrage/', InitArbReq),
 
  new Array('Wikipédia:Comité_de_lecture/', InitCdl),
 
  new Array('Projet:Traduction/', InitProjetTraduction),
 
  new Array('Wikipédia:Proposition_bons_articles/', InitPBA),
 
  new Array('Portail:Littérature/Invitation_à_la_lecture/Sélection/', InitPL)
 
);
 
 
 
/**
 
* Remplit la zone d'édition si elle est vide avec le texte retourné par
 
* un pointeur de fonction sélectionné par le nom de la page.
 
*/
 
function InitPage() {
 
  // Tester si editform et wpTextbox1 existe sinon il y a une erreur lorsqu'on
 
  // ouvre l'historique d'une page qui match un des noms de init_if_empty[],
 
  // tester seulement le nom de la page n'est pas suffisant.
 
  if (document.editform == undefined || document.editform.wpTextbox1 == undefined) return;
 
  var text_area = document.editform.wpTextbox1;
 
  if (text_area.value.length != 0) return;
 
  for (var i = 0; i < init_if_empty.length; ++i) {
 
    var page_match = init_if_empty[i][0];
 
    var index = wgPageName.indexOf(page_match);
 
    if (index != -1) {
 
      page_name = wgPageName.slice(page_match.length);
 
      page_name = page_name.replace(/_/g, ' ');
 
      text_area.value = init_if_empty[i][1](page_name);
 
      break;
 
    }
 
  }
 
}
 
 
 
addOnloadHook(InitPage);
 
 
 
/**
 
* Caractères spéciaux
 
*
 
* Ajouter un menu pour choisir des sous-ensembles de caractères spéciaux.
 
* Ecrit par Zelda, voir sur [[Utilisateur:Zelda/Edittools.js]].
 
* Remplace l'ancienne fonction par une variante plus rapide.
 
*/
 
 
 
/**
 
* Ajoute un menu déroulant permettant de choisir un jeu de caractères spéciaux
 
* Les caractères spéciaux sont définis dans Mediawiki:Edittools
 
*/
 
function addCharSubsetMenu() {
 
  var specialchars = document.getElementById('specialcharsets');
 
  if (!specialchars) return;
 
 
 
  // Construction du menu de selection
 
  var charSubsetSelect = document.createElement("select");
 
  charSubsetSelect.setAttribute("style", "display:inline");
 
  charSubsetSelect.onchange = function () { chooseCharSubset(this.selectedIndex); };
 
 
 
  // Ajout des options au menu
 
  var p = document.getElementById('specialcharsets').getElementsByTagName('p');
 
  for (var i = 0; i < p.length ; i++) {
 
    var opt = document.createElement("option");
 
    var txt = document.createTextNode(p[i].title);
 
    opt.appendChild(txt);
 
    charSubsetSelect.appendChild(opt);
 
  }
 
 
 
  specialchars.insertBefore(charSubsetSelect, specialchars.childNodes[0]);
 
 
 
  /* default subset - try to use a cookie some day */
 
  chooseCharSubset(0);
 
}
 
 
 
/**
 
* Affichage du jeu de caractères sélectionné
 
*/
 
function chooseCharSubset(index) {
 
  var p = document.getElementById('specialcharsets').getElementsByTagName('p');
 
  for (var i = 0; i < p.length ; i++) {
 
    // Initialisation du jeu de caractères sélectionné
 
    if (i == index) {
 
    initializeCharSubset(p[i]);
 
    }
 
    // Affichage du jeu sélectionné, masquage des autres
 
    p[i].style.display = i == index ? 'inline' : 'none';
 
    p[i].style.visibility = i == index ? 'visible' : 'hidden';
 
  }
 
}
 
 
 
/**
 
* Initialisation du jeu de caractères sélectionné
 
* Paramètre : paragraphe contenant le jeu à initialiser. Initialise tous les
 
* caractères contenus dans les sous-spans du paragraphe
 
*/
 
function initializeCharSubset(p) {
 
  // recherche des sous-elements de type span à traiter
 
  var spans = p.getElementsByTagName("span");
 
  if (!spans) return;
 
 
 
  // regexp pour echapper les caractères JS spéciaux : \ et '
 
  var re = new RegExp("(\\\\|')", "g");
 
  // gestion du caractère d'échappement '\'
 
  var escapeRe = new RegExp("[^\\\\](\\\\\\\\)*\\\\$", "g");
 
  var unescapeRe = new RegExp("\\\\\\\\", "g");
 
 
 
  // traitement des spans du paragraphe
 
  for (var j = 0; j < spans.length; j++) {
 
    // span deja traité
 
    if (spans[j].childNodes.length == 0 || spans[j].childNodes[0].nodeType != 3) continue;
 
 
 
    // On parse le contenu du span
 
    var chars = spans[j].childNodes[0].nodeValue.split(" ");
 
    for (var k = 0; k < chars.length; k++) {
 
      var a = document.createElement("a");
 
      var tags = chars[k];
 
 
 
      // regroupement des mots se terminant par un espace protégé par un \
 
      while (k < chars.length && chars[k].match(escapeRe)) {
 
      k++;
 
tags = tags.substr(0, tags.length - 1) + " " + chars[k];
 
      }
 
 
 
      // création du lien insertTag(tagBegin, tagEnd, defaultValue) en protegeant les caractères JS \ et '
 
      tags = (tags.replace(unescapeRe, "\\")).split("+");
 
      var tagBegin = tags[0].replace(re, "\\$1");
 
      var tagEnd = tags.length > 1 ? tags[1].replace(re, "\\$1") : "";
 
      var defaultValue = tags.length > 2 ? tags[2].replace(re, "\\$1") : "";
 
      a.href = "javascript:insertTags('" + tagBegin + "','" + tagEnd + "', '" + defaultValue + "')";
 
      //a.href="#";
 
      //eval("a.onclick = function() { insertTags('" + tagBegin + "','" + tagEnd + "', '" + defaultValue + "'); return false; }");
 
 
 
      a.appendChild(document.createTextNode((tagBegin + tagEnd).replace(unescapeRe, "\\")));
 
      spans[j].appendChild(a);
 
      spans[j].appendChild(document.createTextNode(" "));
 
    }
 
    // suppression de l'ancien contenu
 
    spans[j].removeChild(spans[j].firstChild);
 
  }
 
}
 
 
 
addOnloadHook(addCharSubsetMenu);
 
 
 
/**
 
* Permet d'ajouter d'un jeu de caractères spéciaux dans le menu déroulant
 
* paramètres :
 
* - nom du jeu de caractères
 
* - contenu HTML. Les caractères spéciaux doivent être dans des spans
 
*  exemple : "caractères : <span>â ê î ô û</span>"
 
*/
 
function addSpecialCharsetHTML(title, charsHTML) {
 
  var specialchars = document.getElementById('specialcharsets');
 
  if (!specialchars) return;
 
 
 
  // Ajout des caractères spéciaux. Les liens seront initialisé par initializeCharSubset()
 
  // lors de la sélection
 
  var specialcharsets = document.getElementById('specialcharsets');
 
  var p = document.createElement("p");
 
  p.style.display = "none";
 
  p.title = title;
 
  p.innerHTML = charsHTML;
 
  specialcharsets.appendChild(p);
 
}
 
 
 
/**
 
* Permet d'ajouter d'un jeu de caractères spéciaux dans le menu déroulant
 
* paramètres :
 
* - nom du jeu de caractères
 
* - caractères spéciaux
 
* exemple d'utilisation : addSpecialCharset("Français", "â ê î ô û");
 
*/
 
function addSpecialCharset(title, chars) {
 
  addSpecialCharsetHTML(title, "<span>" + chars + "</span>");
 
}
 
 
 
/**
 
* Générateur de tableaux
 
* English: Generate an array using Mediawiki syntax
 
*
 
* @author: fr:user:dake
 
* @version: 0.2
 
*/
 
 
 
function generateTableau(nbCol, nbRow, styleHeader, styleLine) {
 
  var code = "\n{| " +
 
    ((styleHeader==1) ? 'class="wikitable"' : '')+
 
    '\n|+ Titre du tableau\n';
 
   
 
  for (var i=0; i<nbCol; i++) code += '! en-tête ' + i + '\n';
 
   
 
  for (var j=0; j<nbRow; j++) {
 
    if ((j+1)%2==0 && styleLine==1) {
 
      code += '|-{'+'{ligne grise}'+'}\n';
 
    } else {           
 
      code += '|-----\n';
 
    }
 
         
 
    for (var i=0; i<nbCol; i++) code += '| élément\n';
 
  }
 
   
 
  code += '|}';
 
  insertTags('','', code);
 
}
 
 
 
/**
 
* English: Open a popup with parameters to generate an array.
 
* The number of rows/columns can be modified. Some additional
 
* parameters are related to templates available on :fr
 
 
  *
 
  *
  * @author: fr:user:dake
+
  * Since Common.js isn't a gadget, there is no place to declare its
* @version: 0.1
+
  * dependencies, so we have to lazy load them with mw.loader.using on demand and
*/
+
* then execute the rest in the callback. In most cases these dependencies will
 
+
  * be loaded (or loading) already and the callback will not be delayed. In case a
function popupTableau() {
+
  * dependency hasn't arrived yet it'll make sure those are loaded before this.
  var popup = window.open('','name','height=400,width=500');
 
 
 
  javaCode =  '<script type="text\/javascript">function insertCode(){';
 
  javaCode += 'var row = parseInt(document.paramForm.inputRow.value); ';
 
  javaCode += 'var col = parseInt(document.paramForm.inputCol.value); ';
 
  javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; ';
 
  javaCode += 'var styleLine = document.paramForm.inputLine.checked; ';
 
  javaCode += 'window.opener.generateTableau(col,row,styleHeader,styleLine); ';
 
  javaCode += '}<\/script>';
 
 
 
  popup.document.write('<html><head><title>Paramètres du tableau</title>');
 
  popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>');
 
  popup.document.write('<style type="text\/css" media="screen">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>');
 
  popup.document.write(javaCode);
 
  popup.document.write('</head><body>');
 
  popup.document.write('<p>Veuillez entrer les paramètres du tableau : </p>');
 
  popup.document.write('<form name="paramForm">');
 
  popup.document.write('Nombre de lignes : <input type="text" name="inputRow" value="3" ><p>');
 
  popup.document.write('Nombre de colonnes : <input type="text" name="inputCol" value="3" ><p>');
 
  popup.document.write('Mise en forme (wikitable) : <input type="checkbox" name="inputHeader" checked="1" ><p>');
 
  popup.document.write('Lignes grises alternées : <input type="checkbox" name="inputLine" checked="0" ><p>');
 
  popup.document.write('</form">');
 
  popup.document.write('<p><a href="javascript:insertCode()"> Insérer le code dans la fenêtre d\'édition</a></p>');
 
  popup.document.write('<p><a href="javascript:self.close()"> Fermer</a></p>');
 
  popup.document.write('</body></html>');
 
  popup.document.close();
 
}
 
 
 
/**
 
* Insertion de nouveaux boutons dans la barre d'outil
 
  */
 
 
 
function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) {
 
  mwCustomEditButtons[mwCustomEditButtons.length] =
 
    {"imageId": imageId,
 
    "imageFile": imageFile,
 
    "speedTip": speedTip,
 
    "tagOpen": tagOpen,
 
    "tagClose": tagClose,
 
    "sampleText": sampleText};
 
}
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png',
 
                'Tableau',
 
                '{|\n|-\n|\n|\n|}',
 
                '',
 
                '',
 
                'mw-editbutton-array');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c9/Button_strike.png',
 
                'Rayer',
 
                '<s>',
 
                '</s>',
 
                '',
 
                'mw-editbutton-strike');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png',
 
                'Énumération',
 
                '\n# élément 1\n# élément 2\n# élément 3',
 
                '',
 
                '',
 
                'mw-editbutton-enum');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png',
 
                'Liste',
 
                '\n* élément A\n* élément B\n* élément C',
 
                '',
 
                '',
 
                'mw-editbutton-liste');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/9/9e/Btn_toolbar_gallery.png',
 
                'Galerie d\'images',
 
                '\n<gallery>\nImage:Exemple.jpg|[[Tournesol]]\nImage:Exemple1.jpg|[[La Joconde]]\nImage:Exemple2.jpg|Un [[hamster]]\n</gallery>\n{{message galerie}}',
 
                '',
 
                '',
 
                'mw-editbutton-gallery');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png',
 
                'Commentaire',
 
                '<!--',
 
                '-->',
 
                '',
 
                'mw-editbutton-comment');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/47/Button_redir.png',
 
                'Redirection',
 
                '#REDIRECT [[',
 
                ']]',
 
                'nom de la destination',
 
                'mw-editbutton-redir');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png',
 
                'Catégorie',
 
                '[[Catégorie:',
 
                ']]',
 
                'nom de la catégorie',
 
                'mw-editbutton-category');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/3b/Button_template_alt.png',
 
                'Modèle',
 
                '{{',
 
                '}}',
 
                'modèle ou page à inclure',
 
                'mw-editbutton-template');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c4/Button_ref.png',
 
                'Référence',
 
                '<ref>',
 
                '</ref>',
 
                'référence, citation ou lien',
 
                'mw-editbutton-ref');
 
 
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/6/64/Buttonrefvs8.png',
 
                'Index des références',
 
                '== Notes et références ==\n<references />',
 
                '',
 
                '',
 
                'mw-editbutton-references');
 
 
 
var voirAussi = '<!-- Suggestion de présentation des annexes. Aide : http://fr.wikipedia.org/wiki/Aide:Note -->\n'
 
+ '== Notes et références de l\'article ==\n'
 
+ '<references/>\n'
 
+ '== Voir aussi ==\n'
 
+ '=== Articles connexes ===\n'
 
+ '* [[À remplacer]]\n'
 
+ '*\n'
 
+ '=== Liens et documents externes ===\n'
 
  + '*\n';
 
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/bb/Seealso.png',
 
                'Section Voir aussi',
 
                voirAussi,
 
                '',
 
                '',
 
                'mw-editbutton-voiraussi');
 
 
 
/**
 
  * Changer le lien du bouton de création de tableau et supprime le bouton signature sur les articles
 
*/
 
function changButtons() {
 
  toolbarArray = document.getElementById('mw-editbutton-array');
 
  if (toolbarArray) {
 
    toolbarArray.onclick = function() {
 
      popupTableau();
 
      return false;
 
    }
 
  }
 
 
 
  var btnSigImg = document.getElementById('mw-editbutton-signature');
 
  if (btnSigImg && wgNamespaceNumber == 0) btnSigImg.style.display = "none";
 
}
 
addOnloadHook(changButtons);
 
 
 
 
 
/**
 
* Désactiver le bouton Sauvegarder à la première édition
 
* English : Force IP to preview before saving changes.
 
* Copyright Marc Mongenet, 2006
 
* Plyd 05/2007: add "after preview" in the button to prevent misunderstanding from beginners
 
 
  */
 
  */
function forcePreview() {
 
  if (wgUserName != null || wgAction != "edit") return;
 
  saveButton = document.getElementById("wpSave");
 
  if (!saveButton) return;
 
  saveButton.disabled = true;
 
  saveButton.value = "Sauvegarder (après prévisualisation)";
 
  saveButton.style.fontWeight = "normal";
 
  document.getElementById("wpPreview").style.fontWeight = "bold";
 
}
 
 
addOnloadHook(forcePreview);
 
 
 
// Permet d'afficher les catégories cachées pour les contributeurs enregistrés, en ajoutant un (+) à la manière des boîtes déroulantes
 
 
function hiddencat()
 
{
 
var cl = document.getElementById('catlinks');          if(!cl) return;
 
var hc = document.getElementById('mw-hidden-catlinks'); if(!hc) return;
 
var nc = document.getElementById('mw-normal-catlinks'); if(!nc) return;
 
if(hc.className == 'mw-hidden-cats-hidden')
 
{
 
  var ahc = ' | <a onclick="javascript:toggleHiddenCats();" id="mw-hidden-cats-link" style="cursor:pointer; color:black;" title="Cet article contient des catégories cachées">[+]</a>';
 
  document.getElementById('mw-normal-catlinks').innerHTML += ahc;
 
}
 
}
 
function toggleHiddenCats()
 
{
 
var hc = document.getElementById('mw-hidden-catlinks');
 
if(hc.className == 'mw-hidden-cats-hidden')
 
{
 
  hc.setAttribute('class', 'mw-hidden-cat-user-shown');
 
  document.getElementById('mw-hidden-cats-link').innerHTML = '[—]';
 
}
 
else
 
{
 
  hc.setAttribute('class', 'mw-hidden-cats-hidden');
 
  document.getElementById('mw-hidden-cats-link').innerHTML = '[+]';
 
}
 
}
 
 
addOnloadHook(hiddencat);
 
 
//</nowiki>
 

Aktuální verze z 25. 6. 2017, 22:18

/**
 * Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
 * loaded for all users on every wiki page. If possible create a gadget that is
 * enabled by default instead of adding it here (since gadgets are fully
 * optimized ResourceLoader modules with possibility to add dependencies etc.)
 *
 * Since Common.js isn't a gadget, there is no place to declare its
 * dependencies, so we have to lazy load them with mw.loader.using on demand and
 * then execute the rest in the callback. In most cases these dependencies will
 * be loaded (or loading) already and the callback will not be delayed. In case a
 * dependency hasn't arrived yet it'll make sure those are loaded before this.
 */