MediaWiki:Onlyifediting.js

Материал из свободной русской энциклопедии «Традиция»
Перейти к: навигация, поиск
/*
 * Внимание! Этот файл не загружается!
 */
 
// Edit Tools loader:
//Prevent the static edittools from flashing before the compact edittools below is loaded.
appendCSS('div.edittools-text { display:none; }');

addOnloadHook(function () {
    // needs to be deferred until the DOM has fully loaded
    var placeholder = document.getElementById("editpage-specialchars");
    if (!placeholder || window.noDefaultEdittools) {
      //Show the static edittools again for users with "window.noDefaultEdittools=true".
      appendCSS('div.edittools-text { display:block; }');
      return;
    }
    var match = /(?:^| )edittools-version-(\d+)(?: |$)/.exec(placeholder.className);
 
    // set window.testJsEdittools = true to enable testing before full deployment
    if (!match && window.testJsEdittools)
        match = /(?:^| )edittools-version-(test\d+)(?: |$)/.exec(placeholder.className);
 
    if (!match) return;
    var url = wgScript + '?title=MediaWiki:Edittools.js&action=raw&ctype=text/javascript&nocache=' + match[1];
    importScriptURI(url);
});


/* Fixed by Dream */
//Edit Summary buttons 
 
function SummaryButtons(){
 var wpSummary = document.getElementById('wpSummary');
 if (!wpSummary || (wpSummary.form.wpSection && wpSummary.form.wpSection.value == 'new')) return;
 wpSummaryBtn = document.createElement('span'); //global var
 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('доп.', 'дополнение', 'Добавлены новые сведения');
 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;
}

addOnloadHook(SummaryButtons);

/* 
</source>

==== Викификатор ====
<source lang="JavaScript">
*/
importScript ("MediaWiki:Wikificator.js");
/* 
</source>

==== Дополнительные кнопки на панель инструментов ====
<source lang="JavaScript">
*/
//============================================================
// Extra toolbar options
//============================================================
//********WRITTEN BY User:MarkS********
//This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All.

// This is based on the original code on Wikipedia:Tools/Editing tools


// Новые панели инструментов. Пока закомментирован:
/*
importScript ('MediaWiki:Toolbar'
  + (!window.wgWikiEditorEnabledModules ? 'None' :
    (wgWikiEditorEnabledModules.toolbar ? 'New'  : 'Old')) + '.js');
*/
// Нижеследующий код, как и код MediaWiki:OnlyIfFormEditing, наверное, надо будет убрать:

function InsertButtonsToToolBar() {

    //Перенаправление
    mwCustomEditButtons[mwCustomEditButtons.length] = {
        "imageFile": "http://upload.wikimedia.org/wikipedia/ru/1/1d/Button_redirect_rus.png",
        "speedTip": "Перенаправление",
        "tagOpen": "#REDIRECT [[",
        "tagClose": "]]",
        "sampleText": ""}
    //Комментарий
    mwCustomEditButtons[mwCustomEditButtons.length] = {
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/3/34/Button_hide_comment.png",
        "speedTip": "Комментарий",
        "tagOpen": "<!-- ",
        "tagClose": " -->",
        "sampleText": "Комментарий"}
    //Цитата
    mwCustomEditButtons[mwCustomEditButtons.length] = {
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png",
        "speedTip": "Развёрнутая цитата",
        "tagOpen": "<blockquote>\n",
        "tagClose": "\n</blockquote>",
        "sampleText": "Развёрнутая цитата одним абзацем"}
    //Разделитель
    mwCustomEditButtons[mwCustomEditButtons.length] = {
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png",
        "speedTip": "Переносит текст на следующую строку,<br />",
        "tagOpen": "<br />",
        "tagClose": "",
        "sampleText": ""}
    //Уменьшение
    mwCustomEditButtons[mwCustomEditButtons.length] = {
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png",
        "speedTip": "Даёт возможность сделать текст маленьким",
        "tagOpen": "<small>",
        "tagClose": "</small>",
        "sampleText": "Малый текст"}
    //Зачёркивание
       mwCustomEditButtons[mwCustomEditButtons.length] = {
         "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c9/Button_strike.png",
         "speedTip": "Даёт возможность зачеркнуть текст",
         "tagOpen": "<s>",
         "tagClose": "</s>",
         "sampleText": "Зачёркнутый текст"};
    //Верхний индекс
    mwCustomEditButtons[mwCustomEditButtons.length] = {
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png",
        "speedTip": "Даёт возможность поднять текст вверх",
        "tagOpen": "<sup>",
        "tagClose": "</sup>",
        "sampleText": "Поднятый текст"}
    //Нижний индекс
    mwCustomEditButtons[mwCustomEditButtons.length] = {
         "imageFile": "http://upload.wikimedia.org/wikipedia/en/7/70/Button_lower_letter.png",
         "speedTip": "Даёт возможность опустить текст вниз",
         "tagOpen": "<sub>",
         "tagClose": "</sub>",
         "sampleText": "Опущенный текст"};
    //Шаблон
    mwCustomEditButtons[mwCustomEditButtons.length] = {
         "imageFile": "http://upload.wikimedia.org/wikipedia/commons/3/3b/Button_template_alt.png",
         "speedTip": "Даёт возможность заключить текст в шаблон",
         "tagOpen": "{{",
         "tagClose": "}}",
         "sampleText": "Поставить шаблон"};
    //Категория
    mwCustomEditButtons[mwCustomEditButtons.length] = {
         "imageFile": "http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png",
         "speedTip": "Даёт возможность поставить категорию в текст",
         "tagOpen": "[[Категория:",
         "tagClose": "]]",
         "sampleText": "Название категории"};
} 
 
