В четверг, 7 мая, около 16 часов (MSK) регистратор заморозил домен «cyclowiki.org» без уведомления владельцев. Сайт недоступен из большинства стран. Правление изучает возможности решения проблемы.

MediaWiki:Gadget-markadmins.js

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
// Гаджет для отображения флагов должностей в виде SVG-иконок (с запасным текстом)
mw.loader.using('mediawiki.util', function() {
    // Список участников по должностям
    var userSet = {
        'A':['Alm','Cyclowiki','CyclowikiBot','Dream','Ramir','Serebr','Урахара','Wiimo'],
        'W':['Cat1987','Incnis Mrsi','LllKSTlll','Testadmin','Wiimo'],
        'G':['Alm','Anas platyrhynchos','Cat1987','Fedya wr','FeiKa‏‎','Gorvzavodru','Leningradartist‎','LllKSTlll','Maid','Nichita1975','Sorata Kanda','Testadmin','Wikieditor','Андрей Зелев','Лук Лукнерович','Мит Сколов','Мит Сколов 2','Николаи','Ростислав Ладышев','Телевизор','Товарищ Аарон'],
        'R':['Cat1987','Gorvzavodru','Incnis Mrsi','ServusDei','Sorata Kanda','Suomen Joutsen','Андрей Зелев','Дореми','Testadmin','Wiimo','Энгельберт Хампердинк']
    };

    // Подписи к должностям
    var userSetTip = {
        'A':'администратор',
        'W':'мастер',
        'G':'смотритель',
        'R':'эксперт'
    };

    // Ссылки на изображения
    var userIcons = {
        'A':'https://dg.cyclowiki.org/images/8/87/Administratoro.svg',
        'W':'https://dg.cyclowiki.org/images/7/7c/Mastero.svg',
        'G':'https://dg.cyclowiki.org/images/0/03/Supervisoro.svg',
        'R':'https://dg.cyclowiki.org/images/e/e1/Experto.svg'
    };

    // CSS (минимальный)
    mw.util.addCSS('tt.userflags { color:#0645ad; } .userflags img { vertical-align: middle; margin: 0 1px; }');

    $(document).ready(function() {
        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(', ') + ')';

            // Создаем HTML с иконками, но если нет - буквы
            var flagHtml = '';
            for (var i = 0; i < flags.length; i++) {
                var flag = flags[i];
                var tip = userSetTip[flag];
                
                // Пробуем показать иконку, но если ее нет - показываем букву в скобках
                if (userIcons[flag]) {
                    flagHtml += '<img src="' + userIcons[flag] + '" width="16" height="16" title="' + tip + '" alt="(' + flag + ')">';
                } else {
                    flagHtml += '<span title="' + tip + '">(' + flag + ')</span>';
                }
            }

            // Вставляем после ссылки
            $(lnk)
                .after('\u00A0', '<tt class=userflags title="' + tips + '">' + flagHtml + '</tt>')
                .attr('title', $(lnk).attr('title') + tips);
        });
    });
});