Naar inhoud springen

Gebruiker:Sjoerddebruin/RechtenMarkeren.js

Uit Wikipedia, de vrije encyclopedie
//***********************************************************************
// Skript ursprünglich von Benutzer:Euku, 28. Dez. 2005
// Adaptierung/zusätzliche Markierungen/Fixes: Benutzer:PDD
// Aufgeräumt & beschleunigt: Benutzer:Littl
// Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: Benutzer:Guandalug
// Anpassung an WikiData: User:NordNordWest
// Anpassung an nlwiki: User:Sjoerddebruin
//***********************************************************************
// 
( function ( mw, $ ) {
	function markAdmins( $content ) {

		var marksubpages = false;
		var dontmarkmyself = false;

		// static list
		var admins=["12345danNL", "Amarant", "Andre Engels", "Apdency", "Basvb", "CaAl", "Ciell", "DirkVE", "Dqfn13", "Ecritures", "FakirNL", "Freaky Fries", "Greenday2", "IJzeren_Jan", "Joopwiki", "Joris", "Kattenkruid", "Kippenvlees1", "Look_Sharp!", "Lymantria", "Machaerus", "Magalh%C3%A3es", "MatthijsWiki", "Mbch331", "Mezelf14", "Milliped", "MoiraMoira", "MrBlueSky", "Multichill", "Natuur12", "Richardw", "RonaldB", "Ronn", "Rudolphous", "Sjoerddebruin", "Smile4ever", "Taketa", "Trijnstel", "Tulp8", "Velocitas", "Warddr", "Wiki13", "Wikiklaas", "Wutsje", "Xxmarijnw"];
		var admins_str = '|'+admins.join('|')+'|';

		var bureaucrats=["CaAl", "Kippenvlees1", "Natuur12", "Taketa"];
		var bureaucrats_str = '|'+bureaucrats.join('|')+'|';

		var checkusers=["Akoopal", "Andre_Engels", "Groucho_NL", "Japiot", "Jcb"];
		var checkusers_str = '|'+checkusers.join('|')+'|';

		var arbcom=["CaAl", "Mvdleeuw", "Natuur12", "RonnieV", "Whaledad", "Woudloper", "Wthjmkuiper"];
		var arbcom_str = '|'+arbcom.join('|')+'|';
		if (
			mw.config.get( 'wgCanonicalNamespace' ) === 'Special' ||
			mw.config.get( 'wgAction' ) === 'history' ||
			mw.config.get( 'wgCanonicalNamespace' ) === 'User' ||
			mw.config.get( 'wgCanonicalNamespace' ) === 'User_talk' ||
			mw.config.get( 'wgNamespaceNumber' ) % 2 === 1 ||
			mw.config.get( 'wgCanonicalNamespace' ) === 'Project' ||
			mw.config.get( 'wgCanonicalNamespace' ) === 'Help' ||
			mw.util.getParamValue('diff') !== null
		) {
			var i;
			var aNode;
			var allanchors = $content.get( 0 ).getElementsByTagName("A");
			var searchExp = /.wiki.Gebruiker.(.+)/;
			var trenn = mw.config.get( 'wgArticlePath' ).replace( '$1', mw.config.get( 'wgFormattedNamespaces' )[2] );
			var marker;
			var mainpageanchor;
			var href;

			mw.util.addCSS('span.adminMark { font-size:smaller; }');
			for (i=0; i < allanchors.length; i++) {
				aNode = allanchors[i];
				mainpageanchor = true;
				// if it's a link to a user
				if ((href = aNode.getAttribute("href")) && (href.indexOf(trenn) !== -1)) {
					var currUser = searchExp.exec(href)[1];
					var currUserClean = currUser.replace(/\/.*/,'');
					if (currUserClean !== currUser) mainpageanchor = false;
					currUser= "|" + currUserClean + "|";
					marker = [];

					// is this user an admin?
					if (admins_str.indexOf(currUser) !== -1) marker.push( 'moderator' );
					// is this user a bureaucrat?
					if (bureaucrats_str.indexOf(currUser) !== -1) marker.push( 'bureaucraat' );
					// is this user a checkuser?
					if (checkusers_str.indexOf(currUser) !== -1) marker.push( 'checkuser' );
					// is this user a arbcom member?
					if (arbcom_str.indexOf(currUser) !== -1) marker.push( 'arbcomlid' );

					// don't mark certain pages, except link to user main page
					if (mainpageanchor ||
						(marksubpages && (mw.config.get( 'wgCanonicalSpecialPageName' ) !== "Prefixindex") &&
						(mw.config.get( 'wgCanonicalSpecialPageName' ) !== "Allpages")) )
						// check finished, now append node
						if ((marker.length > 0) && !(dontmarkmyself && (currUserClean === mw.config.get( 'wgUserName' )))) {
							// Variante 1 (traditionell)
							// var aMark = document.createElement("b");
							// Variante 2 (vom Erzbschof)
							var aMark = document.createElement("span");
							aMark.className = "adminMark";

							var aMarkText = document.createTextNode(" (" + marker.join("/") + ")");
							aMark.appendChild(aMarkText);
							aNode.appendChild(aMark);
						}
				}
			}
		}
	}

	mw.hook( 'wikipage.content' ).add( markAdmins );

}( mediaWiki, jQuery ) );
//