Un article de Wikipédia, l'encyclopédie libre.
Cette page constitue une liste non exhaustive des principales fonctions ajoutées au monobook javascript sur la Wikipédia francophone, ainsi que des personnalisations du monobook CSS qui leur sont complémentaires. Ces fonctions modifient significativement l'interface de Wikipédia dans des buts précis et peuvent ralentir le chargement des pages, vérifiez donc qu'elles vous sont utiles avant de les adopter.
Procédure à suivre :
- éditer la page Utilisateur:Votre_nom_d'utilisateur/monobook.js (ou Utilisateur:Votre_nom_d'utilisateur/monobook.css le cas échéant)
- copier le bout de code désiré dans cette page
- sauver et « recharger » (voir les instructions au sommet de la page)
En cas de problèmes, Regarder dans la console Javascript de votre navigateur la présence de messages d'erreurs concernant monobook.js. Si vous avez l'âme d'un développeur, essayez Firebug avec Firefox pour trouver le problème. Si rien ne fonctionne, contactez l'auteur du script :)
[modifier] Pour tout contributeur
[modifier] Liste de suivi améliorée
[modifier] Gestion améliorée
Pour un nettoyage rapide de la liste de suivi ! Permet de cocher à sa place les différents espaces de noms et bien plus encore. Sélection automatique des liens rouges, possibilité de définir ses propres expressions rationnelles pour sélectionner par exemple les sous-pages du bistro, toutes les images, etc.
Le tout via la page Special:Watchlist/edit.
Gestion améliorée
var suiviManagerAllPages = new Array();
function SuiviManagerRegexp(regexp)
{
var match = new RegExp(regexp);
for (var i=0;i<suiviManagerAllPages.length;i++) {
var pageName = suiviManagerAllPages[i].childNodes[0].getAttribute("value");
if (match.test(pageName)) {
suiviManagerAllPages[i].childNodes[0].checked=true;
}
}
}
function SuiviManagerLiensRouges()
{
for (var i=0;i<suiviManagerAllPages.length;i++) {
var pageClass = suiviManagerAllPages[i].childNodes[2].getAttribute("class");
if (pageClass && pageClass=="new") {
suiviManagerAllPages[i].childNodes[0].checked=true;
}
}
}
function SuiviManagerDeselect()
{
for (var i=0;i<suiviManagerAllPages.length;i++) {
suiviManagerAllPages[i].childNodes[0].checked=false;
}
}
function SuiviManager() {
if (document.URL.indexOf("http://fr.wikipedia.org/wiki/Special:Watchlist/edit")!=0) return;
var a=-1;
var interfaceMsg = new Array();
var regexpList = new Array();
//////////////////////////////////////////////////
// Expressions régulières et liens de l'interface
//
// besoin d'aide pour les regexp ?
// http://www.commentcamarche.net/javascript/jsregexp.php3
//////////////////////////////////////////////////
interfaceMsg[++a] = "<b>Tout cocher</b>";
regexpList[a] = "^.*";
interfaceMsg[++a] = "Utilisateurs";
regexpList[a] = "^Utilisateur:";
interfaceMsg[++a] = "Wikipédia:*";
regexpList[a] = "^Wikipédia:";
interfaceMsg[++a] = "Sous-pages de PàS";
regexpList[a] = "^Wikipédia:Pages à supprimer\/";
interfaceMsg[++a] = "Sous-pages de PàV";
regexpList[a] = "^Wikipédia:Pages à vérifier\/";
interfaceMsg[++a] = "Pages du bistro";
regexpList[a] = "^Wikipédia:Le Bistro\/";
interfaceMsg[++a] = "Images";
regexpList[a] = "^Image:";
interfaceMsg[++a] = "Modèles";
regexpList[a] = "^Modèle:";
interfaceMsg[++a] = "Aide";
regexpList[a] = "^Aide:";
interfaceMsg[++a] = "Catégories";
regexpList[a] = "^Catégorie:";
interfaceMsg[++a] = "Portails";
regexpList[a] = "^Portail:";
//////////////////////////////////////////////////
var topTag = document.getElementById("contentSub")
// récupère toutes les pages
var watchlist = document.getElementsByTagName("ul");
for (u=0;u<watchlist.length;u++) {
var entries = watchlist[u].getElementsByTagName("li");
for (i=0;i<entries.length;i++) {
suiviManagerAllPages.push(entries[i]);
}
}
// prépare la mini-interface
var str = "<div style=\"background-color:#8ecfe4;font-size:1px;height:8px;border:1px solid #AAAAAA;-moz-border-radius-topright:0.5em;-moz-border-radius-topleft:0.5em;\"></div>"
+ "<div style=\"border:1px solid #6ac1de;border-top:0px solid white;padding:5px 5px 0 5px;margin-bottom:3ex;\"><p>"
+ "<div style=\"float: left; text-align: left; white-space: nowrap;\"></div>"
for (var cpt = 0; cpt < interfaceMsg.length; cpt ++) {
str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpList[cpt] + "')\">"
+ interfaceMsg[cpt]
+ " ·</a> "
}
str += "<a href=\"javascript:SuiviManagerLiensRouges()\">"
+ "Retirer les liens rouges"
+ " ·</a> "
str += "<a href=\"javascript:SuiviManagerDeselect()\">"
+ "<b>Enlever toutes les coches</b>"
+ " ·</a> "
topTag.innerHTML = topTag.innerHTML + "<br clear=all />" + str + "<p></div>"
}
addLoadEvent(SuiviManager);
[modifier] stopper plus facilement un suivi
[modifier] script de Dake : option affichage amélioré de la liste de suivi désactivé
Testé avec MediaWiki 1.6a - Ne fonctionne pas si "Utiliser l'affichage amélioré de la liste de suivi (certains navigateurs seulement)" est activé dans les préférences
Dans la liste de suivi, il faut passer par afficher et modifier la liste complète pour enlever un seul suivi. Avec ce script, un lien (stop) est ajouté à gauche de (diff) (hist) dans la liste de suivi (une fois la page complètement chargée). Un clic sur le lien et l'article est retiré de la liste. Cela est particulièrement utile si le suivi automatique a été activé dans les préférences.
Code pour « stopper plus facilement un suivi - Affichage amélioré desactivé »
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
function OptimizedSuivi()
{
if (document.URL.indexOf("http://fr.wikipedia.org/wiki/Special:Watchlist")==0 ||
document.URL.indexOf("http://fr.wikipedia.org/w/index.php?title=Special:Watchlist")==0 ){
var allDays = document.getElementsByTagName("ul");
for (i=0; i<allDays.length; i++) {
if (allDays[i].getAttribute("class") == "special") {
var artList = allDays[i].getElementsByTagName("li");
for (j=0; j<artList.length; j++) {
var elem = artList[j];
var aTag = elem.getElementsByTagName("a");
var articleName = aTag[0].getAttribute("title");
var stopWatch = "/w/index.php?title=" + articleName + "&action=unwatch"
var newElement = document.createElement("a");
newElement.setAttribute("href",stopWatch);
var newText = document.createTextNode("stop");
newElement.appendChild(newText);
var newPar = document.createTextNode(") (")
// séparation des cas (nouvel article, ou déjà existant)
if (aTag[0].childNodes[0].data == "diff") {
insertAfter(elem, newPar, aTag[1]);
} else {
insertAfter(elem, newPar, aTag[0]);
}
insertAfter(elem, newElement, newPar);
}
}
}
}
}
addLoadEvent(OptimizedSuivi);
[modifier] script de Seb35 : option affichage amélioré de la liste de suivi activé
Fonctionne avec MediaWiki 1.6a - uniquement sous Opera - rajoute un lien (stop) à la liste de suivi lorsque l'affichage amélioré est activé.
Code pour « stopper plus facilement un suivi - Affichage amélioré activé »
/************************************************************/
/* Ajoute un bouton stop à la liste de suivi */
/* pour suivi amélioré activé, sinon voir le script de Dake */
/* Ne marche que sur Opera, voir texte */
/* Auteur : Seb35 */
/************************************************************/
function suivi_main()
{
if(!/Special:Watchlist/i.test(window.location) || /edit/i.test(window.location)) return;
var allLinks = document.getElementById('bodyContent').getElementsByTagName('a');
var i=0;
for(; i<allLinks.length && allLinks[i].getAttribute('title') != 'Special:Watchlist'; i++);
i+=9;
for(; i<allLinks.length; i+=7)
{
while(allLinks[i].parentNode.getAttribute('class') == 'comment' || allLinks[i].parentNode.getAttribute('class') == 'autocomment') i++;
var titre = allLinks[i].getAttribute('title');
if(allLinks[i+1].text != 'diff') i--;
allLinks[i+2].insertAdjacentHTML('afterEnd', '; <a href="/w/index.php?title=' + titre + '&action=unwatch" title="' + titre + '">stop</a>');
if(/Contributions/i.test(allLinks[i+4])) i--;
}
}
addLoadEvent(suivi_main);
[modifier] Masquer les bots dans la liste de suivi
désormais, on peut masquer dans les préférences utilisateurs les modifications des bots
Ce script permet de masquer les bots dans la liste de suivi. Testé avec Internet Explorer 6 et Firefox 1.0.6. (mise à jour le 11/04/06)
Note: La liste des bots est ici inscrite en dur dans le javascript. Il faut donc la mettre à jour à la main. Cela semble à la portée de tout le monde :)
Code pour « Masquer les bots dans la liste de suivi »
function getArticleName()
{
var strOut = document.title
// case search
if (strOut == "Rechercher - Wikipédia")
return document.getElementById("lsearchbox").value
// case article being modified
strOut = strOut.replace("modification de ", "").replace(" - Modifier", "")
strOut = strOut.replace(" - Prévisualiser", "").replace(" - Wikipédia", "")
return strOut
}
//liste de suivi et bots
// récupération liste des bots
var bots = new Array("AlphaBot", "Badmood", "Chlewbot", "Chobot", "CyeZBot", "DasBot", "Diderobot", "Eskimbot", "Fabbot", "FlaBot", "Gpvosbot", "HasharBot", "Hexabot", "KocjoBot", "Koyuki", "Loveless", "MMBot", "MedBot", "MoriBot", "PieRRoBoT", "Probot", "Robbot", "RobotE", "RobotQuistnix", "SashatoBot", "Solbot", "StéBot", "Ugur Basak Bot", "WartBot", "YurikBot", "Zwobot")
function addButtonhideBots() {
if (getArticleName() != "Liste de suivi")
return
var span = document.createElement("span")
var a = document.createElement("a")
a.setAttribute("id", "hideBots")
a.setAttribute("href", "javascript: hideBotsEdits()")
a.innerHTML = "Masquer"
span.innerHTML = " "
span.appendChild(a)
span.innerHTML += " les bots"
var p = document.getElementById("bodyContent").getElementsByTagName("p")[1]
p.insertBefore(span, p.getElementsByTagName("form")[0])
hideBotsEdits()
}
function hideBotsEdits() {
var disp = ""
if (document.getElementById("hideBots").innerHTML == "Masquer") {
document.getElementById("hideBots").innerHTML = "Afficher"
disp = "none"
} else {
document.getElementById("hideBots").innerHTML = "Masquer"
disp = "list-item"
}
var uls = document.getElementsByTagName("ul")
for (var cpt = 0 ; cpt < uls.length ; cpt++) {
if (uls[cpt].className == "special") {
var lis = uls[cpt].getElementsByTagName("li")
for (var cpt2 = 0 ; cpt2 < lis.length ; cpt2++) {
for (var cpt3 = 0 ; cpt3 < bots.length ; cpt3++)
if (lis[cpt2].getElementsByTagName("a")[3].innerHTML == bots[cpt3])
lis[cpt2].style.display = disp
}
}
}
}
addLoadEvent(addButtonhideBots)
[modifier] Edition améliorée
[modifier] Ajout de boutons pour commenter les modifications courantes
Attention avec les apostrophes: Il faut utiliser l'apostrophe "typographique" (’) au lieu de l'apostrophe "informatique" (') ou faire précéder l'apostrophe (') d'un antislash (\).
Code pour « Ajout de boutons pour commenter les modifications courantes »
function addToSummary(str)
{
document.editform.wpSummary.value += " " + str
}
function DeluxeSummary()
{
var sumLbl = document.getElementById("wpSummaryLabel")
if (sumLbl)
{
//élargissement boite de résumé
var sumInput = document.getElementById("wpSummary")
sumInput.style.width = "90%"
var titles = new Array()
titles.push("+ ébauche")
titles.push("+ cat")
titles.push("+ image")
titles.push("+ interwiki")
titles.push("+ portail")
titles.push("- image")
titles.push("- lien ext")
titles.push("corr lien int")
titles.push("lien ext -> lien int")
titles.push("MeP")
titles.push("ortho/gram")
titles.push("retouches")
titles.push("ajInfo")
titles.push("rangmt")
titles.push("recat")
titles.push("PàS conservé")
var inputs = new Array()
inputs.push("+ {{ébauche}}")
inputs.push("+ catégorie")
inputs.push("+ image")
inputs.push("+ liens interwiki")
inputs.push("+ portail")
inputs.push("- image manquante")
inputs.push("- lien externe")
inputs.push("correction lien interne")
inputs.push("conversion lien externe en lien interne")
inputs.push("mise en page")
inputs.push("correction orthographe/grammaire")
inputs.push("diverses retouches")
inputs.push("ajout d’infos")
inputs.push("rangement interwikis/catégories")
inputs.push("changement catégorie")
inputs.push("article listé sur PàS - retrait du bandeau (conservé)")
var str = ""
for (var cpt = 0; cpt < titles.length; cpt ++)
{
str += "<a href=\"javascript:addToSummary('" + inputs[cpt] + "')\""
+ " class=\"sumLink\" title=\"Ajouter '" + inputs[cpt] +"' dans la boîte de résumé\">"
+ titles[cpt]
+ " ·</a> "
}
sumLbl.innerHTML = str + "<br />" + sumLbl.innerHTML
}
}
addLoadEvent(DeluxeSummary)
[modifier] Ajout d'icônes à la barre d'édition
Testé avec MediaWiki 1.6a - ajoute quelques icônes à la barre d'édition. C'est configurable mais il faut faire attention à bien subdiviser le message sinon Mediawiki le transforme (sauf si des balises nowiki sont mises en commentaire au début et à la fin du monobook). Les trois boutons par défaut sont des {{subst:Bienvenue sur ta page}} ~~~~, etc..
- Bouton vide : 
Autres icônes disponibles (réalisées par Eskimo, Wiz, Liquid_2003 et Rogilbert) :
-
-
-
-
-
-
-
-
-
-

- Modif Darkoneko 2 mai 2006 à 17:44 (CEST) :
- transformation des tab[0], tab[1]... en tab[a] avec incrementation. Cela evite notamment d'avoir a changer tous les numeros lorsqu'on veux supprimer un bouton au début de la barre
- regroupement de chaque message/image/commentaire par bouton (pour avoir une seule variable à incrementer, et independamment de ça, je trouve que c'est plus logique).
Code pour « Ajout d'icônes à la barre d'édition »
function DeluxeBar() {
if (document.createTextNode) {
var toolbar = document.getElementById("toolbar");
if (!toolbar) return;
var messages = new Array()
var images = new Array()
var commentaires = new Array()
var a=-1; //Le décompte commence à -1 avec une incrementation sur le premier message, pour éviter tout probleme en cas d'inversion ou suppression du premier message
///// zone personnalisable ////
// le texte a été splitté sinon Mediawiki casse tout...
messages[++a] = "{{subst:" + "Bienvenue sur ta page" + "}}" + "~~" + "~~";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/e/eb/Button_accueilB.png";
commentaires[a] = "Bienvenue sur ta page!"
messages[++a] = "{{subst:" + "Bienvenue" + "}}" + "~~" + "~~";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/e/eb/Button_accueilB.png";
commentaires[a] = "Bienvenue !"
messages[++a] = "{{" + "vandale bloqué" + "}}" + "~~" + "~~";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/0/00/Button_vandale.png";
commentaires[a] = "Blocage d'un vandale après avertissement(s)"
messages[++a] = "{{" + "vandale bloqué sans avertissement" + "}}" + "~~" + "~~";
images[a] = "http://upload.wikimedia.org/wikipedia/commons/f/f0/Bouton_Vandale0.png";
commentaires[a] = "Blocage pour fait pouvant se passer d'avertissement"
messages[++a] = "{{" + "Vandalisme|page" + "}}" + "~~" + "~~";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/a/ad/Button_vandale2.png";
commentaires[a] = "Avertissement vandalisme";
messages[++a] = "{{" + "Bienvenue spammeur" + "}}" + "~~" + "~~";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/f/fb/Button_spam2.png";
commentaires[a] = "Avertissement spam" ;
messages[++a] = "{{subst:" + "Utilisateur:Dake/Traité||~~" + "~~" + "}}";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/d/d9/Button_trait%C3%A9.png";
commentaires[a] = "Traité"
messages[++a] = "{{subst:" + "Utilisateur:Wart Dark/TraitéConserver||~~" + "~~" + "}}";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/a/ae/Button_trait%C3%A9conserver.png";
commentaires[a] = "Traité : page conservée"
messages[++a] = "{{subst:" + "Utilisateur:Dake/TraitéSupprimer||~~" + "~~" + "}}";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/9/96/Button_trait%C3%A9supprimer.png";
commentaires[a] = "Traité : page supprimée"
messages[++a] = "{{subst:" + "Utilisateur:Eskimo/Copyvio|page|URL|titre" + "}} " + "~~" + "~~";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/e/e5/Button_copyvio.png";
commentaires[a] = "Violation de copyright"
messages[++a] = "{{" + "copie de site|URL|Titre" + "}}";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/e/e5/Button_copyvio.png";
commentaires[a] = "Violation de copyright";
messages[++a] = "{{" + "suppression" + "}}";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/f/f8/Button_suppr.png";
commentaires[a] = "Proposé à la suppression";
messages[++a] = "{{subst:" + "Utilisateur:Meanos/Modèles/PAdQ rejetée|premier/second tour|0|0|0|-|~~" + "~~}}";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/c/cf/Button_PAdQ_rejet.png";
commentaires[a] = "Notification de rejet de la proposition"
messages[++a] = "{{subst:" + "Utilisateur:Meanos/Modèles/PAdQ validée|premier/second tour|0|0|0|-|~~" + "~~}}";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/2/29/Button_PAdQ_validation.png";
commentaires[a] = "Notification de validation de la proposition"
messages[++a] = "{{subst:" + "Utilisateur:Dake/Toolbox/LicenceInconnue|test.jpg}}";
images[a] = "http://upload.wikimedia.org/wikipedia/fr/6/67/Button_%C3%A9clair.png"
commentaires[a] = "Image - licence inconnue ou imprécise"
////////////////////////////////
for (var i=0;i<messages.length;i++) {
var img = document.createElement("img");
img.setAttribute("src", images[i]);
var ref = document.createElement("a");
ref.setAttribute("href", "javascript:insertTags('', \"" + messages[i] + "\", '');" +
"javascript:changeSummary(\"" + commentaires[i] + "\");" );
ref.setAttribute("title", "" + commentaires[i] + "" );
ref.appendChild(img);
toolbar.appendChild(ref);
}
}
}
function changeSummary(sampleText) {
document.editform.wpSummary.value = sampleText;
}
addLoadEvent(DeluxeBar);
[modifier] Ajouter un bouton pour éditer le premier paragraphe d'une page
Cette fonction ajoute un onglet supplémentaire qui permet de modifier directement le premier paragraphe du texte sans avoir à modifier tout le texte.
Cette nouvelle version corrige quelques défauts de la précédente (l'onglet n'apparaît que s'il est possible de modifier le texte, dans le cas d'une redirection on édite bien la cible de la redirection, et non la source).
Code pour « Ajouter un bouton pour éditer le premier paragraphe d'une page »
function editerPremierParagraphe() {
var modif = document.getElementById("ca-edit").getElementsByTagName("a");
if (modif.length <= 0) return;
var url = modif[0].href;
var a = document.getElementById("p-cactions");
if (a) {
b = a.getElementsByTagName("ul");
if(b.length > 0) {
b[0].innerHTML = b[0].innerHTML
+ '<li><a href="' + url + '§ion=0">modifier 1er paragraphe</a></li>';
}
}
}
addLoadEvent(editerPremierParagraphe);
[modifier] Navigation améliorée
[modifier] onglet de purge
Ce script permet d'ajouter un onglet dont l'usage rafraîchit la page en cours de lecture, c'est à dire vide du cache la page en question et lance son chargement.
Auteur : inconnu au bataillon
Code pour « Onglet de purge »
function OngletPurge() {
var a = document.getElementById("p-cactions");
if (a)
{
var pageName = document.title.replace(" - Wikipédia", "");
b = a.getElementsByTagName("ul");
if(b.length > 0)
{
b[0].innerHTML = b[0].innerHTML
+ '<li id="ca-nstab-user">'
+ '<a href="/w/index.php?action=purge&title=' + pageName + '">purger</a>'
+ '</li>';
}
}
}
addLoadEvent(OngletPurge);
[modifier] Navigation popups
Exemple d'une fenêtre popup
Ce code charge un script - en évolution - permettant lorsque l'on passe le pointeur de la souris sur un lien interne d'afficher dans une fenêtre popups le premier paragraphe de la page concernée ainsi que des liens, entres autres, vers son historique et un ajout dans la liste de suivi.
Voir Navigation popups pour le manuel d'utilisation en français.
Voir popups-strings-fr.js pour la traduction en français.
Code pour « Navigation popups »
document.write('<script type="text/javascript" src="'
+ 'http://fr.wikipedia.org/w/index.php?title=User:Leag/popups-strings-fr.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
Pour ceux qui souhaite mettre le résumé de leur choix lors d'une révocation, il faut ajouter ceci :
popupRevertSummaryPrompt=true;
Pour les administrateurs, n'oubliez pas d'ajouter cette ligne juste après le code ci-dessus pour que les fonctions spécifiques aux administrateurs soient présentes dans le menu :
popupAdminLinks=true;
[modifier] Ajout d'un nombre réduit de liens internes dans la boîte de navigation
Testé avec MediaWiki 1.6a
Code pour « Ajout d'un nombre réduit de liens internes dans la boîte de navigation »
function OptimizedNavig()
{
var a = document.getElementById("p-navigation");
if (a)
{
b = a.getElementsByTagName("ul");
if(b.length > 0)
{
var startUrl = '/w/index.php?title='
var endUrl = '&action=purge'
// liste des URLs
var urls = new Array()
urls[0] = 'Wikipédia:Le Bistro'
urls[1] = 'Wikipédia:Pages à supprimer'
urls[2] = 'Wikipédia:Proposition articles de qualité'
urls[3] = 'WP:BOT'
urls[4] = 'Special:Newimages'
urls[5] = 'Special:Newpages'
urls[6] = 'Special:Blockip'
urls[7] = 'Special:Log/delete'
urls[8] = 'Special:Unusedcategories'
urls[9] = 'Special:Export'
var labels = new Array()
labels[0] = 'Bistro'
labels[1] = 'PàS'
labels[2] = 'pAdQ'
labels[3] = 'Bots'
labels[4] = 'nImgs'
labels[5] = 'nPage'
labels[6] = 'Block'
labels[7] = 'Log/Del'
labels[8] = 'unCat'
labels[9] = 'Export'
for (var i=0;i<urls.length;i+=2) {
tableHTML = '<table valign="top" cellspacing="0" cellpadding="0">'
tableHTML += '<tr>'
tableHTML += '<li><td><a href="' + startUrl + urls[i] + endUrl + '">' + labels[i] + ' | </a></td>'
tableHTML += '<td><a href="' + startUrl + urls[i+1] + endUrl + '">' + labels[i+1] + '</a></td></li>'
tableHTML += '</tr>'
tableHTML += '</table>'
b[0].innerHTML = b[0].innerHTML + tableHTML
}
}
}
}
addLoadEvent(OptimizedNavig);
[modifier] Menu déroulant pour la boîte de navigation
Fonctionne avec MediaWiki 1.6a - Opera - Firefox - IE - Ce script permet de faire des menus déroulants pour mettre beaucoup de liens dans la boîte de navigation (jusqu'à 40-50 sans problèmes je pense). Si vous ne voulez pas mettre de menus déroulants ou que vous avez moins de 7 liens à mettre, il vaut mieux utiliser le script ci-dessus.
J'ai paramétré un petit truc pour que le menu s'ouvre quand la souris reste (ici 300ms) sur le lien, par contre ça ne marche pas avec IE. Sinon pour tous les navigateurs, on peut ouvrir un menu en cliquant dessus.
Code pour « Menu déroulant pour la boîte de navigation »
/******************************************/
/* Amélioration de la boîte de navigation */
/* Auteur : Seb35 */
/* Bistro d'aujourd'hui par Teofilo */
/******************************************/
var isOpen = new Array();
var tempo;
function navigationBox_main()
{
a = document.getElementById('p-navigation').getElementsByTagName('ul')[0];
m = new Array('janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
today = new Date();
jjmoisaa = today.getDate() + '_' + m[today.getMonth()] + '_' + (today.getYear() + 1900);
jjmm = today.getDate() + '/' + (today.getMonth()+1);
//Tableau perso à remplir
var pages = new Array(
'Général',
new Array('/wiki/Wikipédia:Le_Bistro/' + jjmoisaa, 'Le Bistro ' + jjmm,
'/wiki/Wikipédia:Vandalisme_en_cours', 'WP:-(',
'/wiki/Wikipédia:Requête_aux_administrateurs', 'WP:RA'
),
'Maintenance',
new Array('/w/index.php?title=Special:Recentchanges&hideliu=1&limit=200', 'RC IP',
'/wiki/Wikipédia:Pages_à_fusionner', 'WP:PàF',
'/wiki/Wikipédia:Pages_à_supprimer', 'WP:PàS'
)
);
//Liens perso hors menu déroulant
a.innerHTML = a.innerHTML
+ '<li><a href="/wiki/Special:Newpages" title="Special:Newpages">Nouvelles pages</a></li>';
//----------------------------//
//Ne pas modifier ce qui suit //
//----------------------------//
for(i = 0; i<(pages.length)/2; i++)
{
isOpen[i] = 0;
temp = '';
for(j=0; j<(pages[2*i+1].length)/2; j++) temp += '<li><a href="' + pages[2*i+1][2*j] + '">' + pages[2*i+1][2*j+1] + '</a></li>';
a.innerHTML = a.innerHTML
+ '<li>'
+ '<a style="cursor:hand;" onMouseOver="if(!isOpen[' + i + ']) tempo = setTimeout(toggleMenu, 300, ' + (i+1) + ');" '
+ 'onMouseOut="clearTimeout(tempo);" onClick="clearTimeout(tempo); toggleMenu(' + (i+1) + ');" title="' + pages[2*i] + '">'
+ pages[2*i] + '</a>'
+ '</li>'
+ '<div id="MenuToggle' + (i+1) + '" style="display:none;">' + temp + '</div>';
}
}
/************************************************/
/* Ouvre un menu créé par la fonction ci-dessus */
/************************************************/
function toggleMenu(v)
{
if(isOpen[v-1] == 0)
{
document.getElementById('MenuToggle' + v).style.display = 'block';
isOpen[v-1] = 1;
}
else if(isOpen[v-1] == 1)
{
document.getElementById('MenuToggle' + v).style.display = 'none';
isOpen[v-1] = 0;
}
}
addLoadEvent(navigationBox_main);
[modifier] Navigation par onglet
Exemple d'une suite d'onglets
- Auteur : Oz
- Ne fonctionne que pour Firefox
Ce code charge un script - en évolution - permettant d'afficher des articles dans des onglets.
Attention : Il est recommandé de n'utiliser cette fonctionnalité que pour des modèles ou des pages personnelles, en aucun cas pour des articles.
Exemple de code à rajouter dans une page wiki pour créer des onglets :
<!-- default if javascript do not work --------------------->
<div class="MyDefaultTabArea">
{{Utilisateur:Oz/AccueilActualite|{{CURRENTMONTHNAME}}}}
</div>
<!-- tabs, just add a wiki link for eatch one -------------->
<div class="MyTabArea" style="visibility:hidden;display:none">
* [[Utilisateur:Oz/AccueilActualite|{{CURRENTMONTHNAME}}]]
* [[Utilisateur:Oz/Bande dessinée/Actualité|BD]]
* [[Utilisateur:Oz/Robotique/Actualité|Robotique]]
* [[Utilisateur:Oz/Astronautique/Actualités|Astronautique]]
</div>
Code pour « Navigation par onglet»
document.write('<script type="text/javascript" src="'
+ 'http://fr.wikipedia.org/w/index.php?title=User:Oz/tab.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
Page de discussion sur cette fonctionnalitée : Discussion : Navigation par onglet
[modifier] Flèches vers le haut de page à côté des titres
Code pour « Flèches vers le haut de page à côté des titres »
function PageHomeArrows()
{
for (var level = 2; level <= 6; ++level) {
var h = document.getElementsByTagName("h" + level);
for (var i = 0; i < h.length; ++i) {
var arrow = document.createElement("a");
arrow.appendChild(document.createTextNode(" ↑"));
arrow.href = "javascript:window.scrollTo(0,0); void 0;";
h[i].appendChild(arrow);
}
}
}
addLoadEvent(PageHomeArrows);
[modifier] Recherche améliorée
[modifier] Ajout d'un onglet lançant une recherche Google sur le nom de l'article
Testé avec MediaWiki 1.6a - ajoute un onglet "Google" qui permet de lancer une recherche locale ou globale sur Google avec le nom de l'article comme mot-clé. Hégésippe a ajouté quelques liens en plus à la version originale.
Code pour « Ajout d'un onglet lançant une recherche Google sur le nom de l'article »
function googleOnglet() {
var a = document.getElementById("p-cactions");
if (a)
{
var pageName = document.title.replace(" - Wikipédia", "");
b = a.getElementsByTagName("ul");
if(b.length > 0)
{
b[0].innerHTML = b[0].innerHTML
+ '<li id="ca-nstab-user"><font style="color: blue; font-weight: bold; padding-left: 0.5em">G</font>'
+ '<a href="http://www.google.fr/search?num=20&hl=en&safe=off&q=site%3Afr.wikipedia.org+' + pageName + '&btnG=Search">'
+ 'wp-fr</a>'
+ '<a href="http://www.google.fr/search?num=20&hl=en&safe=off&q=site%3Awikipedia.org+' + pageName + '&btnG=Search">'
+ 'wp</a>'
+ '<a href="http://www.google.fr/search?num=20&hl=fr&safe=off&q=' + pageName + '&btnG=Search&meta=lr%3Dlang_fr">'
+ 'web-fr</a>'
+ '<a href="http://www.google.fr/search?num=20&hl=en&safe=off&q=' + pageName + '&btnG=Search">'
+ 'web</a>'
+ '</li>';
}
}
}
addLoadEvent(googleOnglet);
[modifier] Remplacement de la zone de recherche par une recherche avancée
Fonctionne avec MediaWiki 1.6a - Opera - Firefox - IE
Ce script permet de remplacer la zone de recherche (boutons Consulter et Rechercher) par une zone permettant de rechercher sur tous les wikis Wikimedia (Wikipédias, Wiktionnaires, Commons, etc) dans toutes les langues soit en allant directement à l'article (équivalent du bouton Consulter), soit de rechercher avec le moteur de recherche de MediaWiki (bouton Rechercher), soit de rechercher sur un wiki spécifique avec Google, soit sur toutes les Wikipédias avec Google, soit de rechercher un mot sur Google, soit de rechercher un texte avec Google (pour les copyrights). Il y a plusieurs raccourcis des espaces de nom (ex : c: ou cat: pour Catégorie:, u: pour Utilisateur:, article/pàs pour aller à la page de PàS correspondant à article, etc). On peut ouvrir la page soit dans un onglet externe (par défaut), soit dans le même onglet.
Si vous utilisez plutôt Firefox ou IE, il faut faire un peu de présentation sous IE, car les boutons sont tout petits, et changer les paramètres d'ouverture d'une fenêtre sous Firefox et IE.
Pour l'installer et le mémo d'utilisation, voir cette page.
[modifier] Ajouter des liens vers Google/pages liées pour les liens rouges
[modifier] Version originale
Fonctionne avec MediaWiki 1.6a - Opera - Ne marche qu'avec Opera - Ce script permet d'ajouter des liens (ici vers Google et les pages liées) aux liens rouges pour permettre de trouver si l'article existe sous une forme un peu différente (Google) ou si un article est très demandé ou pas (pages liées). Ici, le script n'affiche ces liens que en prévisualisation, mais on peut les garder tout le temps. Le script ne marche pas sous Firefox, ni sous IE.
Code pour « Ajouter des liens vers Google/pages liées pour les liens rouges - Opéra »
/**************************************************************/
/* Ajoute deux liens sur les liens rouges en prévisualisation */
/* Ne marche que sur Opera, voir texte */
/* Auteur : Seb35 */
/**************************************************************/
function liensRouges_main()
{
if(!/\=submit/i.test(window.location)) return; //Retirer cette ligne pour afficher ces liens tout le temps, non uniquement en prévisualisation
var allLinks = document.getElementById('bodyContent').getElementsByTagName('a');
for(i=0; i<allLinks.length; i++)
{
if(allLinks[i].getAttribute('class') == 'new')
{
titre = allLinks[i].getAttribute('title');
allLinks[i].insertAdjacentHTML('afterEnd', ' ('
+ '<a title="Rechercher \'' + titre + '\'" href="http://www.google.com/search?num=100&q=' + titre + '+site:fr.wikipedia.org">google</a>; '
+ '<a title="Pages liées à \'' + titre + '\'" href="/wiki/Special:Whatlinkshere/' + titre + '">liées</a>)');
}
}
}
addLoadEvent(liensRouges_main);
[modifier] Version modifiée pour les autres navigateurs
Cette modification du script précédent affiche un lien pour effectuer une recherche dans Google selon le mot-clé de l'article en rouge. Il est visible en tout temps (pas seulement en prévisualisation). Très utile pour traquer les liens rouges, les mauvais redirects et les schtroumpfiser !
Code pour « Ajouter des liens vers Google/pages liées pour les liens rouges - Autres Navigateurs »
/**************************************************************/
/* Ajoute un lien Google sur les liens rouges */
/* Auteur original : Seb35 */
/* Modifications pour IE/Firefox : Dake */
/**************************************************************/
function liensRouges_main()
{
if(/Spe[cz]ial(?::|%3A)Watchlist/i.test(window.location) || /edit/i.test(window.location)) return;
var allLinks = document.getElementById('bodyContent').getElementsByTagName('a');
for(i=0; i<allLinks.length; i++)
{
if(allLinks[i].getAttribute('class') == 'new')
{
titre = allLinks[i].getAttribute('title');
var newElementOutside = document.createElement("sup");
var newElement = document.createElement("a");
newElement.setAttribute("title",'Rechercher \'' + titre + '\'');
newElement.setAttribute("href", 'http://www.google.com/search?num=100&q=' + titre + '+site:fr.wikipedia.org');
newElement.appendChild(document.createTextNode(" google "));
newElementOutside.appendChild(newElement);
insertAfter( allLinks[i].parentNode, newElementOutside, allLinks[i]);
}
}
}
addLoadEvent(liensRouges_main);
[modifier] Importation sur Commons simplifiée
Cette fonction ajoute dans la boîte à outils un lien vers la page d'importations de fichiers multimédias de Commons
Code pour « Importation sur Commons simplifiée »
function PaletteOutils()
{
var a = document.getElementById("p-tb");
if (a)
{
b = a.getElementsByTagName("ul");
if(b.length > 0)
{
b[0].innerHTML = b[0].innerHTML
+ '<li><span id="n-bistro" title="http://commons.wikimedia.org/wiki/Special:Upload">'
+ '<a href="http://commons.wikimedia.org/wiki/Special:Upload">'
+ 'Importer une image ou un son sur Commons</a></span> </li>'
}
}
}
addLoadEvent(PaletteOutils);
[modifier] Arborescence des catégories
Cette fonction ajoute un onglet sur les pages de catégories donnant accès à une arborescence de la catégorie à l'aide de l'outil CategoryTree. Cette fonction fonctionne sur toutes les wikipédias car le code s'adapte à la langue du wiki.
Code pour « Arborescence des catégories »
// Auteur : Anakin
// Dernière mise à jour : 11 décembre 2005
function CategoryTree()
{
var element = document.getElementById('ca-nstab-category');
if (element)
{
var categoryname = element.firstChild.href;
categoryname = categoryname.substring(7);
var wikiname = categoryname.substring(0, categoryname.indexOf('.'));
var indexofname = categoryname.indexOf(":") + 1;
categoryname = categoryname.substring(indexofname);
var indexofampersand = categoryname.indexOf("&");
if (indexofampersand != -1)
categoryname = categoryname.substring(0, indexofampersand);
var li = document.createElement('li');
li.id = 'ca-categorytree';
var a = document.createElement('a');
a.appendChild(document.createTextNode("Arborescence"));
a.href = 'http://tools.wikimedia.de/~daniel/WikiSense/CategoryTree.php?wikilang=fr&wiki=' + wikiname + '&art=on&cat=' + categoryname;
li.appendChild(a);
document.getElementById('ca-nstab-category').parentNode.appendChild(li);
}
}
addLoadEvent(CategoryTree);
[modifier] Onglet d'utilisation d'une image sur les différents projets Wikimedia
Cette fonction ajoute un onglet sur les pages d'images permettant de lancer une recherche d'utilisation de la dite image avec l'outil check-usage. Comme la précédente cette fonction s'adapte à toutes les Wikipédias.
Code pour « Onglet d'utilisation d'une image sur les différents projets Wikimedia »
// Auteur : Anakin
// Dernière mise à jour : 11 décembre 2005
function ImageUse()
{
var element = document.getElementById('ca-nstab-image');
if (element)
{
var imagename = element.firstChild.href;
var indexofname;
if (imagename.indexOf("http://") != -1)
indexofname = imagename.indexOf(":", 6);
else
indexofname = imagename.indexOf(":");
imagename = imagename.substring(indexofname + 1);
var indexofampersand = imagename.indexOf("&");
if (indexofampersand != -1)
imagename = imagename.substring(0, indexofampersand);
var li = document.createElement('li');
li.id = 'ca-imageuse';
var a = document.createElement('a');
a.appendChild(document.createTextNode("Voir l'utilisation"));
a.href = 'http://www.juelich.de/avatar/check-usage/check-usage.php?filename=' + imagename + '&template';
li.appendChild(a);
document.getElementById('ca-nstab-image').parentNode.appendChild(li);
}
}
addLoadEvent(ImageUse);
[modifier] Onglet Editcount
- Auteur : Educa33e / Suite à demande de Fred.th– le 26 mars 2006, sur le bistro.
Cette fonction ajoute un onglet "editcount" à partir de la page special:Contributions d'un utilisateur, afin d'accèder directement au lien (site externe) des statistiques d'édition de ce contributeur.
Code pour « Onglet Editcount »
/* Lien Editcount */
var tabAction = "p-cactions";
function addECButton()
{
if ( window.location.href.indexOf('Contributions') < 0) return;
var c = document.getElementById('contentSub');
var a = c.getElementsByTagName('a');
name = a[0].innerHTML;
var l = document.getElementById(tabAction);
t = l.innerHTML;
ind = t.toLowerCase().indexOf("</ul>");
before = t.substring(0,ind);
after = t.substring(ind);
pitem = "<li><a href='http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user="+escape(name)+"&dbname=frwiki_p'>"+
"<div id='EditCount' style='display:inline;'>" +
"Editcount" +
"</div></a></li>";
l.innerHTML = before + pitem + after ;
}
addLoadEvent(addECButton);
[modifier] Ajout de l'historique/pages liées sur les Special:Shortpages
Testé avec MediaWiki 1.6a
Code pour « Ajout de l'historique/pages liées sur les Special:Shortpages »
function OptimizedShortPages() {
if (document.URL.indexOf("http://fr.wikipedia.org/wiki/Special:Shortpages")!=0) return;
var mainNode = document.getElementsByTagName("ol");
var allArticles = mainNode[0].getElementsByTagName("li");
for (i=0; i<allArticles.length; i++) {
var articleName = allArticles[i].childNodes[0].getAttribute("title");
var historyElement = document.createElement("a");
var histUrl = "/w/index.php?title=" + articleName + "&action=history"
historyElement.setAttribute("href", histUrl);
var historyText = document.createTextNode("… (hist) ");
historyElement.appendChild(historyText);
insertAfter(allArticles[i], historyElement, allArticles[i].childNodes[1]);
var relatedElement = document.createElement("a");
var relatedUrl = "/wiki/Special:Whatlinkshere/" + articleName
relatedElement.setAttribute("href", relatedUrl);
var relatedText = document.createTextNode(" (liens) ");
relatedElement.appendChild(relatedText);
var diffElement = document.createElement("a");
var diffUrl = "/w/index.php?title=" + articleName + "&diff=0"
diffElement.setAttribute("href", diffUrl);
var diffText = document.createTextNode(" (diff) ");
diffElement.appendChild(diffText);
insertAfter(allArticles[i], relatedElement, historyElement);
insertAfter(allArticles[i], diffElement, relatedElement);
insertAfter(allArticles[i], document.createTextNode(allArticles[i].childNodes[1].data), diffElement);
allArticles[i].removeChild(allArticles[i].childNodes[1]);
}
}
addLoadEvent(OptimizedShortPages);
[modifier] Suivi d'utilisateurs dans les modifications récentes
Ce script permet de suivre les modifications d'utilisateurs que l'on souhaite sur la page des modifications récentes, pratique pour la lutte contre le vandalisme. Il faut mettre dans la boite de recherche le nom de l'utilisateur ou l'ip (123.33.29.99 par exemple, ou GôTô), cliquer sur le lien watch user et les modifications de l'utilisateur apparaitront en gras sur la page (il est possible de personnaliser la mise en relief). Ce script utilise des cookies, il faut donc activer les cookies pour le site fr.wikipedia.org pour que cela marche. N'oubliez pas non plus d'ajouter le nécessaire dans la page .css et de la recharger.
[Dernière mise à jour: 4 juillet 2006 à 16:22 (CEST)]
Code pour « Suivi d'utilisateurs dans les modifications récentes - Javascript »
//---------------------------------------------------------------------------------------------Objets (cookies)
document.write('<script type="text/javascript" src="'
+ 'http://fr.wikipedia.org/w/index.php?title=Utilisateur:GôTô/objects.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
function addWatchUserLinks() {
var a = document.getElementById("p-search")
if (a)
a = a.getElementsByTagName("div")[0]
if (a)
{
var str = a.innerHTML + ' <a class="searchLink" href="javascript:watchUser(document.getElementById(\'searchInput\').value)" title="Mettre en évidence les contributions de cet utilisateur">'
+ 'watch user</a>'
+ ' <a class="searchLink" href="javascript:unwatchUser(document.getElementById(\'searchInput\').value)" title="Ne plus mettre en évidence les contributions de cet utilisateur">'
+ 'unwatch user</a>'
a.innerHTML = str
}
}
function watchUser(usr) {
if (!isUserWatched(usr)) {
var all = cookies.get("watchUser")
cookies.set("watchUser", (all ? all + usr + "/" : usr + "/"))
highlightWatchedUsers()
}
}
function unwatchUser(usr) {
if (!isUserWatched(usr))
return
var all = cookies.get("watchUser").split("/")
var out = ""
for (var cpt = 0 ; cpt < all.length ; cpt++)
if (all[cpt] != usr && all[cpt])
out += all[cpt] + "/"
cookies.set("watchUser", out)
highlightWatchedUsers()
}
function isUserWatched(usr) {
var all = cookies.get("watchUser")
if (!all)
return null
for (var cpt = 0 ; cpt < all.split("/").length ; cpt++)
if (all.split("/")[cpt] == usr)
return 1
return null
}
function highlightWatchedUsers() {
if (window.location.href.indexOf("Special:Recentchanges") < 1)
return
var uls = document.getElementsByTagName("ul")
var ul = uls[0]
for (var cpt = 1 ; cpt < uls.length && ul.className != "special" ; cpt++)
ul = uls[cpt]
var lis = ul.getElementsByTagName("li")
for (var cpt = 0 ; cpt < lis.length ; cpt++) {
var usr = lis[cpt].getElementsByTagName("a")[3].innerHTML
if (lis[cpt].getElementsByTagName("span")) {
var spans = lis[cpt].getElementsByTagName("span")
for (var cpt2 = 0 ; cpt2 < spans.length ; cpt2++)
if (spans[cpt2].className == "newpage")
var usr = lis[cpt].getElementsByTagName("a")[2].innerHTML
}
if (isUserWatched(usr))
lis[cpt].className = "userWatched"
else
lis[cpt].className = ""
}
}
addLoadEvent(highlightWatchedUsers)
addLoadEvent(addWatchUserLinks)
Code pour « Suivi d'utilisateurs dans les modifications récentes - CSS »
.userWatched a, .userWatched a:visited {
color: #002bb8;
font-weight: bolder;
}
[modifier] Historique coloré
Fonctionne correctement sous Firefox, Opera 8.5, et Konqueror 3.4.3 Avec Internet Explorer : N'affiche de fond coloré que lors du passage de la souris sur la version de l'article, pour chaque ligne.
Ce script permet de différencier par un code couleur paramétrable les éditions d'administrateurs, de robots, de simples contributeurs, et d'Ips leur liste étant stockée sur un cookie. Ainsi, pour qu'il fonctionne, il faut autoriser les cookies. Le cookie a une durée de vie d'une semaine ce qui garantit la mise à jour régulière des contributeurs.
Voir la page Wikipédia:Historiques en couleur.
[modifier] Pour les admins uniquement
[modifier] Suppression Deluxe
Testé avec MediaWiki 1.6
Ce script ajoute des boutons en bas de "confirmer la suppression", en appuyant sur un des boutons, on supprime directement sans avoir à écrire la raison de la suppression qui est le label du bouton. Permet de virer rapidement les images sans licence, etc.
Code pour « Suppression Deluxe »
// la fonction insertAfter n'est à copier que si elle n'est pas encore présente dans le monobook.js
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
function SuppressionDeluxe() {
if (document.title.indexOf("Confirmer la suppression")!=0) return;
var mainNode = document.getElementsByTagName("form");
var firstForm = mainNode[0];
// vous pouvez ajouter vos messages ci-dessous
var messages = new Array()
messages[0] = "Image orpheline, sans licence";
messages[1] = "Image sans licence";
messages[2] = "Violation de copyright";
messages[3] = "Publicité ou autopromotion";
messages[4] = "Vandalisme";
messages[5] = "Essai de débutant";
messages[6] = "Redirect orphelin";
messages[7] = "Supprimé à la demande de son auteur";
messages[8] = "Traduction automatique";
messages[9] = "Contrevient aux règles de nommage";
var table = document.createElement("table");
var tr = document.createElement("tr");
table.appendChild(tr);
// normalement, pas besoin de toucher à partir d'ici
if (firstForm.getAttribute("id")=="deleteconfirm") {
actionDelete = firstForm.getAttribute("action");
var inputs = firstForm.getElementsByTagName("input");
var token = inputs[2].getAttribute("value");
for (var i=0;i<messages.length;i++) {
if (i%4==0) {
tr = document.createElement("tr");
table.appendChild(tr);
}
var formElement = document.createElement("form");
formElement.setAttribute("id", "deleteconfirm");
formElement.setAttribute("method", "post");
formElement.setAttribute("action", actionDelete);
var inputReason = document.createElement("input");
inputReason.setAttribute("name", "wpReason");
inputReason.setAttribute("value", messages[i]);
inputReason.setAttribute("type", "hidden");
var inputConfirm = document.createElement("input");
inputConfirm.setAttribute("name", "wpConfirmB");
inputConfirm.setAttribute("value", messages[i]);
inputConfirm.setAttribute("type", "submit");
var inputToken = document.createElement("input");
inputToken.setAttribute("name", "wpEditToken");
inputToken.setAttribute("value", token);
inputToken.setAttribute("type", "hidden");
formElement.appendChild(inputReason);
formElement.appendChild(inputConfirm);
formElement.appendChild(inputToken);
var td = document.createElement("td");
td.appendChild(formElement);
tr.appendChild(td);
}
var separation = document.createElement("p");
separation.appendChild(document.createElement("hr"));
insertAfter(firstForm.parentNode, separation, firstForm);
insertAfter(firstForm.parentNode, table, separation);
}
}

Sur le même modèle que la suppression de luxe, des justifications prédéfinies, mais pour les blocages !
Code pour « BlocageDeluxe »
/************************************************/
/* boutons prédéfinis pour justifier un blocage */
/* Auteur : Pabix */
/************************************************/
function BlocageDeluxe() {
if (document.title.indexOf("Bloquer le compte - Wikipédia")!=0) return;
var mainNode = document.getElementsByTagName("form");
var firstForm = mainNode[0];
var ca = 0;
var messages = new Array();
var duree = new Array();
/***
* Vous pouvez personnaliser les messages et durées
* définis ci-dessous (attention à ne pas inclure de
* caractères trop spéciaux et à spécifier les
* durées en anglais).
***/
messages[ca] = "Vandale non averti mais voulant manifestement nuire";
duree[ca++] = "10 minutes";
messages[ca] = "Et vulgaire avec ça";
duree[ca++] = "30 minutes";
messages[ca] = "Vandale averti";
duree[ca++] = "1 hour";
messages[ca] = "Vandale averti plusieurs fois";
duree[ca++] = "6 hours";
messages[ca] = "Récidiviste";
duree[ca++] = "10 days";
messages[ca] = "Suite à décision du comité d'arbitrage";
duree[ca++] = "2 weeks"
messages[ca] = "Identifiant à caractère injurieux";
duree[ca++] = "infinite";
messages[ca] = "Robot fou";
duree[ca++] = "infinite";
messages[ca] = "Spammeur";
duree[ca++] = "infinite";
var table = document.createElement("table");
var tr = document.createElement("tr");
table.appendChild(tr);
if (firstForm.getAttribute("id")=="blockip") {
actionBlock = firstForm.getAttribute("action");
var inputs = firstForm.getElementsByTagName("input");
var token = inputs[4].getAttribute("value");
var lePauvre = inputs[0].getAttribute("value");
for (var i=0;i<messages.length;i++) {
// if (i%3==0) {
tr = document.createElement("tr");
table.appendChild(tr);
// }
var formElement = document.createElement("form");
formElement.setAttribute("id", "blockip");
formElement.setAttribute("method", "post");
formElement.setAttribute("action", actionBlock);
var inputReason = document.createElement("input");
inputReason.setAttribute("name", "wpBlockReason");
inputReason.setAttribute("value", messages[i]);
inputReason.setAttribute("type", "hidden");
var dureeC = document.createElement("input");
dureeC.setAttribute("name", "wpBlockExpiry");
dureeC.setAttribute("value", "other");
dureeC.setAttribute("type", "hidden");
var dureeC2 = document.createElement("input");
dureeC2.setAttribute("name", "wpBlockOther");
dureeC2.setAttribute("value", duree[i]);
dureeC2.setAttribute("type", "text");
var inputConfirm = document.createElement("input");
inputConfirm.setAttribute("name", "wpBlock");
inputConfirm.setAttribute("value", messages[i]);
inputConfirm.setAttribute("type", "submit");
var ident = document.createElement("input");
ident.setAttribute("name", "wpBlockAddress");
ident.setAttribute("value", lePauvre);
ident.setAttribute("type", "hidden");
var inputToken = document.createElement("input");
inputToken.setAttribute("name", "wpEditToken");
inputToken.setAttribute("value", token);
inputToken.setAttribute("type", "hidden");
formElement.appendChild(inputReason);
formElement.appendChild(dureeC);
formElement.appendChild(dureeC2);
formElement.appendChild(inputConfirm);
formElement.appendChild(inputToken);
formElement.appendChild(ident);
var td = document.createElement("td");
td.appendChild(formElement);
tr.appendChild(td);
}
var separation = document.createElement("p");
separation.appendChild(document.createElement("hr"));
insertAfter(firstForm.parentNode, separation, firstForm);
insertAfter(firstForm.parentNode, table, separation);
}
}
addLoadEvent(BlocageDeluxe);
[modifier] Undelete select all
Ce script fait apparaitre une case permettant de sélectionner toutes les cases de versions lors d'une restauration d'article. Par défaut, le script coche toutes les cases (pour que les cases ne soient pas cochées par défaut, il faut enlever la ligne all.click()
). Testé sous Internet Explorer et Firefox. [Dernière mise à jour: 4 juillet 2006 à 16:20 (CEST)]
Code pour « Undelete select all »
function UndeleteSelectAll()
{
if (window.location.href.indexOf("Special:Undelete") > 0)
{
var title2 = document.getElementsByTagName("h2")
if (title2.length <= 0)
return
var all = document.createElement("input")
all.setAttribute("type", "checkbox")
all.setAttribute("id", "checkAll")
if (all.attachEvent)
all.attachEvent("onclick", function () { selectAll(document.getElementById("checkAll").checked) })
else
all.setAttribute("onclick", "javascript: selectAll(this.checked)")
all.setAttribute("title", "Sélectionner/Désélectionner tous")
title2[title2.length -1].appendChild(all)
all.click()
}
}
function selectAll(bool)
{
var inputs = document.getElementsByTagName("input")
for (var cpt = 0 ; cpt < inputs.length ; cpt++)
{
if (inputs[cpt].type == "checkbox")
inputs[cpt].checked = bool
}
}
addLoadEvent(UndeleteSelectAll)