Utilisateur:PoM/monobook.js

Un article de Wikipédia, l'encyclopédie libre.

Note : Après avoir publié la page, vous devrez forcer son rechargement pour voir les changements : Mozilla / Konqueror / Firefox : Shift-Ctrl-R, Internet Explorer / Opera : Ctrl-F5, Safari : Cmd-R.

<!--
 
/*********************************************************
 *          OUTILS GÉNÉRAUX
 *********************************************************/
 
/*
 * addLoadEvent : appeler une fonction lorsque la page est chargée
 */
 
//''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.
 
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"><img src="http://www.google.com/intl/en/logos/Logo_60wht.gif" height="20px">'
            + '<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);
// -----------------------------------------------------------------
 
 
 
function addLoadEvent(func) {
  if (window.addEventListener) {
    window.addEventListener("load", func, false);
  } else 
  if (window.attachEvent) {
    window.attachEvent("onload", func);
  }
}
 
/*
 * insertAfter : insérer un élément dans une page
 */
 
function insertAfter(parent, node, referenceNode) {
    parent.insertBefore(node, referenceNode.nextSibling);
}
 
/*********************************************************
 *          OUTILS À DESTINATION DE TOUS UTILISATEURS
 *********************************************************/
 
/*
 * NUPatrol : Patrouille nouveaux arrivants
 */
 
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 NUPatrol(){
	if ( window.location.href.indexOf( 'Special:Log/newusers') < 0 &&
	     window.location.href.indexOf( '&type=newusers' ) < 0  ) return;
 
	var items, item, i, links, user, name, talk, contribs, insertLoc, link;
 
	items = document.getElementById( 'bodyContent' ).getElementsByTagName( 'ul' )[ 0 ].getElementsByTagName( 'li' );
 
	function NewLink( txt, url, plainlinks, linkColor )
	{	var a = document.createElement( 'a' );
			a.appendChild( document.createTextNode( txt ) );
			a.href = url;
		if ( plainlinks ) a.className = 'plainlinks';
		if ( linkColor )
		{	if ( typeof linkColor == "string" )
					a.style.color = linkColor;
			else	a.style.color = '#FF0000'; // old default behavior
		}
		return a;
	}
 
	for ( i = 0; i < items.length; i++ )
	{
		item = items[ i ];
 
		links = item.getElementsByTagName( 'a' );
 
			user = links[ 0 ]; name = user.firstChild.nodeValue;
			talk = links[ 2 ]; talk.firstChild.nodeValue = 'discussion'; // lowercase 'Talk' for consistency
		contribs = links[ 3 ];
 
		insertLoc = user.nextSibling; // ' newusers '
 
		item.insertBefore( document.createTextNode( ' ( ' ), insertLoc );
 
		item.insertBefore( talk, insertLoc );
		item.insertBefore( document.createTextNode( ', ' ), insertLoc );
 
		item.insertBefore( contribs, insertLoc );
		item.insertBefore( document.createTextNode( ', ' ), insertLoc );
 
		item.insertBefore( NewLink( 'actions', '/w/index.php?title=Special%3ALog&user=' + name, true, '#000088' ), insertLoc );
		item.insertBefore( document.createTextNode( ', ' ), insertLoc );
 
		item.insertBefore( NewLink( 'blocages', '/w/index.php?title=Special%3ALog&type=block&page=User%3A' + name, true, '#008800' ), insertLoc );
		item.insertBefore( document.createTextNode( ', ' ), insertLoc );
 
		item.insertBefore( NewLink( 'est bloqué ?', '/wiki/Special:Ipblocklist?action=search&ip=' + name, true, '#888800' ), insertLoc );
		item.insertBefore( document.createTextNode( ', ' ), insertLoc );
 
		item.insertBefore( NewLink( 'bloquer', '/w/index.php?title=Special:Blockip&ip=' + name, true, '#880000' ), insertLoc );
 
		item.insertBefore( document.createTextNode( ' )' ), insertLoc );
 
		item.removeChild( insertLoc.nextSibling ); // should remove the span
		item.removeChild( insertLoc ); // should remove ' newusers ' text
	}
}
addLoadEvent (NUPatrol);
 
