/* generated javascript */ var skin = 'monobook'; var stylepath = '/skins-1.5'; /* MediaWiki:Common.js */ /* 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, ... : /* * Fonctions générales de lancement de fonctions ou de script */ function addLoadEvent(func) { addOnloadHook(func); } /** * insertAfter : insérer un élément dans une page */ function insertAfter(parent, node, referenceNode) { parent.insertBefore(node, referenceNode.nextSibling); } /** * getElementsByClass : rechercher les éléments de la page dont le paramètre "class" est celui recherché */ function getElementsByClass(searchClass, node, tag) { if (node == null) node = document; if (tag == null) tag = '*'; return getElementsByClassName(node, tag, searchClass); } /** * Teste si un élément contient la classe CSS spécifiée * Utilise des expressions régulières et un cache pour de meilleures perfs * Fonction importée depuis [[:en:MediaWiki:Common.js]] * Auteurs : [[:en:User:Mike Dillon]], [[:en:User:R. Koot]], [[:en:User:SG]] */ var hasClass = (function () { var reCache = {}; return function (element, className) { return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); }; })(); /** * Insérer un JavaScript d'une page particulière, idée de Mickachu */ function loadJs(page) { document.write(''); } /** * Projet JavaScript */ function obtenir(name) { loadJs('MediaWiki:JSScripts/' + name); } /** * Récupère la valeur du cookie */ function getCookieVal(name) { var cookiePos = document.cookie.indexOf(name + "="); var cookieValue = false; if (cookiePos > -1) { cookiePos += name.length + 1; var endPos = document.cookie.indexOf(";", cookiePos); if (endPos > -1) cookieValue = document.cookie.substring(cookiePos, endPos); else cookieValue = document.cookie.substring(cookiePos); } return cookieValue; } /* Fonctions de remplissage automatique ------------------------------------ */ function InitPaS(page_name) { return "\n" + "{{subst:Initialiser PàS|" + page_name + "|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}\n" + ""; } function InitLANN(page_name) { return "\n" + "{{subst:Initialiser LANN|" + page_name + "|~~~~}}\n" + ""; } function InitIaS(page_name) { return "\n" + "{{subst:Préchargement Image à Supprimer|" + page_name + "|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}\n" + ""; } function InitPAdQ(page_name) { return "\n\n" + "{{subst:Initialiser PAdQ|" + page_name + "|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}"; } function InitIaA(page_name) { return "\n" + "{{subst:Amélioration image}}"; } function InitPCP(page_name) { return "\n" + "{{subst:Initialiser PCP|" + page_name + "|~~~~}}\n" + ""; } function InitArbReq(page_name) { return "\n" + "{{subst:Wikipédia:Comité d'arbitrage/Arbitrage/Modèle}}\n" + ""; } function InitDiscArbReq(page_name) { return "\n" + "{{subst:Discussion Wikipédia:Comité d'arbitrage/Arbitrage/Modèle}}"; } function InitCdl(page_name) { return "\n" + "\n\n" + "{{subst:Initialiser Comité de lecture2}}\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" + "\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 "\n\n" + "{{subst:Initialiser PBA|" + page_name + "|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}"; } 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) ); /** * 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 : â ê î ô û" */ function addSpecialCharsetHTML(title, charsHTML) { var specialchars = document.getElementById('specialcharsets'); if (!specialchars) return; // Ajout d'un nouvel item au menu déroulant var select = specialchars.getElementsByTagName("select")[0]; var opt = document.createElement("option"); opt.appendChild(document.createTextNode(title)); select.appendChild(opt); // 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.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, "" + chars + ""); } /* Espace Référence ---------------- */ /* * Choix du mode d'affichage des références * @note L'ordre de cette liste doit correspondre a celui de Modèle:Édition ! */ function addBibSubsetMenu() { var specialBib = document.getElementById('specialBib'); if (!specialBib) return; specialBib.style.display = 'block'; menu = ''; specialBib.innerHTML = specialBib.innerHTML + menu; /* default subset - try to use a cookie some day */ chooseBibSubset(0); } // select subsection of special characters function chooseBibSubset(s) { var l = document.getElementsByTagName('div'); for (var i = 0; i < l.length ; i++) { if(l[i].className == 'BibList') l[i].style.display = s == 0 ? 'block' : 'none'; else if(l[i].className == 'WikiNorme') l[i].style.display = s == 1 ? 'block' : 'none'; else if(l[i].className == 'BibTeX') l[i].style.display = s == 2 ? 'block' : 'none'; else if(l[i].className == 'ISBD') l[i].style.display = s == 3 ? 'block' : 'none'; else if(l[i].className == 'ISO690') l[i].style.display = s == 4 ? 'block' : 'none'; } } addOnloadHook(addBibSubsetMenu); /* Barre d'outil ------------- */ /** * 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; iParamètres du tableau'); popup.document.write(''); 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); } hookEvent('load', 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 , 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 et encourager à faire de fr.wikipedia.org une page de démarrage. 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 += " [masquer]"; 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); // /* MediaWiki:Monobook.js (deprecated; migrate to Common.js!) */ /* Déplacé vers [[MediaWiki:Common.js|Common.js]] */