Utilisateur:Korg/monobook.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./* <pre> */
// 1. Dates
// 2. Menu
// 3. addLoadEvent
// 4. übergodmode
// 5. Fusion des historiques de contributions de plusieurs utilisateurs
//
obtenir("DeluxeBar");
obtenir("ResumeDeluxe");
obtenir("OptimizedShort");
obtenir("OngletPurge");
obtenir("RestaurationDeluxe");
obtenir("SuppressionDeluxe");
obtenir("BlocageDeluxe");
//-----------------------------------------------------------------------------
// 1. Dates
//-----------------------------------------------------------------------------
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);
}
function TodayDate2() {
m = new Array( "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
today = new Date();
day = today.getDate();
return (day + "_"+ m[today.getMonth()]);
}
//-----------------------------------------------------------------------------
// 2. Menu
//-----------------------------------------------------------------------------
function menu()
{
var Date1 = TodayDate();
var Date2 = TodayDate2();
var a = document.getElementById("p-navigation");
if (a)
{
b = a.getElementsByTagName("ul");
if(b.length > 0)
{
b[0].innerHTML = b[0].innerHTML
+ '<li><span title="Wikipédia:Le Bistro">'
+ '<a href="https://fr.m.vvikipidea.org/wiki/Wikipédia:Le Bistro/'+ Date1 +'"><font color="#3CB371">Le Bistro du jour</font></a></span></li>'
+ '<li><span title="Wikipédia:Pages à supprimer">'
+ '<a href="https://fr.m.vvikipidea.org/wiki/Wikipédia:Pages_à_supprimer#'+ Date2 +'">Pages à supprimer</a></span></li>'
+ '<li><span title="Bulletin des admins">'
+ '<a href="https://fr.m.vvikipidea.org/wiki/Wikipédia:Bulletin des administrateurs">Bulletin des admins</a></span></li>'
+ '<li><span title="Wikipédia:Vandalisme en cours">'
+ '<a href="https://fr.m.vvikipidea.org/wiki/Wikipédia:Vandalisme_en_cours/Alertes_en_cours">'
+ 'Vandalisme en cours</a></span></li>'
+ '<li><span title="AlphaBot">'
+ '<a href="https://fr.m.vvikipidea.org/wiki/Special:Contributions/AlphaBot">'
+ '<font color="#4169E1">AlphaBot</font></a></span></li>'
}
}
}
addLoadEvent(menu);
//-----------------------------------------------------------------------------
// 3. addLoadEvent
//-----------------------------------------------------------------------------
function addLoadEvent(func) {
if (window.addEventListener) {
window.addEventListener("load", func, false);
} else
if (window.attachEvent) {
window.attachEvent("onload", func);
}
}
//-----------------------------------------------------------------------------
// 4. übergodmode - par Sam Hocevar
//-----------------------------------------------------------------------------
var blocklink = 'Block this user';
switch (document.getElementsByTagName('html')[0].lang) {
case 'fr':
blocklink = 'Bloquer cet utilisateur';
break;
}
function PerformBlock() {
var l, target = '';
// Look for '&faketarget=XXX' in URL
url = location.pathname;
l = location.search.substring(1).split('&');
for (i = 0; i < l.length; i++) {
var n = l[i].indexOf('=');
if (l[i].substring(0, n) == 'faketarget') {
target = l[i].substring(n + 1);
}
}
if (!target)
return;
form = document.getElementById('blockip');
if (!form)
return;
input = form.getElementsByTagName('input')[0];
input.value = target;
}
function AddBlockButtons() {
var l, article = '', vandal;
// Add 'block' links to a diff page
l = document.getElementById('t-emailuser');
if (l) {
clone = l.cloneNode(true);
l.id = 't-blockuser';
a = clone.getElementsByTagName('a')[0];
a.href = a.href.replace(/Special:Emailuser/, 'Special:Blockip');
a.href = a.href.replace(/target=/, 'faketarget=');
a.innerHTML = blocklink;
l.parentNode.insertBefore(clone, l.nextSibling);
}
}
if (window.addEventListener) {
window.addEventListener("load", PerformBlock, false);
window.addEventListener("load", AddBlockButtons, false);
} else if (window.attachEvent) {
window.attachEvent("onload", PerformBlock);
window.attachEvent("onload", AddBlockButtons);
}
//-----------------------------------------------------------------------------------------------------
// 5. Fusion des historiques de contributions de plusieurs utilisateurs - par Marc Mongenet
// http://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Le_Bistro/25_mars_2006#Script_de_fusion_d.27historiques
// Version du 25 juillet 2006
//-----------------------------------------------------------------------------------------------------
// 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);
}
/* </pre> */