মিডিয়াউইকি:Gadget-markAdmins.js

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন।
  • অপেরা: Ctrl-F5 টিপুন।
$(function () {
	function markAdmins() {
		// স্থির তালিকা
		var admins = ['Aishik_Rehman', 'Ashiq_Shawon', 'Ferdous', 'MdsShakil', 'Moheen', 'NahidSultan', 'RiazACU', 'RockyMasum', 'Suvray', 'Wikitanvir', 'Yahya', 'Zaheen', 'আফতাবুজ্জামান'];
		var admins_str = '|' + admins.join('|') + '|';

		var bureaucrats = ['NahidSultan', 'Wikitanvir'];
		var bureaucrats_str = '|' + bureaucrats.join('|') + '|';

		var checkusers = ['NahidSultan', 'RiazACU'];
		var checkusers_str = '|' + checkusers.join('|') + '|';

		var oversighters = ['MdsShakil', 'Yahya'];
		var oversighters_str = '|' + oversighters.join('|') + '|';

		var inta_admins = ['Yahya', 'আফতাবুজ্জামান'];
		var inta_admins_str = '|' + inta_admins.join('|') + '|';

		// স্টুয়ার্ডগণ
		var stewards = ['Ajraddatz', 'Albertoleoncio', 'AmandaNP', 'AntiCompositeNumber', 'Base', 'Bsadowski1', 'DerHexer', 'Elton', 'EPIC', 'HakanIST', 'Hasley', 'Hoo_man', 'JJMC89', 'Johannnes89', 'Jon_Kolbert', 'MarcGarver', 'Martin_Urbanec', 'Masti', 'Melos', 'Mykola7', 'RadiX', 'Sakretsu', 'Schniggendiller', 'Sotiale', 'Stryn', 'Superpes15', 'Tegel', 'Teles', 'Vermont', 'Wim_b', 'Xaosflux', 'Yahya', 'علاء'];
		var stewards_str = '|' + stewards.join('|') + '|';

		// ন্যায়পাল কমিশনের সদস্য
		var ombudsmen = ['Ameisenigel', 'Arcticocean', 'Bennylin', 'Daniuu', 'Doğu', 'Emufarmers', 'Faendalimas', 'MdsShakil', 'Minorax', 'Nehaoua', 'Renvoy', 'RoySmith', 'だ*ぜ'];
		var ombudsmen_str = '|' + ombudsmen.join('|') + '|';

		if (
			mw.config.get('wgCanonicalNamespace') === 'Special' ||
			mw.config.get('wgAction') === 'history' ||
			mw.config.get('wgNamespaceNumber') % 2 === 1 ||
			mw.config.get('wgCanonicalNamespace') === 'User' ||
			mw.config.get('wgCanonicalNamespace') === 'Project' ||
			mw.config.get('wgCanonicalNamespace') === 'Help' ||
			mw.util.getParamValue('diff') !== null
		) {
			var i;
			var aNode;
			var $bodyContent = $('#bodyContent').get(0);
			var allanchors = $bodyContent ? $bodyContent.getElementsByTagName('A') : [];
			var trenn = mw.config.get('wgArticlePath').replace('$1', mw.config.get('wgFormattedNamespaces')[2]) + ':';
			var searchExp = new RegExp(mw.util.escapeRegExp(trenn) + '(.+)');
			var marker;
			var mainpageanchor;
			var href;

			mw.util.addCSS('span.adminMark { font-weight: bold; }');
			for (i = 0; i < allanchors.length; i++) {
				aNode = allanchors[i];
				mainpageanchor = true;
				// যদি এটি কোনও ব্যবহারকারীর লিংক হয়
				if ((href = aNode.getAttribute('href')) && (decodeURI(href).indexOf(trenn) !== -1)) {
					var currUser = searchExp.exec(decodeURI(href))[1];
					var currUserClean = currUser.replace(/\/.*/, '');
					if (currUserClean !== currUser) {
						mainpageanchor = false;
					}
					currUser = '|' + currUserClean + '|';
					marker = [];

					// এই ব্যবহারকারী কি প্রশাসক?
					if (admins_str.indexOf(currUser) !== -1) {
						marker.push('প্র');
					}
					// এই ব্যবহারকারী কি ব্যুরোক্র্যাট?
					if (bureaucrats_str.indexOf(currUser) !== -1) {
						marker.push('ব্যু');
					}
					// এই ব্যবহারকারী কি ব্যবহারকারী পরীক্ষক?
					if (checkusers_str.indexOf(currUser) !== -1) {
						marker.push('ব্য-প');
					}
					// এই ব্যবহারকারী কি গোপনকারী?
					if (oversighters_str.indexOf(currUser) !== -1) {
						marker.push('OS');
					}
					// এই ব্যবহারকারী কি ইন্টারফেস প্রশাসক?
					if (inta_admins_str.indexOf(currUser) !== -1) {
						marker.push('ই-প্র');
					}
					// এই ব্যবহারকারী কি স্টুয়ার্ড?
					if (stewards_str.indexOf(currUser) !== -1) {
						marker.push('স্টু');
					}
					// এই ব্যবহারকারী কি ন্যায়পাল কমিশনের সদস্য?
					if (ombudsmen_str.indexOf(currUser) !== -1) {
						marker.push('ন্যা');
					}
					// ব্যবহারকারীর প্রধান পাতার লিংক ব্যতীত নির্দিষ্ট পাতাগুলি চিহ্নিত করবেন না।
					if (mainpageanchor && marker.length > 0) {
						// Variant 1 (traditionell)
						// var aMark = document.createElement('b');
						// Variant 2 (vom Erzbschof)
						var aMark = document.createElement('span');
						aMark.className = 'adminMark';

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