コンテンツにスキップ

利用者:WwLMvm/markAdmins for WwLMvm.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

//<source lang="javascript">
//管理者などが増減した場合、★マークがついてる部分を更新します。
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 = "Ad";              // 管理者。Markierung für Admins
var markrenatxt = "RenAd";       // Markierung für umbenannte Admins

var markexadmins = true;
var markexatxt = "ExAd";

var markexbureau = true;
var markexbureautxt = "ExBr";

var markbureautxt = "Br";         // ビューロクラット。Markierung für Bürokraten
var markstewtxt = "St";           // スチュワード。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 = "CU";     // チェックユーザー。Markierung für Checkuser-Berechtigte
var markombudsmantxt = "Om";    // オンブズマン。Markierung für Ombudspersonen

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

var markeliminator = true;        // 
var markeliminatortxt = "El";     // 削除者。eliminator

var markrollbacker = true;        // 
var markrollbackertxt = "Rl";     // 巻き戻し者。rollbacker

var markinterfaceeditor = true;        // 
var markinterfaceeditortxt = "IE";     // インターフェース編集者。interface editor


// 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 < asReadInUrlParameters.length; i++) {
		asReadInUrlParameter = asReadInUrlParameters[i].split("=");
		UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
	}
}

// page type variables: namespace == -1
var isSpecial   = (wgCanonicalNamespace == "Special");
var isContrib   = (isSpecial && (wgTitle == "投稿記録"));
var isWatchlist = (isSpecial && (wgTitle == "ウォッチリスト"));


//***********************************************************************
// Skript ursprünglich von [[Benutzer:Euku]], 28. Dez. 2005
// Ex-Admin-Markierung von [[Benutzer:Sir]] und [[Benutzer:Olliminatore]]
// Adaptierung/zusätzliche Markierungen/Fixes: [[Benutzer:PDD]]
// Aufgeräumt & beschleunigt: [[Benutzer:Littl]]
// Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: [[Benutzer:Guandalug]]
//***********************************************************************

