MediaWiki:Common.js/edit.js
De NVCwiki
< MediaWiki:Common.js
Révision datée du 6 septembre 2010 à 21:46 par Dieudo (discussion | contributions) (Source : http://fr.wikipedia.org/wiki/MediaWiki:Common.js/edit.js)
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.
/** * Applications spécifiques à la page d'édition * <nowiki> */ /* todo : migrer celles qui ne sont pas vitales dans les gadgets */ /** * 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 = "Publier (après prévisualisation)"; saveButton.style.fontWeight = "normal"; document.getElementById("wpPreview").style.fontWeight = "bold"; } addOnloadHook(forcePreview); /** * Fonctions de remplissage automatique */ function InitPDDvide(page_name) { return ""; } function InitIaS(page_name) { return "<!-- Publier 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 InitIaA(page_name) { return "<!-- Publier la page pour l'initialiser puis suivre les instructions -->\n" + "{{subst:Amélioration image}}"; } function InitArbReq(page_name) { return "<!-- Ne pas indexer la page par les robots -->\n" + "__NOINDEX__ \n" + "<!-- Publier 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 "<!-- Ne pas indexer la page par les robots -->\n" + "__NOINDEX__ \n" + "<!-- Publier la page pour l'initialiser -->\n" + "{{subst:Discussion Wikipédia:Comité d'arbitrage/Arbitrage/Modèle}}"; } function InitCdl(page_name) { return "<!-- Publier 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 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('Discussion_Wikipédia:Images_à_supprimer/', InitPDDvide), new Array('Wikipédia:Images_à_supprimer/', InitIaS), new Array('Discussion_Wikipédia:Comité_d\'arbitrage/Arbitrage/', InitDiscArbReq), new Array('Wikipédia:Comité_d\'arbitrage/Arbitrage/', InitArbReq), new Array('Discussion_Wikipédia:Comité_de_lecture/', InitPDDvide), new Array('Wikipédia:Comité_de_lecture/', InitCdl), new Array('Discussion_Portail:Littérature/Invitation_à_la_lecture/Sélection/', InitPDDvide), 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 * @version: 0.1 */ function popupTableau() { 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('<label for="popuptableau-inputrow">Nombre de lignes :</label> <input type="text" name="inputRow" value="3" id="popuptableau-inputrow"><p>'); popup.document.write('<label for="popuptableau-inputcol">Nombre de colonnes :</label> <input type="text" name="inputCol" value="3" id="popuptableau-inputcol"><p>'); popup.document.write('<label for="popuptableau-inputheader">Mise en forme (wikitable) :</label> <input type="checkbox" name="inputHeader" checked="1" id="popuptableau-inputheader"><p>'); popup.document.write('<label for="popuptableau-inputline">Lignes grises alternées :</label> <input type="checkbox" name="inputLine" checked="0" id="popuptableau-inputline"><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 */ 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>\nFichier:Exemple.jpg|[[Tournesol]]\nFichier:Exemple1.jpg|[[La Joconde]]\nFichier: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', '#REDIRECTION[[', ']]', '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{{Références}}', '', '', 'mw-editbutton-references'); var voirAussi = '== Notes et références ==\n' + '{{Références}}\n\n' + '== Annexes ==\n' + '=== Articles connexes ===\n' + '* [[À remplacer]]\n\n' + '=== Liens externes ===\n' + '*\n\n' + '=== Bibliographie ===\n' + '* [[À remplacer]]\n\n' addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/bb/Seealso.png', 'Section Annexes', 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); //</nowiki>