Utilisateur:PieRRoMaN/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.
function addLoadEvent(func) { if(window.addEventListener) { window.addEventListener("load", func, false); } else if(window.attachEvent) { window.attachEvent("onload", func); } } function TodayDate() { m = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"); today = new Date(); day = today.getDate(); year = today.getYear(); if(year < 2000) { year = year + 1900; } return(day + " " + m[today.getMonth()] + " " + year); } // Ajouter une boîte perso dans le menu de gauche. function nouvelleBoite() { var sumLbl = document.getElementById("wpSummaryLabel"); if(sumLbl) { var sumInput = document.getElementById("wpSummary"); sumInput.style.width = "75%"; } var tDate = TodayDate(); var l = document.getElementById("column-one"); if(l) { l.innerHTML = l.innerHTML + '<div class="portlet" id="p-nbx">' + ' <h5>Boîte perso</h5>' + ' <div class="pBody">' + ' <ul>' + ' <li><a href="http://fr.wikipedia.org/wiki/Wikipédia:Annonces" target="_blank">Annonces</a></li>' + ' <li><a href="http://fr.wikipedia.org/wiki/Wikipédia:Le_Bistro" target="_blank">Bistro</a> - <a href="http://fr.wikipedia.org/wiki/Wikipédia:Le_Bistro/' + tDate + '" target="_blank">aujourd\'hui</a></li>' + ' <li><a href="http://fr.wikipedia.org/wiki/Wikipédia:Comité d\'arbitrage/Arbitrage" target="_blank">Arbitrages</a></li>' + ' <li><a href="http://fr.wikipedia.org/wiki/Wikipédia:Bot" target="_blank">Bots</a> - <a href="http://fr.wikipedia.org/wiki/Wikipédia:Bot/Requêtes" target="_blank">requêtes</a></li>' + ' <li><a href="http://fr.wikipedia.org/wiki/Catégorie:Wikipédia:ébauche" target="_blank">Ébauches</a> - <a href="http://fr.wikipedia.org/wiki/Wikipédia:Catégories d\'ébauches" target="_blank">catégories</a></li>' + ' <li><a href="http://fr.wikipedia.org/wiki/Wikipédia:Pages_à_supprimer" target="_blank">Pages à supprimer</a></li>' + ' <li><a href="http://fr.wikipedia.org/wiki/Aide:Formules TeX" target="_blank">Formules TeX</a></li>' + ' <li><a href="http://fr.wikipedia.org/wiki/Wikipédia:Modèles" target="_blank">Modèles</a></li>' + ' </ul>' + ' </div>' + '</div> '; } } addLoadEvent(nouvelleBoite); // Fusion display of Wikipedia user contributions history // Copyright 2006, Marc Mongenet // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // See http://www.gnu.org/licenses/gpl.html // TODO: Special:Log, marque collisions var fus = new Object(); // fus is Used as namespace. fus.main_contributor = undefined; // main contributor name fus.contributors_list = new Object(); // XHTML list of contributors fus.contribs_limit = 0; // 0 means default value fus.count = 0; // number of fusionned contribs fus.colors = [ "", "#FFB", "#FBF", "#BFF", "#DDF", "#DFD", "#FDD", "#EEA", "#EAE", "#AEE", "#CCE", "#CEC", "#ECC", "#DD9", "#D9D", "#9DD", "#BBD", "#BDB", "#DBB" ]; fus.contributors_list.init = function() { this.elm = document.createElement("ol"); } fus.contributors_list.add = function(contributor) { // UI components var li = document.createElement("li"); li.fus = new Object(); li.fus.contributor = contributor; li.style.backgroundColor = fus.colors[fus.count]; li.appendChild(document.createTextNode(contributor)); var a = document.createElement("a"); a.href = "http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?dbname=frwiki_p&user=" + contributor; a.appendChild(document.createTextNode(" editcount")); li.appendChild(a); this.elm.appendChild(li); } fus.monthNameToNum = function(m) { if (m == "janvier") return 0; if (m == "février") return 1; if (m == "mars") return 2; if (m == "avril") return 3; if (m == "mai") return 4; if (m == "juin") return 5; if (m == "juillet") return 6; if (m == "août") return 7; if (m == "septembre") return 8; if (m == "octobre") return 9; if (m == "novembre") return 10; if (m == "décembre") return 11; return 12; } // Return Date of contribution listed in this li element. fus.contribTimeRegex = /(\d+)\s+(\S+)\s+(\d{4})\D+(\d+)\D+(\d{2})/; fus.parseContribTime = function(li) { var datetime = li.firstChild.nodeValue.match(fus.contribTimeRegex); datetime[2] = fus.monthNameToNum(datetime[2]); return new Date(parseInt(datetime[3]), datetime[2], parseInt(datetime[1]), parseInt(datetime[4], 10), parseInt(datetime[5], 10)); } fus.fuse = function(ul1, ul2, contributor, color) { contributor = " -- " + contributor; var li1 = ul1.firstChild; for (var li22 = ul2.firstChild; li22; li22 = li22.nextSibling) { if (li22.nodeType == 1) { var li2 = li22.cloneNode(true); li2.appendChild(document.createTextNode(contributor)); li2.style.backgroundColor = color; var time2 = fus.parseContribTime(li2).getTime(); while (li1) { if (li1.nodeType == 1) { var time1 = fus.parseContribTime(li1).getTime(); if (time1 <= time2) { if (time1 == time2) { li1.style.borderLeftWidth = li2.style.borderLeftWidth = "0.25em"; li1.style.borderLeftStyle = li2.style.borderLeftStyle = "solid"; li1.style.borderLeftColor = li2.style.borderLeftColor = "red"; } break; } } li1 = li1.nextSibling; } ul1.insertBefore(li2, li1); } } } fus.getElementById = function(elm, id) { var res = null; if (elm.id == id) res = elm; for (var child = elm.firstChild; !res && child; child = child.nextSibling) if (child.nodeType == 1) res = fus.getElementById(child, id); return res; } fus.onFusionWith = function(contributor) { ++fus.count; fus.contributors_list.add(contributor); // Load fusionned page with synchronous XMLHttpRequest var http_request; if (window.XMLHttpRequest) { // Mozilla, Safari, ... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml'); } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } http_request.open('GET', "/w/index.php?title=Special:Contributions&target="+contributor+"&offset=0&limit="+fus.contribs_limit, false); http_request.send(null); // Get both contributions histories var ul1 = document.getElementById("bodyContent"); ul1 = ul1.getElementsByTagName("ul")[0]; var ul2 = http_request.responseXML; if (!ul2.getElementById) { // MSIE ul2 = document.createElement("div"); ul2.innerHTML = http_request.responseText; ul2 = fus.getElementById(ul2, "bodyContent"); } else { ul2 = ul2.getElementById("bodyContent"); } ul2 = ul2.getElementsByTagName("ul")[0]; // Fusion fus.fuse(ul1, ul2, contributor, fus.colors[fus.count]); } fus.parseContribUrlTarget = function(url) { var target = url.match(/&target=([^&]+)/); if (!target) target = url.match(/Special:Contributions\/(\S+)/); return target[1]; } fus.parseContribUrlLimit = function(url) { var limit = url.match(/&limit=(\d+)/); if (limit) return parseInt(limit[1]); return 0; } fus.onContribPage = function(url) { fus.main_contributor = fus.parseContribUrlTarget(url); fus.contribs_limit = fus.parseContribUrlLimit(url); // UI components fus.contributors_list.init(); fus.contributors_list.add(fus.main_contributor); var input = document.createElement("input"); input.type = "text"; var submit = document.createElement("input"); submit.type = "submit"; var form = document.createElement("form"); form.onsubmit = function() { fus.onFusionWith(input.value); return false; } // UI components layout submit.value = "Fusionner"; var fusion = document.createTextNode("Fusionner avec les contributions de "); form.appendChild(fusion); form.appendChild(input); form.appendChild(submit); var bodyContent = document.getElementById("bodyContent"); bodyContent.insertBefore(form, bodyContent.firstChild); bodyContent.insertBefore(fus.contributors_list.elm, bodyContent.firstChild); } fus.testForContribPage = function () { var url = window.location.href; if (url.match(/\/Special:Contributions\/|title=Special:Contributions/)) { try { fus.onContribPage(url); } catch (e) { /* Something went wrong. */ } } } if (window.addEventListener) { window.addEventListener("load", fus.testForContribPage, false); } else if (window.attachEvent) { window.attachEvent("onload", fus.testForContribPage); } 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">section 0</a></li>'; } } } addLoadEvent(editerPremierParagraphe);