プロジェクト:ウィキ技術部/スクリプト開発/trunk/markAdmins.js

var markadmins = true;           // Admins u.ä. besonders hervorheben?
var marksubpages = false;        // auch Links auf Admin-Unterseiten markieren?
var mawatchlist = true;          // auch auf der Beobachtungsliste?
var macontribs = true;           // auch auf den Benutzerbeiträgen?

var markatxt = "管";              // 管理者。Markierung für Admins
var markrenatxt = "A-Ren";       // Markierung für umbenannte Admins

var markbureautxt = "ビ";         // ビューロクラット。Markierung für Bürokraten
var markstewtxt = "ス";           // スチュワード。Markierung für Stewards

var markarbcom = true;           // zusätzlich: Schiedsgericht besonders hervorheben?
var markarbcomtxt = "SG";        // Markierung für Schiedsgerichtler

var markcheckuser = true;        // zusätzlich: CheckUser besonders hervorheben?
var markcheckusertxt = "C";     // チェックユーザー。Markierung für Checkuser-Berechtigte
var markombudsmantxt = "オ";    // オンブズマン。Markierung für Ombudspersonen

var markoversight = true;        // zusätzlich: Oversights besonders hervorheben?
var markoversighttxt = "OS";     // オーバーサイト。Markierung für Oversight-Berechtigte

// get URL parameters (used for page type variables)
var UrlParameters = new Array ();
readparams();

