MediaWiki:Editpage.js

Материал из Викитаки
Версия от 16:49, 24 апреля 2026; Admin (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
mw.loader.using(['mediawiki.util'], function () {

// --- Compatibility shim (same as Common.js) ---
var wgNamespaceNumber = mw.config.get('wgNamespaceNumber'),
    wgTitle           = mw.config.get('wgTitle'),
    wgArticlePath     = mw.config.get('wgArticlePath'),
    wgUserGroups      = mw.config.get('wgUserGroups'),
    wgScript          = mw.config.get('wgScript');

function addOnloadHook(fn) { $(fn); }
function importScript(page) {
    mw.loader.load(wgScript + '?title=' + encodeURIComponent(page.replace(/ /g, '_')) + '&action=raw&ctype=text/javascript');
}
// --- end shim ---

importScript('MediaWiki:Wikificator.js')


//Toolbar buttons — old "classic" toolbar API (mwEditButtons/mwCustomEditButtons) was
//removed in MediaWiki 1.18. Guarded so nothing throws when the API isn't present.

function StandardButtons(){
    if (typeof mwEditButtons === 'undefined' || mwEditButtons.length < 6) return
    mwEditButtons[5].tagClose = '|thumb]]'
}


function CustomButtons(){
    if (typeof mwCustomEditButtons === 'undefined') return
    var u = 'https://upload.wikimedia.org/'
    addCustomButton(u+'wikipedia/ru/1/1d/Button_redirect_rus.png', 'Перенаправление','#REDIRECT [[',']]','название страницы')
    addCustomButton(u+'wikisource/ru/a/a6/Button-cat.png','Категория','[\[Категория:',']]\n','')
    addCustomButton(u+'wikipedia/en/3/34/Button_hide_comment.png', 'Комментарий', '<!-- ', ' -->', 'Комментарий')
    addCustomButton(u+'wikipedia/en/f/fd/Button_blockquote.png', 'Развёрнутая цитата', '<blockquote>\n', '\n</blockquote>', 'Развёрнутая цитата одним абзацем')
    addCustomButton(u+'wikipedia/en/6/60/Button_insert_table.png',
        'Вставить таблицу', '{| class="wikitable"\n|', '\n|}', '-\n! заголовок 1\n! заголовок 2\n! заголовок 3\n|-\n| строка 1, ячейка 1\n| строка 1, ячейка 2\n| строка 1, ячейка 3\n|-\n| строка 2, ячейка 1\n| строка 2, ячейка 2\n| строка 2, ячейка 3')
    addCustomButton(u+'wikipedia/commons/7/79/Button_reflink.png','Сноска','<ref>','</ref>','')
    addFuncButton(u+'wikisource/ru/d/d1/Button-wikifikator.png', 'Викификатор', function(){ if (typeof Wikify === 'function') Wikify() })
}

function addCustomButton(img, tip, open, close, sample){
    if (typeof mwCustomEditButtons === 'undefined') return
    mwCustomEditButtons[mwCustomEditButtons.length] =
        {'imageFile':img, 'speedTip':tip, 'tagOpen':open, 'tagClose':close, 'sampleText':sample}
}


function addFuncButton(img, tip, func){
    var toolbar = document.getElementById('toolbar')
    if (!toolbar) return
    var i = document.createElement('img')
    i.src = img
    i.alt = tip;  i.title = tip
    i.onclick = func
    i.style.cursor = 'pointer'
    toolbar.appendChild(i)
}


//Edit Summary buttons

function SummaryButtons(){
    var wpSummary = document.getElementById('wpSummary')
    if (!wpSummary || (wpSummary.form.wpSection && wpSummary.form.wpSection.value == 'new')) return
    window.wpSummaryBtn = document.createElement('span')
    wpSummaryBtn.id = 'userSummaryButtonsA'
    wpSummary.parentNode.insertBefore(wpSummaryBtn, wpSummary.nextSibling)
    wpSummary.parentNode.insertBefore(document.createElement('br'), wpSummary.nextSibling)
    addSumButton('викиф.', 'викификация', 'Произведена викификация')
    addSumButton('оформл.', 'оформление', 'Улучшено оформление')
    addSumButton('стиль', 'стилевые правки', 'Поправлен стиль изложения')
    addSumButton('орфогр.', 'орфография', 'Поправлена орфография')
    addSumButton('пункт.', 'пунктуация', 'Изменена пунктуация')
    addSumButton('интервики', 'интервики', 'Исправлены межъязыковые ссылки (интервики)')
    addSumButton('кат.', 'категория', 'Исправлена категоризация')
    addSumButton('шаб.', 'шаблон', 'Добавлен / изменён шаблон')
    addSumButton('к удал.', 'к удалению', 'Страница предложена к удалению')
    addSumButton('доп.', 'дополнение', 'Добавлены новые сведения')
    addSumButton('иллюстрация', 'иллюстрация', 'Размещена иллюстрация')
    addSumButton('обнов.', 'обновление данных', 'Обновлены устаревшие данные')
}

function addSumButton(name, text, title) {
    var btn = document.createElement('a')
    btn.appendChild(document.createTextNode(name))
    btn.title = title
    btn.onclick = function(){insertSummary(text)}
    wpSummaryBtn.appendChild(btn)
}

function insertSummary(text) {
    var wpSummary = document.getElementById('wpSummary')
    if (wpSummary.value.indexOf(text) != -1) return
    if (wpSummary.value.match(/[^,; \/]$/)) wpSummary.value += ','
    if (wpSummary.value.match(/[^ ]$/)) wpSummary.value += ' '
    wpSummary.value += text
}
window.insertSummary = insertSummary


//call functions
addOnloadHook(StandardButtons)
addOnloadHook(CustomButtons)
addOnloadHook(SummaryButtons)


//sig reminder
if (wgNamespaceNumber % 2 || wgNamespaceNumber==4)
    addOnloadHook(function (){
        var cp = document.getElementById('editpage-copywarn')
        var wpSave = document.getElementById('wpSave')
        if (!cp || !wpSave) return
        if (wgNamespaceNumber == 4 &&
            (!wgTitle.match('^(Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на .*/|Запросы.|Кандидаты в .*/|К (удалению|объединению|переименованию|разделению|улучшению)/|Проверка участников/)') || wgTitle.match ('/Архив'))) return
        var ins = ' <a href=\'javascript:insertTags(" ~~\~~\","","")\'>~~\~~</a>'
        cp.innerHTML = 'Не забудьте добавить к вашему сообщению подпись с помощью' + ins
        cp.style.padding = '2px'
        cp.style.background = '#F7F7F7'
        cp.style.border = '1px solid gray'
        if (wgUserGroups && wgUserGroups.join().indexOf('autoconfirmed') != -1 && !window.sigWarning) return
        //unreg/new users only
        var warningDone = false
        wpSave.onclick = function(){
            try{
                if (warningDone || document.editform.wpTextbox1.value.indexOf('~~\~~') >= 0 ) return true
                warningDone = true
                cp.innerHTML = 'Пожалуйста, <b>подпишитесь</b>, добавив  в конце своего сообщения' + ins
                    + ' (<a href="' + wgArticlePath.replace(/\$1/, 'Википедия:Подписывайтесь')
                    + '" title="(ссылка откроется в новом окне)" target=_blank>подробнее&nbsp;↗</a>)'//→ ↗
                cp.style.background = '#FFD080'
                cp.style.border = '1px solid orange'
                return false
            }catch(e) {return true}
        }
    })

}); // mw.loader.using