MediaWiki:Gadget-markadmins.js — различия между версиями

Материал из Мегапедии
Перейти к: навигация, поиск
м (обновление)
 
(не показано 29 промежуточных версий 8 участников)
Строка 1: Строка 1:
var userSet = {
+
//rewritten by m:User:Hoo man; 2012-08-26, adapted by user:Obersachse
'O':'|Arhssaarh|',
+
mw.loader.using('mediawiki.util', function() {
'R':'|Arhssaarh|Serebr|Darlingtonia californica|',
+
var userSet = {
'B':'|Великий Андрей Зелев|',
+
'Д':['Амшель'],
'A':'|Dream|',
+
'А':['Амшель','Есстествоиспытатель','Д-503'],
'C':'|Dream|',
+
'О':['Dream','Robert Gates'],
'S':'|Darlingtonia californica|',
+
'Х':['FreeProxy','Serebr','Dream','Robert Gates','Амшель','Д-503','Есстествоиспытатель'],
}
+
'В':['Амшель','Есстествоиспытатель'],
 +
                'ОГ':['Unknown','Есстествоиспытатель'],
 +
                'БУ':['Unknown','Andy Sun'],
 +
}, userSetTip = {
 +
'Д':'диктатор',
 +
'А':'член Правления',
 +
'В':'волшебник',
 +
'О':'основатель',
 +
'Х':'хранитель',
 +
'ОГ':'охранник границ',
 +
'БУ':'безумный удалист',
 +
};
 
   
 
   
var userSetTip = {
+
$(document).ready(function() {
'O':'основатель',
+
mw.util.addCSS('tt.userflags {color:#0645ad}');
'R':'член Правления',
+
mw.util.$content.find('a').each( function(i, lnk) {
'B':'бюрократ',
+
if( /[?#]/.test(lnk.href) && lnk.href.indexOf('redlink=1') === -1 ) {
'A':'администратор',
+
return;
'C':'чекюзер',
+
}
'S':'системный администратор}
+
var mm, f, user, flags, tips;
 
+
mm = /^Участни(к|ца):(.*)/.exec(lnk.title);
addOnloadHook(markUsers)
+
if( !mm ) {
 +
return;
 +
}
 +
user = decodeURIComponent(mm[2]);
 +
if (lnk.className.indexOf('new') !== -1) {
 +
user = user.replace(/ \([^\)]+\)$/,'');
 +
}
 +
flags = []; tips = [];
 +
for( f in userSet ) {
 +
if($.inArray( user, userSet[f] ) !== -1 ){
 +
flags.push(f);
 +
tips.push(userSetTip[f]);
 +
}
 +
}
 +
if( !flags.length ) {
 +
return;
 +
}
 
   
 
   
function markUsers(){
+
tips = ' ('+tips.join(', ')+')';
var body, lnk, mm, user, mark, i, k, flags, tips
+
   
cont = document.getElementById('bodyContent') || document.getElementById('content')
+
$(lnk)
if (!cont) return
+
.after('\u00A0', '<tt class=userflags title="'+tips+'">('+flags.join(',') + ')</tt>')
var links = cont.getElementsByTagName('A')
+
.attr('title', $(lnk).attr('title') + tips);
  for (i=0; i<links.length; i++){
+
   
  lnk = links[i]
+
});
  if (!lnk.title || ! (mm=lnk.title.match('Участник:(.*)'))) continue
+
});
  user = decodeURIComponent(mm[1])
+
});
  if (lnk.className.indexOf('new') != -1) user = user.replace(/ \([^\)]+\)$/,'')
 
  user = '|' + user + '|'
 
  flags = []
 
  for (k in userSet)
 
    if (userSet[k].indexOf(user) >= 0)
 
  flags.push(k)
 
  if (flags.length == 0) continue
 
  tips = []
 
  for (k in flags) tips.push(userSetTip[flags[k]])
 
  mark = document.createElement('tt')
 
  mark.className = 'userflags'
 
  mark.appendChild(document.createTextNode('(' + flags.join(',') + ')'))
 
  lnk.appendChild(mark)
 
  lnk.title += ' ('+tips.join(', ')+')'
 
  }
 
}
 

Текущая версия на 23:26, 15 октября 2015

//rewritten by m:User:Hoo man; 2012-08-26, adapted by user:Obersachse
mw.loader.using('mediawiki.util', function() {
	var userSet = {
		'Д':['Амшель'],
		'А':['Амшель','Есстествоиспытатель','Д-503'],
		'О':['Dream','Robert Gates'],
		'Х':['FreeProxy','Serebr','Dream','Robert Gates','Амшель','Д-503','Есстествоиспытатель'],
		'В':['Амшель','Есстествоиспытатель'],
                'ОГ':['Unknown','Есстествоиспытатель'],
                'БУ':['Unknown','Andy Sun'],
	}, userSetTip = {
		'Д':'диктатор',
		'А':'член Правления',
		'В':'волшебник',
		'О':'основатель',
		'Х':'хранитель',
		'ОГ':'охранник границ',
		'БУ':'безумный удалист',
	};
 
	$(document).ready(function() {
		mw.util.addCSS('tt.userflags {color:#0645ad}');
		mw.util.$content.find('a').each( function(i, lnk) {
			if( /[?#]/.test(lnk.href) && lnk.href.indexOf('redlink=1') === -1 ) {
				return;
			}
			var mm, f, user, flags, tips;
			mm = /^Участни(к|ца):(.*)/.exec(lnk.title);
			if( !mm ) {
				return;
			}
			user = decodeURIComponent(mm[2]);
			if (lnk.className.indexOf('new') !== -1) {
				user = user.replace(/ \([^\)]+\)$/,'');
			}
			flags = []; tips = [];
			for( f in userSet ) {
				if($.inArray( user, userSet[f] ) !== -1 ){
					flags.push(f);
					tips.push(userSetTip[f]);
				}
			}
			if( !flags.length ) {
				return;
			}
 
			tips = ' ('+tips.join(', ')+')';
 
			$(lnk)
			.after('\u00A0', '<tt class=userflags title="'+tips+'">('+flags.join(',') + ')</tt>')
			.attr('title', $(lnk).attr('title') +  tips);
 
		});
	});
});