addOnloadHook( InsertButtonsToToolBar );

//============================================================
// Table generator
//============================================================

/**
 *
 * English: Generate an array using Mediawiki syntax
 *
 * @author: fr:user:dake (language conversion and  new options added by en:user:Voice of All)
 * @version: 0.1
 */
 
function generateTableau(nbCol, nbRow, border, styleHeader, styleLine, exfield, align, padding)
{
        var code = "\n";

        if (padding==false) padding=0;
        else if (padding==true) padding=1;

        code += '{| align="' + align + '" class="standard"\n';
        code += '|+\n';

        for (var i=1;i<nbCol+1;i++) code += '! |Столбец ' + i + '\n';

        var items = 0;
        for (var j=0;j<nbRow;j++) {
                code += '|-----\n'
               
                for (var i=0;i<nbCol;i++) code += '| ячейка\n';
        }
        
        code += '|+\n';
        code += '|}\n';
        insertTags('','', code); 
}

/**
 *
 * English: Open a popup with parameters to generate an array. 
 * The number of rows/columns can be modified. Some additional
 * parameters are related to templates available on :fr
 *
 * @author: fr:user:dake
 * @version: 0.1
 */
 
function popupTable()
{
  var popup = window.open('','name','height=180,width=300,scrollbars=yes');
  
  javaCode =  '<script type="text\/javascript">function insertCode(){';
  javaCode += 'var row = parseInt(document.paramForm.inputRow.value); '
  javaCode += 'var col = parseInt(document.paramForm.inputCol.value); '
  javaCode += 'var bord = 0; '
  javaCode += 'var styleHeader = false; '
  javaCode += 'var styleLine = false; '
  javaCode += 'var exfield = false; '
  javaCode += 'var align = document.paramForm.inputAlign.value; '
  javaCode += 'var padding = false; '
  javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine,exfield,align,padding); '
  javaCode += "alert('Таблица создана!'); "
  javaCode += 'window.close(); '
  javaCode += '}<\/script>';
  
  popup.document.write('<html><head><title>Создание таблицы</title>');
  popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>');
  popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>');
  popup.document.write(javaCode); 
  popup.document.write('</head><body>');
  popup.document.write('<p>Введите параметры таблицы: </p>');
  popup.document.write('<form name="paramForm">');
  popup.document.write('Выравнивание: <input type="text" name="inputAlign" value="center" ><p>');
  popup.document.write('Количество строк: <input type="text" name="inputRow" value="3" ><p>');
  popup.document.write('Количество столбцов: <input type="text" name="inputCol" value="3" ><p>');
  popup.document.write('</form">');
  popup.document.write('<p><a href="javascript:insertCode()"> Вставить таблицу</a>     |');
  popup.document.write('    <a href="javascript:self.close()">Отмена (закрыть окно)</a></p>');
  popup.document.write('</body></html>');
  popup.document.close();
}

//Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags
function marque_tab()
{
 
 // Modified by Alexander Mashin. October 2nd, 2009, to enable edit instruments
 //     for free text area in forms (action 'editform'):

 var textbox = document.getElementById('wpTextbox1');
 if (!textbox) {
     textbox = document.getElementById('free_text');
     if (!textbox) return false;
 }
 
 var toolbar = document.getElementById('toolbar');
 if (!toolbar) return false;

 if (!document.selection && textbox.selectionStart == null)
 return false;
 
 var image = document.createElement("img");
 image.width = 23;
 image.height = 22;
 image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png';
 image.border = 0;
 image.alt = 'Таблица';
 image.title = 'Создать таблицу';
 image.style.cursor = "pointer";
 image.onclick = function() {
   popupTable();
   return false;
 }
 toolbar.appendChild(image);

 var image2 = document.createElement("img");
 image2.width = 65;
 image2.height = 22;
 image2.src = 'http://upload.wikimedia.org/wikisource/ru/d/d1/Button-wikifikator.png';
 image2.border = 0;
 image2.alt = 'Викификатор';
 image2.title = 'Викификатор';
 image2.style.cursor = "pointer";
 image2.onclick = function() {
   Wikify();
   return false;
 }
 toolbar.appendChild(image2);
}

addOnloadHook(marque_tab);

//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/, 'Traditio:Подписывайтесь')
    + '" title="(ссылка откроется в новом окне)" target=_blank>подробнее&nbsp;↗</a>)'//→ ↗
    cp.style.background = '#FFD080'
    cp.style.border = '1px solid orange'
    return false
   }catch(e) {return true}
 }
})

// русификация кнопок на панели инструментов
addOnloadHook(function(){
 if (mwEditButtons.length < 3) return;
 mwEditButtons[0].imageFile = 'http://traditio.ru/images/9/9a/Button_boldru.png';
 mwEditButtons[1].imageFile = 'http://traditio.ru/images/8/88/Button_italicru.png';
 mwEditButtons[2].imageFile = 'http://traditio.ru/images/3/3d/Button_internal_link_ru.png'
})

// END OF Onlyifediting.js