//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// HINWEIS: Dieses Skript ist seit 26.07.2020 unter
// ] eingebunden.
// Es kann somit von allen Benutzern in ihren Einstellungen
// bei den "Helferlein" auf einfache Art und Weise aktiviert werden.
// Zur Hilfe siehe bitte ]
// Noch ein HINWEIS:
// Unter Benutzer:UT-Bot/markAdmins-bak.js habe ich die Version vom
// 28.07.2020 01:53 abgelegt, da ich hier das ganze Gedönse mit
// CU, OS, SG etc. (aus der WP) eliminieren will. Wir werden das eh
// so schnell nicht benötigen.
//***********************************************************************
// Skript ursprünglich von ], 28. Dez. 2005
// Ex-Admin-Markierung von ] und ]
// Adaptierung/zusätzliche Markierungen/Fixes: ]
// Aufgeräumt & beschleunigt: ]
// Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: ]
// Aus dewiki von Benutzer:PDD/markAdmins.js übernommen und für dewikt angepasst (04.08.2015)
//***********************************************************************
// <nowiki>
( function ( mw, $ ) {
function markAdmins( $content ) {
// Jede der folgenden Variablen kann in der eigenen monobook.js/vector.js/common.js vorbelegt werden.
// Getestet wird jeweils die Ausnahme, Standard ist jeweils das Gegenteil davon.
//
// die lokalen Benutzergruppen
// diese sind per Default immer aktiv, müssen bei Bedarf also
// in der eigenen common.js o. vector.js auf false gesetzt werden,
// wenn man sie AB-schalten will
// Der Schalter markadmins bewirkt die ANzeige von
// Admins, Interface Admins und Bürokraten auf einmal
var markadmins = window.markadmins !== false;
//
// markiert ehemalige Bürokraten, per Default aus, kann in der eigenen
// common.js o. vector.js bei Bedarf auf true gesetzt werden
var markexbureaucrats = window.markexbureaucrats === true;
//
// markiert ehemalige Admins, per Default aus, kann in der eigenen
// common.js o. vector.js bei Bedarf auf true gesetzt werden
var markexadmins = window.markexadmins === true;
// die nachfolgenden Benutzergruppen sind per Default NICHT aktiv,
// müssen also, wenn die Anzeige gewünscht wird,
// in der eigenen common.js o. vector.js auf true gesetzt werden,
// wenn man sie AN-schalten will
//
// Benutzergruppen aus de.wikipedia
var markwpadmins = window.markwpadmins === true;
var markwpbureaucrats = window.markwpbureaucrats === true;
//
// globale Benutzergruppen
var markstewards = window.markstewards === true;
var markgladmins = window.markgladmins === true;
var markglrollbacker = window.markglrollbacker === true;
var markombudsman = window.markombudsman === true;
var markrenamers = window.markrenamers === true;
//
// Admins aus Commons und Wikidate
var markcomadmins = window.markcomadmins === true;
var markwdadmins = window.markwdadmins === true;
//
// Schalter, um das Markieren von Unterseiten oder von
// einem selber zu ermöglichen, sind per Default AUS und
// müssen bei Bedarf in der eigenen common.js o. vector.js
// AN-geschaltet werden
var marksubpages = window.marksubpages === true;
var dontmarkmyself = window.dontmarkmyself === true;
// Die Markierungen dürfen nie leer sein, das wird hier sichergestellt.
//
// die lokalen Benutzergruppen
var markatxt = window.markatxt || 'A';
var markintatxt = window.markintatxt || 'IA';
var markbureautxt = window.markbureautxt || 'B';
var markexatxt = window.markexatxt || 'Ex-A';
var markexbureautxt = window.markexbureautxt || 'Ex-B';
// derzeit nicht aktiv
//var markrenatxt = window.markrenatxt || 'A-Ren';
// derzeit nicht aktiv
//
// Benutzergruppen aus de.wikipedia
var markwpatxt = window.markwpatxt || 'WP-A';
var markwpbureautxt = window.markwpbureautxt || 'WP-B';
//
// globale Benutzergruppen
// but global-renamers are a local group on Meta!
var markstewtxt = window.markstewtxt || 'S';
var markglatxt = window.markglatxt || 'gl-A';
var markglrollbtxt = window.markglrollbtxt || 'gl-R';
var markombudsmantxt = window.markombudsmantxt || 'Omb';
var markrenamerstxt = window.markrenamerstxt || 'Ren';
//
// Admins aus Commons und Wikidata
var markcomatxt = window.markcomatxt || 'Com-A';
var markwdatxt = window.markwdatxt || 'WD-A';
// diese Variablen werden einmal täglich in der Nacht von UT-Bot neu ermittelt und bei Bedarf von ihm aktualisiert
// Variablen-A
var admins = ;
var intadmins = ;
var bureaucrats = ;
var wpadmins = ;
var wpbureaucrats = ;
var stewards = ;
var gladmins = ;
var glrollbacker = ;
var comadmins = ;
var wdadmins = ;
var ombudsman = ;
var renamers = ;
// Variablen-E
// die obigen Variablen werden einmal täglich in der Nacht von UT-Bot neu ermittelt und bei Bedarf von ihm aktualisiert
//bei Bedarf von Hand zu ändern
var exadmins = ;
var exbureaucrats = ;
//bei Bedarf von Hand zu ändern
//derzeit inaktive Variablen
//var renadmins = ;
//derzeit inaktive Variablen
// Ende der vordefinierbaren Variablenwerte
// Vorzeitiger Abbruch, wenn es nichts zu tun gibt.
if (!markadmins &&
!markexadmins &&
!markwpadmins &&
!markwpbureaucrats &&
!markstewards &&
!markgladmins &&
!markglrollbacker &&
!markombudsman &&
!markrenamers &&
!markcomadmins &&
!markwdadmins) {
return;
}
var isSpecial = mw.config.get('wgCanonicalNamespace') === 'Special';
var isHistory = mw.config.get('wgAction') === 'history';
var isUserpage = mw.config.get('wgCanonicalNamespace') === 'User' || mw.config.get('wgCanonicalNamespace') === 'User_talk';
var isTalk = mw.config.get('wgNamespaceNumber') % 2 === 1;
var isProject = mw.config.get('wgCanonicalNamespace') === 'Project';
var isFile = mw.config.get('wgCanonicalNamespace') === 'File';
var isHelp = mw.config.get('wgCanonicalNamespace') === 'Help';
var isContrib = mw.config.get('wgCanonicalSpecialPageName') === 'Contributions';
var isDiff = mw.util.getParamValue('diff') !== null;
if (markadmins) {
//
var admins_str = '|' + admins.join( '|' ) + '|';
var intadmins_str = '|' + intadmins.join( '|' ) + '|';
var bureaucrats_str = '|' + bureaucrats.join( '|' ) + '|';
// var renadmins_str = '|' + renadmins.join( '|' ) + '|';
}
if (markexadmins) {
var exadmins_str = '|' + exadmins.join( '|' )+ '|';
}
if (markexbureaucrats) {
var exbureaucrats_str = '|' + exbureaucrats.join( '|' ) + '|';
}
if (markwpadmins) {
var wpadmins_str = '|' + wpadmins.join( '|' )+ '|';
}
if (markwpbureaucrats) {
var wpbureaucrats_str = '|' + wpbureaucrats.join( '|' ) + '|';
}
if (markcomadmins) {
var comadmins_str = '|'+comadmins.join('|')+'|';
}
if (markwdadmins) {
var wdadmins_str = '|' + wdadmins.join( '|' ) + '|';
}
if (markstewards) {
var stewards_str = '|' + stewards.join( '|' ) + '|';
}
if (markgladmins) {
var gladmins_str = '|' + gladmins.join( '|' ) + '|';
}
if (markglrollbacker) {
var glrollbacker_str = '|' + glrollbacker.join( '|' )+ '|';
}
if (markrenamers) {
var renamers_str = '|' + renamers.join( '|' )+ '|';
}
if (markombudsman) {
var ombudsman_str = '|' + ombudsman.join( '|' ) + '|';
}
if (isSpecial || isHistory || isUserpage || isTalk || isProject || isFile || isHelp || isDiff) {
var i;
var aNode;
var allanchors;
var allanchorsuser = ;
var followupmark;
//var searchExp = /\/wiki\/Benutzer(in)?(Diskussion)?:(.+)/;
// Ersetzt, damit (Diskussion) nicht auch markiert wird,
// etwas weiter unten muss dann auf searchExp.exec(href)
// umgestellt werden
var searchExp = /\/wiki\/Benutzer(in)?:(.+)/;
var searchExpTalk = /Diskussion:/;
var marker;
var mainpageanchor;
var SGSpecial;
if (isUserpage || isContrib) {
// für Benutzerseite u. Spezial:Beiträge die bisherige Methode
allanchors = document.getElementsByTagName('A');
} else {
// für alle anderen die Methode über mw.hook
allanchors = $content.get( 0 ).getElementsByTagName( 'A' );
}
mw.util.addCSS( 'span.adminMark { font-weight: bold; }' );
for (i=0; i < allanchors.length; i++) {
aNode = allanchors;
mainpageanchor = true;
talkpageanchor = false;
SGSpecial = false;
checkuserSpecial = false;
// if it's a link to a user
if ((href = aNode.getAttribute('href')) && (searchExp.exec(href) !== null)) {
//currUser = searchExp.exec(href);
// Ersetzt, damit (Diskussion) nicht auch markiert wird
// weil etwas weiter oben nun searchExp = /\/wiki\/Benutzer(in)?:(.+)/
currUser = searchExp.exec(href);
/* if (isUserpage) */ currUserClean = currUser.replace(/\/.*/,'');
if (currUserClean !== currUser) {
mainpageanchor = false;
}
if (searchExpTalk.exec(href) !== null) {
talkpageanchor = true;
}
if (mainpageanchor) {
allanchorsuser = currUserClean;
} else {
allanchorsuser = '';
}
followupmark = false;
if (i>0) {
if ((currUserClean === allanchorsuser) && talkpageanchor) {
followupmark = true;
}
}
currUser= '|' + currUserClean + '|';
marker = ;
if (markadmins) {
// is this user an admin?
if (admins_str.indexOf(currUser) !== -1) {
marker.push(markatxt);
}
// is this user a renamed admin?
/* if (renadmins_str.indexOf(currUser) !== -1) {
marker.push(markrenatxt);
} */
// is this user a bureaucrat?
if (bureaucrats_str.indexOf(currUser) !== -1) {
marker.push(markbureautxt);
}
// is this user an interface admin?
if (intadmins_str.indexOf(currUser) !== -1) {
marker.push(markintatxt);
}
}
if (markexadmins) {
// was this user an admin?
if (exadmins_str.indexOf(currUser) !== -1) {
marker.push(markexatxt);
}
}
if (markexbureaucrats) {
// was this user a bureaucrat?
if (exbureaucrats_str.indexOf(currUser) !== -1) {
marker.push(markexbureautxt);
}
}
if (markwpadmins) {
// is this user a wikipedia admin?
if (wpadmins_str.indexOf(currUser) !== -1) {
marker.push(markwpatxt);
}
}
if (markwpbureaucrats) {
// is this user a wikipedia bureaucrat?
if (wpbureaucrats_str.indexOf(currUser) !== -1) {
marker.push(markwpbureautxt);
}
}
if (markstewards) {
// is this user a steward?
if (stewards_str.indexOf(currUser) !== -1) {
marker.push(markstewtxt);
}
}
if (markcomadmins) {
// is this user a commons admin?
if (comadmins_str.indexOf(currUser) !== -1) {
marker.push(markcomatxt);
}
}
if (markwdadmins) {
// is this user a wikidata admin?
if (wdadmins_str.indexOf(currUser) !== -1) {
marker.push(markwdatxt);
}
}
if (markgladmins) {
// is this user a global sysop?
if (gladmins_str.indexOf(currUser) !== -1) {
marker.push(markglatxt);
}
}
if (markglrollbacker) {
// is this user a global rollbacker?
if (glrollbacker_str.indexOf(currUser) !== -1) {
marker.push(markglrollbtxt);
}
}
if (markrenamers) {
// is this user a global renamer?
if (renamers_str.indexOf(currUser) !== -1) {
marker.push(markrenamerstxt);
}
}
if (markombudsman) {
// is this user an ombudsman?
if (ombudsman_str.indexOf(currUser) !== -1) {
marker.push(markombudsmantxt);
}
}
// don't mark followups
if (!followupmark) {
// 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')))) {
// Umwandlung, damit der Vergleich mit "mw.config.get('wgUserName')" funktioniert
var currUserCleanDecoded = decodeURIComponent(currUserClean).replace(/_/g, ' ');
if ((marker.length > 0) && !(dontmarkmyself && (currUserCleanDecoded === mw.config.get('wgUserName')))) {
var aMark = document.createElement('span');
aMark.className = 'adminMark';
var aMarkText = document.createTextNode('\u00A0(' + marker.join('/') + ')');
aMark.appendChild(aMarkText);
aNode.appendChild(aMark);
}
}
}
}
}
}
}
mw.hook( 'wikipage.content' ).add( markAdmins );
}( mediaWiki, jQuery ) );
// </nowiki>