function readparams() {
var asReadInUrlParameters;
var asReadInUrlParameter;

// Get URL parameters
asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
for (i = 0; i 

function markAdmins() {

// Variables that should be defined in your monobook
if (typeof(markadmins) == 'undefined')
markadmins = true;
if (typeof(markcomadmins) == 'undefined')
markcomadmins = false;
if (typeof(markexadmins) == 'undefined')
markexadmins = false;

if (typeof(markarbcom) == 'undefined')
markarbcom = true;
if (typeof(markoversight) == 'undefined')
markoversight = true;
if (typeof(markcheckuser) == 'undefined')
markcheckuser = true;

if (!markadmins && !markcomadmins && !markexadmins) 
return; //nichts zu tun, schnell weg hier

var langUser = "利用者:";        // in German 'Benutzer:'

if (typeof(marksubpages) == 'undefined')
marksubpages = false;
if (typeof(dontmarkmyself) == 'undefined')
dontmarkmyself = false;
if (typeof(isSpecial) == 'undefined')
isSpecial = (wgCanonicalNamespace == "Special");
if (typeof(isHistory) == 'undefined')
isHistory = (mw.config.get('wgAction') == 'history'); 
if (typeof(isUserpage) == 'undefined')
isUserpage = ( (wgCanonicalNamespace == "User") 
(wgCanonicalNamespace == "User_talk") );
if (typeof(isTalk) == 'undefined')
isTalk = (mw.config.get('wgNamespaceNumber') % 2 == 1); 
if (typeof(isProject) == 'undefined')
isProject = (wgCanonicalNamespace == "Project");
if (typeof(isDatei) == 'undefined')
isDatei = (wgCanonicalNamespace == "File");
if (typeof(isHelp) == 'undefined')
isHelp = (wgCanonicalNamespace == "Help");
if (typeof(isDiff) == 'undefined')
isDiff = UrlParameters"diff";

if (markadmins) {
// statische Liste (dynamisch: http://toolserver.org/~aka/dewiki_admins_utf8.txt )
// Stand: 12.10.2010
// Hei_ber: als Ombudsmann 7.12.2007-8.7.2008
// Domas_Mituzas: als Developer (??) seit 10.6.2009
// Brion_Testaccount: weil Brion irgendwas testen wollte...
var admins=new Array("Baldanders", "Bellcricket", "Bletilla", "Carkuni", "Cassiopeia_sweet", "Chatama", "Ciro", "Cpro", "Electric_goat", "Faso", "Freetrashbox", "Giftlists", "KMT", "Kahusi", "Kamakura", "Kanjy", "Kamakura", "Kinori", "Kiyok", "Kkkdc", "Kotoito", "Ks_aka_98", "Kurihaya", "Law_soma", "Los688", "Lupinoid", "Makotoy", "Marine-Blue", "Miya", "Mnd", "Mobnoboka", "Muyo", "Nnh", "Noche_de_la_pena", "Panpulha", "Peccafly", "Penn_Station", "Riden", "Sergei_1207", "Snow_steed", "Suguri_F", "Sumaru", "Taisyo", "Tan90deg", "Tantal", "Tietew", "Tomos", "Triglav", "VZP10224", "Vigorous_action", "W.CC", "Y-dash", encodeURI("おはぐろ蜻蛉"), encodeURI("しるふぃ"), encodeURI("アイザール"), encodeURI("三日月"), encodeURI("健ちゃん"), encodeURI("東京特許許可局"), encodeURI("欅"), encodeURI("海獺"), encodeURI("白駒"), encodeURI("竹麦魚"), encodeURI("背番号９"), encodeURI("霧木諒二"), encodeURI("青子守歌"));

var admins_str = '|'+admins.join('|')+'|';

var bureaucrats=new Array("Bellcricket", "Carkuni", "Chatama", "Kanjy", "Ks_aka_98", "Penn_Station", "Tomos");
var bureaucrats_str = '|'+bureaucrats.join('|')+'|';

// Stewards: Abgleich mit http://de.wikipedia.org/w/index.php?title=Spezial%3AGlobale_Benutzerliste&username=&group=steward&limit=100
// Datrio,Fantasy: bis 22.12.2007
// Suisui,Snowdog: bis 1.1.2008
// Maveric149 (auf meta: Daniel Mayer): nur noch Meta-Steward, nicht Global
var stewards=new Array(
/* global stewards */
"");
var stewards_str = '|'+stewards.join('|')+'|';

// renames
// Geograv -> Zeuke (Account existiert noch, jedoch Zweitaccount von Admin "Rauenstein", siehe http://de.wikipedia.org/w/index.php?title=Wikipedia:Adminkandidaturen&oldid=19387794 )
var renadmins=new Array("");
var renadmins_str = '|'+renadmins.join('|')+'|';

if (typeof(markatxt) == 'undefined')
markatxt = "A";
if (typeof(markbureautxt) == 'undefined')
markbureautxt = "B";
if (typeof(markstewtxt) == 'undefined')
markstewtxt = "S";
if (typeof(markrenatxt) == 'undefined')
markrenatxt = "A-Ren";
}

if (markcomadmins) {
// Notes: Eigntlich = Notschrei on commons
//        Krimpet = Fran Rogers on commons
//        Kuru = D-Kuru on commons
//        MPF-UK = MPF on commons
//        Fred Chess = Fred J on commons
//        Raul654: bei uns gesperrt?! (usurped?)
var comadmins=new Array("");
var comadmins_str = '|'+comadmins.join('|')+'|';

if (typeof(markcomatxt) == 'undefined')
markcomatxt = "Com-A";
}

if (markexadmins) {
/         Notizen zu den Ex-Admins:
- PyBot: nur technisch Admin (2003)
- VIBBER/Starling: Status unklar (als IW-Developer wohl Adm, 2003/2004 in Admin-Liste geführt)
- VIBBER 20.4.07 selbst geadmint (???)
- klar deklarierte Nachfolgeaccounts stehen auch hier (El->Jah, Robert Kropf->TheRunnerUp)
- umbenannte Ex-Admins stehen auch hier (keine Extramarkierung für die paar Leute)
- Legende dazu:
Coma/Koethnig2 -> Koethnig
*/
var exadmins=new Array("");
var exadmins_str = '|'+exadmins.join('|')+'|';

/         seltsame Einträge im Wikipedia:Bürokratenlogbuch (Februar 2004) scheinen
auf E23 und TomK32 als Bürokraten hinzudeuten; hier aber nicht aufgeführt

vor Februar 2004: Admin-Flag durch Developer gesetzt, deshalb Manske aufgeführt
*/
var exbureaucrats=new Array("");
var exbureaucrats_str = '|'+exbureaucrats.join('|')+'|';

if (typeof(markexatxt) == 'undefined')
markexatxt = "Ex-A";
if (typeof(markexbureautxt) == 'undefined')
markexbureautxt = "Ex-B";
}

// oversight
if (markoversight) {
// Notes: nö
var oversight=new Array("");
var oversight_str = '|'+oversight.join('|')+'|';

if (typeof(markoversighttxt) == 'undefined')
markoversighttxt = "OS";
}

// checkuser
if (markcheckuser) {
// Notes: nö
var checkuser=new Array("Bellcricket", "Cassiopeia_sweet", "Chatama", "Kanjy", "Ks_aka_98", "Marine-Blue", encodeURI("海獺"));
var checkuser_str = '|'+checkuser.join('|')+'|';

if (typeof(markcheckusertxt) == 'undefined')
markcheckusertxt = "CU";
}

// Ombudspersons: Abgleich mit http://de.wikipedia.org/w/index.php?title=Spezial%3AGlobale_Benutzerliste&username=&group=Ombudsmen
var ombudsman=new Array("Elian", "Lar", "Palnatoke", "Carkuni", "DR");
var ombudsman_str = '|'+ombudsman.join('|')+'|';

if (typeof(markombudsmantxt) == 'undefined')
markombudsmantxt = "Omb";

if (markarbcom 
markadmins) {

if (typeof(markarbcomtxt) == 'undefined')
markarbcomtxt = "SG";
var arbcom=new Array("");
var admarbcom=new Array("");

var arbcom_str = '|'+arbcom.join('|')+'|';
var admarbcom_str = '|'+admarbcom.join('|')+'|';
}

if (isSpecial 
isHistory 
isUserpage 
isTalk 
isProject 
isDatei 
isHelp 
isDiff) {
var i;
var aNode;
var allanchors = document.getElementsByTagName("A");
var searchExp = new RegExp(".wiki.%E5%88%A9%E7%94%A8%E8%80%85.(.+)"); // encodeURI("利用者")
	  var trenn="/wiki/" + encodeURI(langUser);
var marker;//表示されるテキストを入れる変数
var mainpageanchor;
var SGSpecial;
	   
appendCSS('span.adminMark { font-weight: bold; }');//CSSを足す。追加されるテキストのスタイルをここで決める。
	  
	  
for (i=0; i  0) && !(dontmarkmyself && (currUserClean == wgUserName))) {
// Variante 1 (traditionell)
// var aMark = document.createElement("b");
// Variante 2 (vom Erzbschof)
var aMark = document.createElement("span");//span要素を作成
aMark.className = "adminMark";//クラスを設定。このクラスは上でappendCSSで追加しているもの

var aMarkText = document.createTextNode(" (" + marker.join("/") + ")");//テキストをスラッシュで区切って接続し、カッコで挟む
aMark.appendChild(aMarkText);//span要素の中にテキストを入れる
aNode.appendChild(aMark);//span要素を要素の末尾に入れる
}
}
}
}
}

addOnloadHook(markAdmins);//ページのロードが終了したら 関数 markAdmins() を呼び出す