Utilisateur:Dr Brains/monobook.js
Jump to navigation
Jump to search
Note : après avoir enregistré tes préférences, tu devras forcer son rechargement complet en ignorant le contenu actuel du cache de ton explorateur pour voir les changements : Mozilla / Firefox / Konqueror / Safari : maintiens la touche Majuscule (Shift) en cliquant le bouton Actualiser (Reload,) ou presse Maj-Ctrl-R (Maj-Cmd-R sur Apple Mac) ; Internet Explorer / Opera : maintiens la touche Ctrl en cliquant le bouton Actualiser ou presse Ctrl-F5.
//__NORICHEDITOR__ // Pas de WYGSYG sur ma page Javascript
/////////////////////////////////////////////////////////////////////// Redirection automatique vers le skin monobook
///////////////////////////////////////////////////////////////////////
var AdresseURL = window.location.href;
// Fonction de récupération des arguments de l'URL
function recuperesArgumentURL(argumentARecuperer){
urlPage = window.location.href;
listeArguments = urlPage.split(new RegExp(argumentARecuperer+"=", "g"));
if(listeArguments.length == 1) {
return false;
}else{
argumentRecherche = listeArguments[1].split(new RegExp("&", "g"));
}
return argumentRecherche[0];
}
// Ajout d'un lien dans les liens personnels pour revenir au skin wikimini
addOnloadHook (function(){
recuperesArgumentURL('useskin');
if(recuperesArgumentURL('useskin')!='wikimini'){
var UlPerso = document.getElementById('p-personal').getElementsByTagName('ul')[0];
UlPerso.innerHTML = '<li><a href="' + AdresseURL.split('monobook').join('wikimini') + '" title="Revenir à l\'habillage Wikimini" >Wikimini</a></li>' + UlPerso.innerHTML;
}
});
importScript('MediaWiki:Wikimini.js');
////////////////////////////////////////////////////////////////////////////////// FIN DE GESTION DE LA REDIRECTION ///////////////////////////////////////////////////////
var showFCKEditor = 0;
var popup = false; //pointer to popup document
var firstLoad = false;
var editorMsgOn = "''Rich Editor''";
var editorMsgOff = "Désactiver ''Rich Editor''";
var editorLink = "Désactiver ''Rich Editor''";
var saveSetting = 0;
var RTE_VISIBLE = 1;
var RTE_TOGGLE_LINK = 2;
var RTE_POPUP = 4;
var oFCKeditor = new FCKeditor( "wpTextbox1" ) ;
//Set config
oFCKeditor.BasePath = "/w/extensions/FCKeditor/fckeditor/" ;
oFCKeditor.Config["CustomConfigurationsPath"] = "/w/extensions/FCKeditor/fckeditor_config.js" ;oFCKeditor.Config["EditorAreaCSS"] = "/w/extensions/FCKeditor/css/fckeditor.css" ;
oFCKeditor.ToolbarSet = "Wikimini" ;
oFCKeditor.ready = false;
oFCKeditor.Config["showreferences"] = false;
oFCKeditor.Config["showsource"] = false;
/////////////////////////////////////////////////////////////////////// Fonctions génériques
///////////////////////////////////////////////////////////////////
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
function hasClass(node, className) {
if (node.className == className) {
return true;
}
var reg = new RegExp('(^| )'+ className +'($| )')
if (reg.test(node.className)) {
return true;
}
return false;
}
function addClass(node, className) {
if (hasClass(node, className)) {
return false;
}
node.className += ' '+ className;
return true;
}
function removeClass(node, className) {
if (!hasClass(node, className)) {
return false;
}
node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
return true;
}
function eregReplace(search, replace, subject) {
return subject.replace(new RegExp(search,'g'), replace);
}
function get_nextsibling(n){
x=n.nextSibling;
if(x==null) return false;
while (x.nodeType!=1) {
x=x.nextSibling;
if(x==null) return false;
}
return x;
}
function get_previoussibling(n){
x=n.previousSibling;
if(x==null) return false;
while (x.nodeType!=1) {
x=x.previousSibling;
if(x==null) return false;
}
return x;
}
function getTextContent(oNode) {
if (typeof(oNode.textContent)!="undefined") {return oNode.textContent;}
switch (oNode.nodeType) {
case 3: // TEXT_NODE
case 4: // CDATA_SECTION_NODE
return oNode.nodeValue;
break;
case 7: // PROCESSING_INSTRUCTION_NODE
case 8: // COMMENT_NODE
if (getTextContent.caller!=getTextContent) {
return oNode.nodeValue;
}
break;
case 9: // DOCUMENT_NODE
case 10: // DOCUMENT_TYPE_NODE
case 12: // NOTATION_NODE
return null;
break;
}
var _textContent = "";
oNode = oNode.firstChild;
while (oNode) {
_textContent += getTextContent(oNode);
oNode = oNode.nextSibling;
}
return _textContent;
}
function setCookie (cookieName, cookieValue, expires, path) {
document.cookie = escape(cookieName) + '=' + escape(cookieValue) + (expires ? '; EXPIRES=' + expires.toGMTString() : '') + "; PATH=/" ;
}
function getCookie(cookieName) {
var cookieValue = null;
var posName = document.cookie.indexOf(escape(cookieName) + '=' );
if (posName != -1) {
var posValue = posName + (escape(cookieName) + '=' ).length;
var endPos = document.cookie.indexOf(';', posValue) ;
if (endPos != -1) {
cookieValue = unescape(document.cookie.substring(posValue, endPos));
} else {
cookieValue = unescape(document.cookie.substring(posValue));
}
}
return decodeURIComponent(cookieValue);
}
/////////////////////////////////////////////////////////////////////// Ouverture des liens externes dans un nouvel onglet
///////////////////////////////////////////////////////////////////////
addOnloadHook(function() {
var alinks = document.getElementsByTagName('a');
var tablink, sitename;
for (var i = 0, leng = alinks.length; i < leng; i++) {
tablink = alinks[i];
if (tablink.className.indexOf("external") != -1 && tablink.href.indexOf(wgServer) == -1)
tablink.target = "_blank";
}
});
/////////////////////////////////////////////////////////////////////// Lors du passage de la souris au dessus d'un lien de section "modifier", colore la section à modifier.
///////////////////////////////////////////////////////////////////////
/* copié de http://en.wikipedia.org/wiki/User:Magnus_Manske/HighlightEditSections.js */
addOnloadHook ( extendededitlinks ) ;
function extendededitlinks_get_event_target ( e ) {
var targ ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) targ = targ.parentNode; // defeat Safari bug
while ( targ.nodeType != 1 || targ.className != "editsection" ) targ = targ.parentNode ;
return targ ;
}
function extendededitlinks_is_relevant_heading ( current , compare ) {
if ( current.nodeType != 1 ) return false ;
if ( current.tagName.length != 2 ) return false ;
if ( current.tagName.substr ( 0 , 1 ) != "H" ) return false ;
if ( current.tagName> compare.tagName) return false ;
return true ;
}
function extendededitlinks_onmouseover ( e ) {
var target = extendededitlinks_get_event_target ( e ) ;
var h2 = target ;
while ( h2.nodeType != 1 || h2.tagName.substr(0,1) != "H" ) h2 = h2.parentNode;
var newdiv = document.createElement ( "div" ) ;
newdiv.style.backgroundColor = "#DDDDDD" ;
// newdiv.style.border = "1px solid black" ;
// newdiv.style.padding = "2px" ;
h2.parentNode.insertBefore ( newdiv , h2 ) ;
newdiv = h2.previousSibling ; // Unneccessary?
var x = h2 ;
do {
var y = x ;
x = x.nextSibling ;
newdiv.appendChild ( y ) ;
} while ( x && !extendededitlinks_is_relevant_heading ( x , h2 ) ) ;
}
function extendededitlinks_onmouseout ( e ) {
var target = extendededitlinks_get_event_target ( e ) ;
var h2 = target ;
while ( h2.nodeType != 1 || h2.tagName.substr(0,1) != "H" ) h2 = h2.parentNode;
var newdiv = h2 ;
while ( newdiv.nodeType != 1 || newdiv.tagName != "DIV" ) newdiv = newdiv.parentNode;
for ( var y = newdiv.firstChild ; y ; y = z ) {
z = y.nextSibling ;
newdiv.parentNode.insertBefore ( y , newdiv ) ;
}
newdiv.parentNode.removeChild ( newdiv ) ;
}
function extendededitlinks () {
var spans = document.getElementsByTagName( "span" );
for ( var i = 0 ; i < spans.length ; i++ ) {
if ( spans[i].className != "editsection" ) continue ;
var a = spans[i].getElementsByTagName("a")[0] ;
a.onmouseover = extendededitlinks_onmouseover ;
a.onmouseout = extendededitlinks_onmouseout ;
}
}
///////////////////////////////////////// Liste de suivi Deluxe : Retirer/ajouter des pages de sa liste de suivi plus facilement /////////////////////////////////////////
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 countPages(regexp){
var match = new RegExp(regexp);
var count = 0;
for (var i=0;i<suiviManagerAllPages.length;i++) {
var pageName = suiviManagerAllPages[i].childNodes[0].getAttribute("value");
if (match.test(pageName)) {
count = (count+1);
}
}
return count;
}
function SuiviManagerLiensRouges(){
for (var i=0;i<suiviManagerAllPages.length;i++) {
if (suiviManagerAllPages[i].childNodes[1].className == "new"
&& (suiviManagerAllPages[i].childNodes[1].title.indexOf('/') == -1
|| suiviManagerAllPages[i].childNodes[3].className == "new") ) {
suiviManagerAllPages[i].childNodes[0].checked=true;
}
}
}
function countLiensRouges(){
var count = 0;
for (var i=0;i<suiviManagerAllPages.length;i++) {
if (suiviManagerAllPages[i].childNodes[1].className == "new"
&& (suiviManagerAllPages[i].childNodes[1].title.indexOf('/') == -1
|| suiviManagerAllPages[i].childNodes[3].className == "new") ) {
count = (count+1);;
}
}
return count;
}
function SuiviManagerRedirects(){
for (var i=0;i<suiviManagerAllPages.length;i++) {
if (suiviManagerAllPages[i].childNodes[1].className == "watchlistredir"
&& (suiviManagerAllPages[i].childNodes[1].title.indexOf('/') == -1
|| suiviManagerAllPages[i].childNodes[3].className == "watchlistredir") ) {
suiviManagerAllPages[i].childNodes[0].checked=true;
}
}
}
function countRedirects(){
var count = 0;
for (var i=0;i<suiviManagerAllPages.length;i++) {
if (suiviManagerAllPages[i].childNodes[1].className == "watchlistredir"
&& (suiviManagerAllPages[i].childNodes[1].title.indexOf('/') == -1
|| suiviManagerAllPages[i].childNodes[3].className == "watchlistredir") ) {
count = (count+1);
}
}
return count;
}
function SuiviManagerDeselect(){
for (var i=0;i<suiviManagerAllPages.length;i++) {
suiviManagerAllPages[i].childNodes[0].checked=false;
}
}
function SuiviManager() {
//////////////////////////////////////////////////
// Expressions régulières et liens de l'interface
//
// besoin d'aide pour les regexp ?
// http://www.commentcamarche.net/javascript/jsregexp.php3
//////////////////////////////////////////////////
var a=0;
var b=0;
var c=0;
var interfaceMsg = new Array();
var regexpList = new Array();
var regexpLien = new Array();
interfaceMsg[a++] = "Utilisateur";
regexpList[b++] = "^Utilisateur:";
regexpLien[c++] = "#editwatchlist-ns2";
interfaceMsg[a++] = "Wikimini";
regexpList[b++] = "^Wikimini:";
regexpLien[c++] = "#editwatchlist-ns4";
interfaceMsg[a++] = "Fichier";
regexpList[b++] = "^Fichier:";
regexpLien[c++] = "#editwatchlist-ns6";
interfaceMsg[a++] = "MediaWiki";
regexpList[b++] = "^MediaWiki:";
regexpLien[c++] = "#editwatchlist-ns8";
interfaceMsg[a++] = "Modèle";
regexpList[b++] = "^Modèle:";
regexpLien[c++] = "#editwatchlist-ns10";
interfaceMsg[a++] = "Aide";
regexpList[b++] = "^Aide:";
regexpLien[c++] = "#editwatchlist-ns12";
interfaceMsg[a++] = "Catégorie";
regexpList[b++] = "^Catégorie:";
regexpLien[c++] = "#editwatchlist-ns14";
interfaceMsg[a++] = "Fil de discussion";
regexpList[b++] = "^Fil de discussion:";
regexpLien[c++] = "#editwatchlist-ns90";
interfaceMsg[a++] = "Résumé";
regexpList[b++] = "^Résumé:";
regexpLien[c++] = "#editwatchlist-ns92";
interfaceMsg[a++] = "Quizz";
regexpList[b++] = "^Quizz:";
regexpLien[c++] = "#editwatchlist-ns100";
// ----------------------------------------------------------
var m=0;
var n=0;
var interfaceMsgTer = new Array();
var regexpListTer = new Array();
interfaceMsgTer[m++] = "Utilisateurs IP";
regexpListTer[n++] = "^Utilisateur:[0-9].*";
// ----------------------------------------------------------
var z=0;
var y=0;
var interfaceMsgBis = new Array();
var regexpListBis = new Array();
interfaceMsgBis[z++] = "Mes sous-pages";
regexpListBis[y++] = "^Utilisateur:" + wgUserName.replace(/_/g," ") + "\/";
//////////////////////////////////////////////////
var topTag = document.getElementById("contentSub")
// récupère toutes les pages
var bc = document.getElementById("bodyContent");
if(!bc) bc = document.getElementById("article");
if(!bc) bc = document.getElementById("mw_contentholder");
if(!bc) bc = document.body;
var watchlist = bc.getElementsByTagName("li");
for (var u=0;u<watchlist.length;u++) {
if(watchlist[u].firstChild.tagName == "INPUT") {
suiviManagerAllPages.push(watchlist[u]);
}
}
// prépare la mini-interface
var str = "<div style=\"background-color:#8ecfe4;height:8px;border:1px solid #AAAAAA;-moz-border-radius-topright:0.5em;-moz-border-radius-topleft:0.5em;margin-top:-1em;\"></div>"
+ "<div style=\"border:1px solid #6ac1de;border-top:0px solid white;margin-bottom:2em;padding:0.5em;text-align:center;-moz-border-radius-bottomright:0.5em;-moz-border-radius-bottomleft:0.5em;\">"
str += "<a href=\"javascript:SuiviManagerRegexp('^.*')\" title=\"Tout cocher\">"
+ "<b>Tout cocher</b>"
+ "</a> ("
+ countPages('^.*')
+ ") · ";
str += "<a href=\"javascript:SuiviManagerDeselect()\" title=\"Tout décocher\">"
+ "<b>Tout décocher</b>"
+ "</a> ("
+ countPages('^.*')
+ ")";
str += "<hr style=\"margin:0.5em;\">";
str += "<b>Espaces de noms</b><br/>";
for (var cpt = 0; cpt < interfaceMsg.length; cpt ++) {
if(cpt==5) str += '<br/>';
str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpList[cpt] + "')\" title=\"Cocher les pages de l'espace de noms : " + interfaceMsg[cpt] + "\">"
+ interfaceMsg[cpt]
+ "</a> ("
+ "<a href=\"http://fr.wikipedia.org/wiki/Spécial:Liste_de_suivi/edit"
+ regexpLien[cpt]
+ "\" title=\"Voir les pages suivies dans cet espace de noms\">↓</a> "
+ countPages(regexpList[cpt])
+ ") · ";
}
str += "<hr style=\"margin:0.5em;\">";
str += "<b>Sous-pages</b><br/>";
for (var cpt = 0; cpt < interfaceMsgBis.length; cpt ++) {
str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpListBis[cpt] + "')\" title=\"Cocher : " + interfaceMsgBis[cpt] + "\">"
+ interfaceMsgBis[cpt]
+ "</a> ("
+ countPages(regexpListBis[cpt])
+ ") · ";
}
str += "<hr style=\"margin:0.5em;\">";
str += "<b>Autres</b><br/>";
str += "<a href=\"javascript:SuiviManagerLiensRouges()\" title=\"Cocher : Liens Rouges\">"
+ "Liens rouges"
+ "</a> ("
+ countLiensRouges()
+ ") · ";
str += "<a href=\"javascript:SuiviManagerRedirects()\" title=\"Cocher : Redirections\" >"
+ "Redirections"
+ "</a> ("
+ countRedirects()
+ ") · ";
for (var cpt = 0; cpt < interfaceMsgTer.length; cpt ++) {
str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpListTer[cpt] + "')\" title=\"Cocher : " + interfaceMsgTer[cpt] + "\" >"
+ interfaceMsgTer[cpt]
+ "</a> ("
+ countPages(regexpListTer[cpt])
+ ") · ";
}
str += "<hr style=\"margin:0.5em;\">";
str += "<input type=\"submit\" value=\"Retirer les titres sélectionnés\"\/>";
var buttonPlus = document.createElement("div");
buttonPlus.setAttribute("style", "text-align:center;");
buttonPlus.innerHTML = "<br clear=all />" + str + "</div>";
var CibleBouton = document.getElementsByTagName("fieldset")[0];
CibleBouton.insertBefore(buttonPlus,CibleBouton.firstChild);
}
if((wgCanonicalSpecialPageName == "Watchlist") && document.URL.indexOf("edit") != -1 ) {
addOnloadHook(SuiviManager);
}
////////////////////////////////////////////////////////////////////////////////////
Ce que tu peux faire
Outils

Outils personnels