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

Материал из Мегапедии
Перейти к: навигация, поиск
(Полностью переделал гаджет по циклопедийной версии (http://cyclowiki.org/wiki/MediaWiki:Gadget-markadmins.js))
Строка 1: Строка 1:
var userSet = {
+
//rewritten by m:User:Hoo man; 2012-08-26, adapted by user:Obersachse
'D':'|Амшель|',
+
mw.loader.using('mediawiki.util', function() {
'O':'|Dream|Robert Gates|',
+
var userSet = {
'H':'|FreeProxy|Serebr|Д-503|',
+
'D':['Амшель'],
}
+
'O':['Dream','Robert Gates'],
 +
'H':['FreeProxy','Serebr','Dream','Robert Gates','Амшель','Д-503','Есстествоиспытатель',],
 +
}, userSetTip = {
 +
'D':'диктатор',
 +
'O':'основатель',
 +
'H':'хранитель',
 +
};
 
   
 
   
var userSetTip = {
+
$(document).ready(function() {
'D':'диктатор',
+
mw.util.addCSS('tt.userflags {color:#0645ad}');
'O':'основатель',
+
mw.util.$content.find('a').each( function(i, lnk) {
'H':'хранитель'
+
if( /[?#]/.test(lnk.href) && lnk.href.indexOf('redlink=1') === -1 ) {
}
+
return;
 
+
}
addOnloadHook(markUsers)
+
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;
 +
}
 
   
 
   
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(', ')+')'
 
  }
 
}
 

Версия 02:25, 14 октября 2015

//rewritten by m:User:Hoo man; 2012-08-26, adapted by user:Obersachse
mw.loader.using('mediawiki.util', function() {
	var userSet = {
		'D':['Амшель'],
		'O':['Dream','Robert Gates'],
		'H':['FreeProxy','Serebr','Dream','Robert Gates','Амшель','Д-503','Есстествоиспытатель',],
	}, userSetTip = {
		'D':'диктатор',
		'O':'основатель',
		'H':'хранитель',
	};
 
	$(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);
 
		});
	});
});