MediaWiki:Gadget-renameuserlink.js

Материал из Традиция: Право
Перейти к: навигация, поиск
// <source lang="JavaScript">
 
/* 
 * Приспособление, добавляющее ссылку «Переименовать пользователя» к списку инструментов
 *     на странице пользователя, к списку свежих правок и к журналам,
 *     при условии, что просматривающий имеет такие права.
 *
 * Автор: Александр Машин, 8 апреля 2009.
 *
 */

// Является ли просматривающий страницу стюардом или бюрократом?
function isStewardOrBureaucrat () {
    for (var user_group in wgUserGroups) {
        if (user_group == 'steward' || user_group == 'bureaucrat') {
            return true;
        }
    }
    return false;
}

// Ссылка на страницу переименования пользователя user:
function renameUserlink (user) {
    var article_path = wgServer + wgArticlePath;
    return article_path.replace (/\$1/, 'Служебная:RenameUser?oldusername=' + user + '&reason=недопустимое%20имя&movepages=1'); 
}

// Добавление ссылки «Переименовать» к странице участника:
function addRenameUserLink2UserPage () {
    var ul  = document.getElementById ('p-tb').childNodes [1].firstChild;
    var li  = document.createElement ('li');
    var a   = document.createElement ('a');
    var txt = document.createTextNode ('Переименовать');
    a.href = renameUserlink (wgTitle); 
    a.appendChild (txt);
    li.appendChild (a);
    ul.appendChild (li);
    return true;
}

// Добавление ссылки «Переименовать» к спецстранице:
function addRenameUserLink2Special () {
    var rename_user_link = '<a href="' + renameUserLink ('\\2') + '" title="Переименовать пользователя">переименовать</a>';
    var container = document.getElementById ('bodyContent');
    container.innerHTML = container.innerHTML.replace (/(\(.+?обсуждение.+?\|.+?Contributions\/(.+?)".+?вклад.+?\|.+?блок.+?<\/a>)/, '\\1 | ' + rename_user_link);
    return true;
}

// Добавление ссылки «Переименовать» к любой странице участника, если есть на это права:
if (wgNamespaceNumber == 2 && isStewardOrBureaucrat ()) {
    addOnloadHook (addRenameUserLink2UserPage);
}

// Добавление ссылки «Переименовать» к любой спецстранице, если есть на это права:
if (wgNamespaceNumber == -1 && isStewardOrBureaucrat ()) {
    addOnloadHook (addRenameUserLink2Special);
}

// </source>