/*Скрипт, добавляющий во время предпросмотра кнопку @ рядом с подписями участников, которая вставляет в окно редактирования в позицию курсора шаблон {{ping}} с именем участника из подписиОснован на [[MediaWiki:Gadget-markadmins.js]]Баги: 1) после каждого нажатия на ссылку, окно браузера прокручивается к окну редактирования 2) из-за особенностей работы двух разных скриптов-выделителей (админов/ПИ и ПАТов), позиция ссылки отличается, но она всегда где-то в конце подписи3) срабатывает на любые ссылки на страницу участника (включая страницы из личного пространства и скрипты/css-файлы)*/functionaddPing(){varmm,user;mw.util.addCSS('a.userping {color:#0645ad; font-size: 10px;} a.userping:hover {cursor: pointer}');//Проверяем все <a> элементы (ссылки)mw.util.$content.find('a').each(function(i,lnk){//Смотрим, есть ли в ссылке слово участник/участницаmm=/^Участни(к|ца):(.*)/.exec(lnk.title);//Если нет, то идём дальшеif(!mm)return;if(/[?#]/.test(lnk.href)&&!/redlink=1/.test(lnk.href))return;user=decodeURIComponent(mm[2]);//Костыль. Можно, конечно, сделать ещё один user.replace(/\s\([^\)]+\)$/, ''), но тогда оно может убрать текст в скобках, если они есть в имени участника//Поскольку гаджет прав добавляет эти права к тултипам подписей, нужно эти права из полученного оттуда текста убратьuser=user.replace(/\s\(автопатрулируемый.*/,'').replace(/\s\(автопатрулируемый\sи\sоткатывающий.*/,'').replace(/\s\(переименовывающий\sфайлы.*/,'').replace(/\s\(переименовывающий\sбез\sперенаправлений.*/,'').replace(/\s\(патрулирующий.*/,'').replace(/\s\(патрулирующий\sи\sоткатывающий.*/,'').replace(/\s\(администратор.*/,'').replace(/\s\(бюрократ.*/,'').replace(/\s\(проверяющий\sучастников.*/,'').replace(/\s\(подводящий\sитоги.*/,'').replace(/\s\(ревизор.*/,'').replace(/\s\(клерк.*/,'').replace(/\s\(арбитр.*/,'');//Убираем "(страница отсутствует)" у любителей красных подписейif(lnk.className.indexOf('new')!=-1)user=user.replace(/ \([^\)]+\)$/,'');//Добавляем ссылку после подписи$(lnk).after('\u00A0','<a class="userping" title="Вставить шаблон {{ping}} с именем участника" onClick=\'javascript:mw.toolbar.insertTags(\"\{\{ping|'+user+'\}\}\")\'>@</a>');});}$(document).ready(function(){if(mw.config.get('wgAction')==='submit'){addPing();}});