/*
 * DeluxeBar : meilleur champ d'édition
 */ 
 
function DeluxeBar() {
  if (document.createTextNode) {
  	var toolbar = document.getElementById("toolbar"); 
	if (!toolbar) return;
 
        var messages = new Array()
 
	messages[0] = "{{subst:" + "Bienvenue sur ta page"  + "}}" +  "~~" + "~~";
	messages[1] = "{{subst:" + "Bienvenue" + "}}" +  "~~" + "~~";
        messages[2] = "{{subst:" + "Test 1" + "}}" +  "~~" + "~~";      
        messages[3] = "{{subst:" + "Test 2" + "}}" +  "~~" + "~~";
        messages[4] = "{{subst:" + "Test 3" + "}}" +  "~~" + "~~";
        messages[5] = "{{subst:" + "Bienvenue spammeur" + "}}" +  "~~" + "~~";
        messages[6] = "{{subst:" + "VandaleBloqué|n" + "}}" +  "~~" + "~~";
	messages[7] = "{{" + "suppression" + "}}";
        messages[8] = "#" + "{{"+ "Supprimer" + "}}" + " Pour des raisons que moi seul connait mais qui respecte ainsi la PdD qui oblige à argumenter.";
        messages[9] = "#" + "{{"+ "Conserver" + "}}" + " Pour des raisons que moi seul connait mais qui respecte ainsi la PdD qui oblige à argumenter.";
        messages[10] = "--{{"+ "Utilisateur:PoM/Signature" + "}}";
 
	var images = new Array()
	images[0] = "http://commons.wikimedia.org/wiki/Image:Button_accueilA.png";
	images[1] = "http://commons.wikimedia.org/wiki/Image:Button_accueilB.png";
        images[2] = "http://commons.wikimedia.org/wiki/Image:Bouton_Vandale1.png";
        images[3] = "http://commons.wikimedia.org/wiki/Image:Bouton_Vandale2.png";
        images[4] = "http://commons.wikimedia.org/wiki/Image:Bouton_Vandale3.png";
        images[5] = "http://commons.wikimedia.org/wiki/Image:Button_base.png";
        images[6] = "http://commons.wikimedia.org/wiki/Image:Button_base.png";
	images[7] = "http://commons.wikimedia.org/wiki/Image:Button_base.png";
        images[8] = "http://commons.wikimedia.org/wiki/Image:Button_base.png";
        images[9] = "http://commons.wikimedia.org/wiki/Image:Button_base.png";
        images[10] = "http://upload.wikimedia.org/wikipedia/commons/f/ff/Qsicon_Achtung.png";
 
 
	var commentaires = new Array()
	commentaires[0] = "Bienvenue sur ta page !";
	commentaires[1] = "Bienvenue !";
        commentaires[2] = "avertissement 1er niveau";
        commentaires[3] = "avertissement 2e niveau";
        commentaires[4] = "avertissement 3e niveau" ;
        commentaires[5] = "avertissement spammeur";
        commentaires[6] = "avis de blocage" ;
        commentaires[7] = "Proposé à la suppression"; 
        commentaires[8] = "Supprimer et motif";
        commentaires[9] = "Conserver et motif";
        commentaires[10] = "Signature pas content";
        ////////////////////////////////
 
	for (var i=0;i<messages.length;i++) {
		var img = document.createElement("img");
		img.setAttribute("src", images[i]);
		img.setAttribute("alt", commentaires[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;
}
addLoadEvent(DeluxeBar);
 
/*
 * OptimizedShortPages : rajout de fonctionnalités dans [[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);
 
/*
 * Bistro_Oracle, PaS_PaF_CSS_JS, Vandalisme : Ajout de liens dans la barre de navigation vers des pages souvent consultées
 */
 
function Bistro_Oracle() {
  var a = document.getElementById("p-navigation");
  if (a) {
    b = a.getElementsByTagName("ul");
    if(b.length > 0) {
      b[0].innerHTML = b[0].innerHTML + '<li><a style="display: inline" id="n-bistro" title="Wikipédia:Le Bistro/'+ TodayDate() +'" href="/wiki/Wikip%C3%A9dia:Le_Bistro/'+ TodayDate() +'">Bistro</a>, <a style="display: inline" id="n-bistro" title="Oracle" href="/wiki/Wikipédia:Oracle">Oracle</a>, <a style="display: inline" id="n-bistro" title="BA" href="/wiki/WP:BA">BA</a></li>'
    }
  }
}
addLoadEvent(Bistro_Oracle);
 
function PaS_PaF_CSS_JS() {
  var a = document.getElementById("p-navigation");
  if (a) {
    b = a.getElementsByTagName("ul");
    if(b.length > 0) {
      b[0].innerHTML = b[0].innerHTML + '<li><a style="display: inline" id="n-pas" title="Wikipédia:Pages à supprimer" href="/w/index.php?title=Wikip%E9dia:Pages%20%E0%20supprimer&action=purge">PàS</a>, <a style="display: inline" id="n-paf" title="Wikipédia:Pages à fusionner" href="/w/index.php?title=Wikip%E9dia:Pages%20%E0%20fusionner&action=purge">PàF</a>, <a style="display: inline" id="n-CSS" title="Utilisateur:PoM/monobook.css" href="/w/index.php?title=Utilisateur:PoM/monobook.css">CSS</a>, <a style="display: inline" id="n-JS" title="Utilisateur:PoM/monobook.js"href="/w/index.php?title=Utilisateur:PoM/monobook.js">JS</a></li>'
    }
  }
}  
addLoadEvent(PaS_PaF_CSS_JS);
 
function Vandalisme() {
  var a = document.getElementById("p-navigation");
  if (a) {
    b = a.getElementsByTagName("ul");
    if(b.length > 0) {
      b[0].innerHTML = b[0].innerHTML + '<li><a style="display: inline" id="n-vand" title="Wikipédia:Vandalisme en cours"href="/wiki/Wikipédia:Vandalisme_en_cours/Alertes_en_cours">Vandalisme</a>, <a style="display: inline" id="n-vand" title="Liste de blocage"href="/wiki/Special:ipblocklist">ListeB</a></li>' ;
    }
  }
}
addLoadEvent(Vandalisme);
 
function LienArbitrage() {
  var a = document.getElementById("p-navigation");
  if (a) {
    b = a.getElementsByTagName("ul");
    if(b.length > 0) {
      b[0].innerHTML = b[0].innerHTML + '<li><a style="display: inline" id="n-arbcom" title="Comité d\'arbitrage" href="/wiki/Wikipédia:Comité d\'arbitrage/Arbitrage">Arbitrage</a>, <a style="display: inline" id="n-arbcom" title="Requêtes" href="/wiki/Wikipédia:Requête aux administrateurs">Requêtes</a></li>' ;
    }
  }
}
addLoadEvent(LienArbitrage);
 
/*
 * CategoryTree : Arborescence de catégories
 */
 
function CategoryTree() {
  // Auteur : Anakin, version du 11 décembre 2005
  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 indexofampercent = categoryname.indexOf("&");
    if (indexofampercent != -1)
      categoryname = categoryname.substring(0, indexofampercent);
    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?wiki=' + wikiname + '&art=on&cat=' + categoryname;
    li.appendChild(a);
    document.getElementById('ca-nstab-category').parentNode.appendChild(li);
  }
}
addLoadEvent(CategoryTree);
 
/*
 * OngletPurge : Onglet pour purger le cache
 */
 
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);
 
 
/* == Popup de Lupin == */
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>');
 
simplePopups=true;
popupDelay=0.7;
popupStructure='original';
popupOnEditSelection=false;
popupAdminLinks=true;
 
var oldEditsectionLinks = true;
 
/*************************
 *   Importer commons    *
 *************************/
 
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);
 
/*************************
 *   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);