// <nowiki>

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 = (wgAction == 'history'); 
	if (typeof(isUserpage) == 'undefined')
		isUserpage = ( (wgCanonicalNamespace == "User") || (wgCanonicalNamespace == "User_talk") );
	if (typeof(isTalk) == 'undefined')
		isTalk = (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(
			"Bellcricket", "Bletilla", "Cpro", "Damena", "Faso", "Halowand", "Jkr2255", "JungleCrow", "KMT", "Kamakura", "Kinori", "Kiyok", "Kkkdc", "Ks aka 98", "Kubou", "Kurihaya", "Law soma", "Los688", "Marine-Blue", "MaximusM4", "Miya", "Mobnoboka", "Muyo", "Nnh", "Ohgi", "Panpulha", "Peccafly", "Penn Station", "Rxy", "Sumaru", "Taisyo", "Tomo suzuki", "Tomos", "Triglav", "VZP10224", "W.CC", "Y-dash", encodeURI("おはぐろ蜻蛉"), encodeURI("さかおり"), encodeURI("アイザール"), encodeURI("アルトクール"), encodeURI("健ちゃん"), encodeURI("多摩に暇人"), encodeURI("東京特許許可局"), encodeURI("竹麦魚"), encodeURI("重陽"), encodeURI("霧木諒二"), encodeURI("青子守歌"));
		
		var admins_str = '|'+admins.join('|')+'|';
		// ★★★ ビューロクラットの一覧 ★★★
		var bureaucrats=new Array(
			"Bellcricket", "Jkr2255", "Ks_aka_98", "Penn_Station", "Tomos", "Triglav", "W.CC");
		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 */
			"Andre_Engels", "Avraham", "Bastique", "Darkoneko", "DerHexer", "Dferg", "Drini", "Dungodung", "Erwin", "Guillom", "J.delanoy", "Jusjih", "Jyothis", "Kylu", "Laaknor", "Leinad", "M7", "Magister_Mathematicae", "Mardetanha", "Mav", "Melos", "Mercy", "Millosh", "Nick1915", "Pathoschild", "Rdsmith4", "Shanel", "Shizhao", "Sj", "Wutsje");
		
		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(
			"Hijiri", "T. Nakamura", "Tim Starling", "Yoshitaka Mieda", "Ojigiri", "G~jawiki", "MH", "Kzhr", "Carbuncle", "0null0", "Skylab", "Lusheeta", "Tekune", "Sampo", "FeZn", "S kitahashi", "Brevam", "Kstigarbha", "TEy", "Diagraph01", "Gleam", "Gombe", "Ghaz", "Suisui", "Kropsoq", "Su-no-G", "Elthy", "PiaCarrot", "Michey.M", "Lonicera", "Tanuki Z", "Happy B", "Sketch", "Co.kyoto", "Brion VIBBER", "Calvero", "Hisagi", "Toki-ho", "Complex01", "Koba-chan", "Sphl", "Swind",  "Sat.K", "Miya.m", "Bakkai", "Noche de la pena", "Suguri F", "Tantal", "Cassiopeia sweet", "Carkuni", "Giftlists", "Electric goa", "Kanjy", "Mizusumashi", "Tan90deg", "Riden", "Sergei 1207", "Snow steed", "Ciro", "Vigorous action", "Hman", "Saoyagi2", "Mnd", "Makotoy", "Chatama", "Baldanders", "Kotoito", "Lupinoid", "Freetrashbox", "Kahusi", "Tietew", encodeURI("Kasuga~jawiki"), encodeURI("らりた"), encodeURI("こいつぅ"), encodeURI("っ"), encodeURI("NiKe"), encodeURI("赤井彗星"), encodeURI("はるひ"), encodeURI("欅"), encodeURI("しるふぃ"), encodeURI("海獺"), encodeURI("マクガイア"), encodeURI("もかめーる"), encodeURI("三日月"), encodeURI("背番号9"), encodeURI("赤の旋律"), encodeURI("白駒"), encodeURI("山田晴通"));
		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(
			"Brevam", "G", "T. Nakamura", "Tekune", "KMT", "Sketch", "Suisui", "Chatama", "Carkuni", "Kanjy", "Vigorous action", "rxy", encodeURI("はるひ"), encodeURI("欅"), encodeURI("赤の旋律"));
		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(
			"Ks_aka_98", "Marine-Blue", "Penn Station", encodeURI("アイザール"));
		var oversight_str = '|'+oversight.join('|')+'|';
		
		if (typeof(markoversighttxt) == 'undefined')
			markoversighttxt = "OS";
	}
	
	// eliminator
	if (markeliminator) {
		// Notes: nö
		// ★★★ 削除者の一覧 ★★★
		var eliminator=new Array(
			encodeURI("馬屋橋"));
		var eliminator_str = '|'+eliminator.join('|')+'|';
		
		if (typeof(markeliminatortxt) == 'undefined')
			markeliminatortxt = "EL";
	}
	
	// rollbacker
	if (markrollbacker) {
		// Notes: nö
		// ★★★ 巻き戻し者の一覧 ★★★
		var rollbacker=new Array(
			"Infinite0694", "Lanwi1", encodeURI("ぱたごん"), encodeURI("みちまん"));
		var rollbacker_str = '|'+rollbacker.join('|')+'|';
		
		if (typeof(markrollbackertxt) == 'undefined')
			markrollbackertxt = "R";
	}
	
	// interface editor
	if (markinterfaceeditor) {
		// Notes: nö
		// ★★★ インターフェース編集者の一覧 ★★★
		var interfaceeditor=new Array(
			"Frozen-mikan", "Waiesu", "Whym");
		var interfaceeditor_str = '|'+interfaceeditor.join('|')+'|';
		
		if (typeof(markinterfaceeditortxt) == 'undefined')
			markinterfaceeditortxt = "IE";
	}
	
	// checkuser
	if (markcheckuser) {
		// Notes: nö
		// ★★★ チェックユーザーの一覧 ★★★
		var checkuser=new Array(
			"Bellcricket", "Ks_aka_98", "Marine-Blue", "Penn_Station", "Triglav", "W.CC");
		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(
		"Alan", "Barras", "Gnom", "Huji", "NahidSultan", "Pajz", "Polimerek", "Rubin16", "Taketa");
	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 < allanchors.length; i++) {//リンクをすべてチェックする。
			aNode = allanchors[i];
			mainpageanchor = true;
			SGSpecial = false;
			// if it's a link to a user
			
			
			if ((href = aNode.getAttribute("href")) && (href.indexOf(trenn) != -1)) {//リンクでかつ「wiki/利用者」の形のURLを含むなら
				currUser = searchExp.exec(href)[1];//正規表現で利用者名を取得「wiki/(名前)」
				/* if (isUserpage) */ currUserClean = currUser.replace(/\/.*/,'');//スラッシュを消す?
				if (currUserClean != currUser) mainpageanchor = false;
				currUser= "|" + currUserClean + "|";// "|名前|"の形にする
				marker = new Array();
				
				if (admarbcom_str.indexOf(currUser) != -1) {
					SGSpecial = true;
					if (markarbcom || markadmins) marker.push(markarbcomtxt + "-" + markatxt);
				}
				
				if (markadmins && !SGSpecial) {
					// don't mark SG-only Adm twice
					if (!(admarbcom_str.indexOf(currUser) != -1)) {
						// 管理者かどうか?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 steward?
					if (stewards_str.indexOf(currUser) != -1) marker.push(markstewtxt);
					// オンブズマンかどうか?is this user an ombudsman?
					if (ombudsman_str.indexOf(currUser) != -1) marker.push(markombudsmantxt);
					// ビューロクラットかどうか?is this user a bureaucrat?
					if (bureaucrats_str.indexOf(currUser) != -1) marker.push(markbureautxt);
				}
				
				if (markeliminator) {
					// 削除者かどうか?this user is eliminator?
					if (eliminator_str.indexOf(currUser) != -1) marker.push(markeliminatortxt);
				}
				
				if (markrollbacker) {
					// 巻き戻し者かどうか?this user is rollbacker?
					if (rollbacker_str.indexOf(currUser) != -1) marker.push(markrollbackertxt);
				}
				
				if (markinterfaceeditor) {
					// インターフェース編集者かどうか?this user is interface editor?
					if (interfaceeditor_str.indexOf(currUser) != -1) marker.push(markinterfaceeditortxt);
				}
				
				if (markoversight) {
					// オーバーサイトかどうか?does this user have oversight rights?
					if (oversight_str.indexOf(currUser) != -1) marker.push(markoversighttxt);
				}
				
				if (markcheckuser) {
					// CUかどうか?does this user have checkuser rights?
					if (checkuser_str.indexOf(currUser) != -1) marker.push(markcheckusertxt);
				}
				
				if (markarbcom && !SGSpecial) {
					// 管理者かどうか?is this user an arbcom member?
					if (arbcom_str.indexOf(currUser) != -1) marker.push(markarbcomtxt);
				}
				
				if (markcomadmins) {
					// コモンズの管理者かどうか?is this user a commons admin?
					if (comadmins_str.indexOf(currUser) != -1) marker.push(markcomatxt);
				}
				
				if (markexadmins) {
					// かつて管理者だったかどうか?was this user an admin?
					if (exadmins_str.indexOf(currUser) != -1) marker.push(markexatxt);
					// かつてビューロクラットだったかどうか?was this user a bureaucrat?
					if (exbureaucrats_str.indexOf(currUser) != -1) marker.push(markexbureautxt);
				}
				
				// don't mark certain pages, except link to user main page
				if (mainpageanchor || (marksubpages && (wgCanonicalSpecialPageName != "Prefixindex") && (wgCanonicalSpecialPageName != "Allpages")) )
					// check finished, now append node
					
				//marker「(管)などのテキストを入れる変数」の長さがゼロより大きく、かつ自分をマークしない設定になっていて利用者が自分の時でないなら
				if ((marker.length > 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要素を<a>要素の末尾に入れる
				}
			}
		}
	}
}


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

//</source>