Utilisateur:Flo/monobook.js
Un article de Wikipédia, l'encyclopédie libre.
Note : Après avoir sauvegardé, vous devez forcer le rechargement de la page pour voir les changements : Mozilla / Konqueror / Firefox : Shift-Ctrl-R, IE / Opera : Ctrl-F5, Safari : Cmd-R.
// == Bibliothèque de base == function nouveauLien(href,label) { var a = document.createElement("a"); var h = document.createAttribute("href"); h.value = href; a.setAttributeNode(h); a.title = label; a.appendChild(document.createTextNode(label)); return a; } function nouveauLienEncapsulé(href,label) { var li = document.createElement("li"); li.appendChild(nouveauLien(href,label)); return li; } function $(id) { if(document.getElementById) return document.getElementById(id); if(document.all) return document.all[id]; return false; } function $$(name,obj) { if (!obj) var obj = document; return obj.getElementsByTagName(name); } function getElementsByTagNames(list,obj) { // http://www.quirksmode.org/dom/getElementsByTagNames.html if (!obj) var obj = document; var tagNames = list.split(','); var resultArray = new Array(); for (var i=0;i<tagNames.length;i++) { var tags = obj.getElementsByTagName(tagNames[i]); for (var j=0;j<tags.length;j++) { resultArray.push(tags[j]); } } var testNode = resultArray[0]; if (!testNode) return []; if (testNode.sourceIndex) { resultArray.sort(function (a,b) { return a.sourceIndex - b.sourceIndex; }); } else if (testNode.compareDocumentPosition) { resultArray.sort(function (a,b) { return 3 - (a.compareDocumentPosition(b) & 6); }); } return resultArray; } $$$ = getElementsByTagNames; // == Ajout d'outils == function nouveauxOutilsPerso() { var ul = $$( "ul", $("p-personal") ); ul[0].appendChild( nouveauLienEncapsulé("/wiki/Special:Mypage/monobook.js","Monobook.js")); ul[0].appendChild( nouveauLienEncapsulé("/wiki/Special:Mypage/monobook.css","Monobook.css")); } addLoadEvent(nouveauxOutilsPerso); function nouveauxOutils() { var ul = $$( "ul",$("p-tb") )[0]; var li = nouveauLienEncapsulé("/wiki/Aide:Formules_TeX","Formules TeX"); ul.insertBefore( li, $("t-upload") ); ul.appendChild( $("n-randompage") ); ul.insertBefore( $("n-help"), li ); } addLoadEvent(nouveauxOutils); /***************************************************************************/ /* Onglet Editcount /* Auteur : Educa33e /Suite à demande 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. /***************************************************************************/ /* refonte en DOM par Flo */ function addECButton() { if ( document.title.indexOf('Contributions de cet utilisateur') < 0 ) return; var name = $$( "a",$("contentSub") )[0].innerHTML; var ul = $$( "ul", $("p-cactions") )[0]; var li = nouveauLienEncapsulé( "http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user="+escape(name)+"&dbname=frwiki_p", "Editcount"); ul.appendChild(li); ; } addLoadEvent(addECButton); function contributions() { //ajoute un onglet ciblant les contributions d'un utilisateur if ( document.title.indexOf('Utilisateur:') < 0 ) return; var reg = new RegExp("Utilisateur:([^/]*)","gi"); var nom = reg( $$("H1")[0].firstChild.nodeValue )[1]; var ul = $$( "ul", $("p-cactions") )[0]; var li = nouveauLienEncapsulé("/wiki/Special:Contributions/"+nom,"Contributions"); ul.appendChild(li); ; } addLoadEvent(contributions); // install [[:en:User:Cacycle/wikEd]] in-browser text editor var wikEd = document.createElement("script"); wikEd.type = "text/javascript"; wikEd.src="http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js" + "&action=raw&ctype=text/javascript&dontcountme=s"; document.getElementsByTagName("head")[0].appendChild(wikEd); // ==Ajout de contenu== /* Ajoute un lien devant les titres, ciblant l'ancre correspondante * pour obtenir facilement l'URL de l'ancre. * JavaScript 1.6 requis (p.ex. Firefox 1.5+). */ function ancres() { var tagNames = ['h2','h3','h4','h5','h6']; var classeLien = "lien-ancre-hn"; var texteLien = "§ "; for each(var tag in tagNames) { var headings = $$( tag, $("content") ); //var headings = getElementsByTagNames(tagNames.join(','),$("content")); for each(var h in headings) { if( !(h && h.previousSibling && h.previousSibling.previousSibling && h.previousSibling.previousSibling.lastChild) ) continue; var id = h.previousSibling.previousSibling.lastChild.id; // \n <p> <a> var spans = $$( "span",h ); for each( var span in spans ) { if ( span.className != "mw-headline" ) continue; var a = document.createElement("a"); a.href = "#" + id; a.title = a.href; a.className = classeLien; a.appendChild( document.createTextNode(texteLien) ); span.insertBefore(a,span.firstChild); } } } } addLoadEvent(ancres); function tex(){ var images = $$("img"); for each(var i in images) { if( !i.className || i.className != "tex" ) continue; i.title = i.alt; } } addLoadEvent(tex); function liensRouges() { if ( document.URL.indexOf('Whatlinkshere/') >= 0 ) return; var A = $$("a"); for each(a in A) { if( !a.className || a.className != "new" ) continue; a.href = "/wiki/Special:Whatlinkshere/" + a.title; } } addLoadEvent(liensRouges); function nsSearch() { var form = $("searchform"); var searchGoButton = $("searchGoButton"); var mw_searchButton = $("mw-searchButton"); var div = form.firstChild; var select = document.createElement("select"); select.name = "ns0"; select.id = "selectNS"; var NS = {"ns0":"(principal)","ns2":"Utilisateur","ns4":"Wikipédia", "ns6":"Image","ns10":"Modèle","ns12":"Aide","ns14":"Catégorie"}; for(ns in NS) { var option = document.createElement("option"); option.value = "1"; option.appendChild( document.createTextNode(ns+" : "+NS[ns]) ); option.name = ns; option.onclick = function() { select.name = this.name; div.insertBefore(mw_searchButton,searchGoButton); mw_searchButton.style.fontWeight = "bold"; searchGoButton.style.fontWeight = "normal"; if(this.name == "ns0") { div.insertBefore(searchGoButton,mw_searchButton); mw_searchButton.style.fontWeight = "normal"; searchGoButton.style.fontWeight = "bold"; } }; if(option.name == "ns0") { option.style.fontWeight = "bold"; option.selected = true; } select.appendChild( option ); } div.insertBefore( select, searchGoButton ); searchGoButton.value = "Aller"; } addLoadEvent(nsSearch); function plieBoîtes() { var boxes = ["p-navigation", "p-Contribuer", "p-tb", "p-search", "p-lang"]; for each(box in boxes) { if( !$(box) ) continue; var h = $$("h5",$(box))[0]; h.style.cursor = "pointer"; h.onmouseover = function(){ this.CouleurOriginale = this.style.backgroundColor; this.style.backgroundColor = "#ffffc8"; } h.onmouseout = function() { this.style.backgroundColor = this.CouleurOriginale; } h.onclick = function(){ var pBody = $$("div",this.parentNode)[0]; if(pBody.style.display == "" || pBody.style.display == "block"){ pBody.style.display = "none"; } else if(pBody.style.display == "none") { pBody.style.display = "block"; } } } } addLoadEvent(plieBoîtes); function déplaceBoîtes() { var boxes = ["p-navigation", "p-Contribuer"]; for each(box in boxes) { var boîte = $(box); boîte.parentNode.appendChild(boîte); } } addLoadEvent(déplaceBoîtes); function signature() { if ( document.title.indexOf("Modification de") < 0 ) return; lien = nouveauLien("#","{{User:Flo/Signature}}"); lien.onclick = function() { insertTags("{{User:Flo/Signature|","}}","8 avril 2007 à 13:18 (CEST)"); return false; } $("Wiki").appendChild(lien); } addLoadEvent(signature);