Utilisateur:Grelcanta/monobook.js

Une page de Wikipédia, l'encyclopédie libre.
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) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/////////////////////////////////////////////////////////////////////////////////////

function morelinks() {
 var tabs = document.getElementById('p-cactions').cloneNode(true);
 tabs.id = 'mytabs';
 var listitems = tabs.getElementsByTagName('LI');
 for (i=0;i<listitems.length;i++) {
   if(listitems[i].id) listitems[i].id = 'mytabs-' + listitems[i].id;
 }
 document.getElementById('column-content').appendChild(tabs);
}
if (window.addEventListener) window.addEventListener("load",morelinks,false);
else if (window.attachEvent) window.attachEvent("onload",morelinks);

/////////////////////////////////////////////////////////////////////////////////////

// import
function importWikiPage(page, lng) {
        langue = (lng ? lng : 'fr')
        document.write('<script type="text/javascript" src="' 
             + 'http://' + langue + '.wikipedia.org/w/index.php?title=' + page
             + '&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>');

popupAdminLinks=true;

/////////////////////////////////////////////////////////////////////////////////////

/****************************************/
/* Changement de la boîte de navigation */
/* Auteur : Seb35                       */
/****************************************/
var isOpen = new Array(); var m;
function navigation_main()
{
 //Date par Dake
 d = new Array('janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
 today = new Date();
 date = today.getDate() + '_' + d[today.getMonth()] + '_' + (today.getYear() + 1900);
 var pages = new Array(
  'Administration',
      new Array('/wiki/Wikipédia:Bulletin_des_administrateurs', 'WP:BA',
                '/wiki/Wikipédia:Requête_aux_administrateurs', 'WP:RA',
                '/wiki/Wikipédia:Demande_de_suppression_immédiate', 'WP:SI',
                '/wiki/Wikipédia:Vandalisme_en_cours', 'WP:-(',
                '/wiki/Wikipédia:Demande_de_protection_de_page', 'Protection',
                '/wiki/Wikipédia:Demande_d\'intervention_sur_une_page_protégée', 'Intervention',
                '/wiki/Wikipédia:Demande_de_renommage', 'Renommage',
                '/wiki/Wikipédia:Demande_de_restauration_de_page', 'Restauration',
                '/wiki/Wikipédia:Pages_à_supprimer', 'WP:PàS',
                '/wiki/Wikipédia:Images_à_supprimer', 'WP:IàS',
                '/wiki/Wikipédia:Pages_soupçonnées_de_violation_de_copyright', 'WP:PCP',
                '/wiki/Special:Log', 'Journaux',
                '/wiki/Special:Log/newusers', '&nbsp;/nouveaux',
                '/wiki/Special:Undelete', 'Undelete',
                '/wiki/Special:Blockip', 'Blockip',
                '/wiki/Special:Ipblocklist', 'Ipblocklist'
               ),
  'Maintenance',
      new Array('/w/index.php?title=Special:Recentchanges&amp;hideliu=1&amp;limit=200', 'RC IP',
                '/wiki/Special:Contributions/newbies', 'RC newbies',
                '/wiki/Special:Newpages', 'Nouvelles pages',
                '/wiki/Special:Newimages', 'Nouvelles images',
                '/wiki/Special:Deadendpages', 'Impasses',
                '/wiki/Special:CrossNamespaceLinks', 'Croisés',
                '/wiki/Catégorie:Article_pour_le_Wiktionnaire', 'Wiktionnaire',
                '/wiki/Catégorie:À_wikifier', 'À wikifier',
                '/wiki/Wikipédia:Pages_à_fusionner', 'WP:PàF',
                '/wiki/Wikipédia:Coordination_des_pages_de_maintenance', 'WP:CM',
                '/wiki/Wikipédia:Modèles', 'WP:LdM'
               ),
  'Autres',
      new Array('/wiki/Wikipédia:Le_Bistro/' + date, 'Le Bistro ' + today.getDate() + '/' + (today.getMonth()+1),
                '/wiki/Wikipédia:Bulletin_des_administrateurs/' + today.getFullYear() + '/Semaine_' + week(), 'BA semaine ' + week(),
                '/wiki/Wikipédia:Conventions_typographiques', 'WP:CTYP',
                '/wiki/Projet:Accueil', 'WP:PROJ',
                '/wiki/Portail:Accueil', 'WP:PORT',
                '/wiki/Wikipédia:Projet/Traduction', 'WP:PT',
                '/wiki/Discussion_Wikipédia:Projet/Traduction/Outils/Modèles', 'D:Modèles',
                '/wiki/Wikipédia:Projet/Traduction/Traductions', 'Traductions'
               )
 );
 
 var a = document.getElementById('p-navigation').getElementsByTagName('ul')[0];
 for(i = 0; i<(pages.length)/2; i++)
 {
  isOpen[i] = 0;
  temp = '';
  for(j=0; j<(pages[2*i+1].length)/2; j++) temp = 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:pointer;" onMouseOver="if(isOpen[' + i + '] == 0) m = setTimeout(toggleMenu, 300, ' + (i+1) + ');" onMouseOut="clearTimeout(m);" onClick="clearTimeout(m); toggleMenu(' + (i+1) + ');">' + pages[2*i] + '</a></li>'
   + '<div id="MenuToggle' + (i+1) + '" style="display:none;">' + temp + '</div>';
 }
}
$(navigation_main);

/////////////////////////////////////////////////////////////////////////////////////

// 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 1;
	if (m == "février") return 2;
	if (m == "mars") return 3;
	if (m == "avril") return 4;
	if (m == "mai") return 5;
	if (m == "juin") return 6;
	if (m == "juillet") return 7;
	if (m == "août") return 8;
	if (m == "septembre") return 9;
	if (m == "octobre") return 10;
	if (m == "novembre") return 11;
	if (m == "décembre") return 12;
	return 0;
}

// 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);

			while (li1) {
				if (li1.nodeType == 1) {
					var time1 = fus.parseContribTime(li1);
					if (time1.getTime() <= time2.getTime()) {
						if (time1.getTime() == time2.getTime()) {
							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 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] = "Création ébauche ville Sénégal"
        ////////////////////////////////

        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.appendChild(img); 
                
                toolbar.appendChild(ref);
        }
  }
}

function changeSummary(sampleText) {
        document.editform.wpSummary.value = sampleText;
}

$(DeluxeBar);

/////////////////////////////////////////////////////////////////////////////////////