Если вы заметили ошибку, опечатку, или можете дополнить статью — правьте смело! Сначала необходимо зарегистрироваться (быстро и бесплатно). Затем нажмите кнопку «править» в верхней части страницы и внесите изменения. О том, как загружать иллюстрации, создавать новые статьи и о многом другом можно прочитать в справке.

MediaWiki:Editpage.js: различия между версиями

Материал из Товики — томской вики
(local images)
(images from towiki)
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
/*
importScript('MediaWiki:Wikificator.js')
==== Вставка стандартных описаний изменений ====
Из польской Википедии.
* Autor (Author): [[:pl:User:Adziura|Adam Dziura]]
* Poprawki (Fixes): [[:pl:User:Nux|Maciej Jaros]]
* Localized by: [[:ru:User:.:Ajvol:.]]
* Proofed by: [[:ru:User:ACrush]]
* Spoiled by: [[:ru:User:CodeMonk]]
<pre>
*/


function przyciskiOpis()
{
// stop before starting
if (window.przyciskiOpisDone)
return;


//
//Toolbar buttons
// sprawdzenie, czy to jest pole edycji z opisem zmian (nie jest takie jako nagłówek)
var el = document.getElementById('wpSummaryLabel');
if (el)
{
if (el.innerHTML.indexOf('ие изменений')==-1)
return // stop
;
}
else
{
return; // stop
}
//
// dodanie elementu okalającego przyciski bezpośrednio za opisem zmian
      // создание контейнера с кнопками стандартных описаний изменений
var el = document.getElementById('wpSummary').nextSibling;
var opisBtns = document.createElement('span');
opisBtns.id = 'userSummaryButtonsA'
el.parentNode.insertBefore(document.createElement('br'), el)
el.parentNode.insertBefore(opisBtns, el)
//
// dodawanie przycisków
      // добавление
//var kl = 'userButtonsStyle';
var kl = ''; // klasa jest niepotrzebna (wszystkie <a> w #userSummaryButtonsA ustawione poprzez CSS)
if (opisBtns)
{
// drobne różne
                przyciskiDodaj(opisBtns, 'викиф.', 'dodajOpis("викификация")', kl,
'Произведена викификация');
przyciskiDodaj(opisBtns, 'оформл.', 'dodajOpis("оформление")', kl,
'Улучшено оформление');
przyciskiDodaj(opisBtns, 'стиль', 'dodajOpis("стилевые правки")', kl,
'Поправлен стиль изложения');
przyciskiDodaj(opisBtns, 'орфогр.', 'dodajOpis("орфография")', kl,
'Поправлена орфография и пунктуация');
przyciskiDodaj(opisBtns, 'интервики', 'dodajOpis("интервики")', kl,
'Исправлены межъязыковые ссылки (интервики)');
przyciskiDodaj(opisBtns, 'кат.', 'dodajOpis("категория")', kl,
'Исправлена категоризация');
przyciskiDodaj(opisBtns, 'шаб.', 'dodajOpis("шаблон")', kl,
'Добавлен / изменён шаблон');
przyciskiDodaj(opisBtns, 'к удал.', 'dodajOpis("к удалению")', kl,
'Страница предложена к удалению');
przyciskiDodaj(opisBtns, 'доп.', 'dodajOpis("дополнение")', kl,
'Добавлены новые сведения');
przyciskiDodaj(opisBtns, 'иллюстрация', 'dodajOpis("иллюстрация")', kl,
'Размещена иллюстрация');
przyciskiDodaj(opisBtns, 'обнов.', 'dodajOpis("обновление данных")', kl,
'Обновлены устаревшие данные');
przyciskiDodaj(opisBtns, 'откат', 'dodajOpis("откат")', kl,
'Предыдущее изменение отменено (откат)');
}
}


/*
function StandardButtons(){
Parametry:
if (mwEditButtons.length < 6) return
* elUserBtns - element okalający, do którego dodać przycisk
mwEditButtons[5].tagClose = '|thumb]]'
* pTekst - tekst w środku przycisku
}
* pAkcja - akcja (w formie tekstowej) jaką wykonać przy naciśnięciu; może być ciągiem poleceń
* pKlasa - klasa jeśli konieczna
* pOpis - opis widoczny w dymku przy przycisku
*/
function przyciskiDodaj(elUserBtns, pTekst, pAkcja, pKlasa, pOpis) {
var nowyBtn = document.createElement('a');


// atrybuty
nowyBtn.appendChild(document.createTextNode(pTekst));
nowyBtn.title = pOpis;
if (pKlasa != '')
nowyBtn.className = pKlasa
;
nowyBtn.onclick = new Function(pAkcja);


// dodanie przycisku
function CustomButtons(){
elUserBtns.appendChild(nowyBtn);
addCustomButton('http://towiki.ru/w/images/1/1d/Button_redirect_rus.png', 'Перенаправление','#REDIRECT [[',']]','название страницы')
addCustomButton('http://towiki.ru/w/images/a/a6/Button-cat.png','Категория','[\[Категория:',']]\n','')
addCustomButton('http://towiki.ru/w/images/3/34/Button_hide_comment.png', 'Комментарий', '<!-- ', ' -->', 'Комментарий')
addCustomButton('http://towiki.ru/w/images/f/fd/Button_blockquote.png', 'Развёрнутая цитата', '<blockquote>\n', '\n</blockquote>', 'Развёрнутая цитата одним абзацем')
addCustomButton('http://towiki.ru/w/images/0/04/Button_array.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('http://towiki.ru/w/images/7/79/Button_reflink.png','Сноска','<ref>','</ref>','')
}
}


function dodajOpis(opis) {
function addCustomButton(img, tip, open, close, sample){
var wpS = document.editform.wpSummary;
mwCustomEditButtons[mwCustomEditButtons.length] =
if (wpS.value != '' && wpS.value.charAt(wpS.value.length-2) != '/')
  {'imageFile':img, 'speedTip':tip, 'tagOpen':open, 'tagClose':close, 'sampleText':sample}
{
wpS.value += ', ' + opis
}
else
{
wpS.value += opis
}
}
}


addOnloadHook(przyciskiOpis);


/*
function addFuncButton(img, tip, func){
</pre>
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)
}


==== Викификатор ====
<pre>
*/
document.write('<script type="text/javascript" src="'
              + 'http://wiki.t-sk.ru/w/index.php?title=MediaWiki:Wikificator.js'
              + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');


/*
function WikifButton(){
</pre>
var t = document.getElementById('wpTextbox1')
==== Дополнительные кнопки на панель инструментов ====
if (!t || (!document.selection && t.selectionStart == null)) return
<pre>
addFuncButton('http://towiki.ru/w/images/d/d1/Button-wikifikator.png', 'Викификатор', Wikify)
*/
}
//============================================================
// 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
//Edit Summary buttons


function InsertButtonsToToolBar()
function SummaryButtons(){
{
var wpSummary = document.getElementById('wpSummary')
//Перенаправление
if (!wpSummary || (wpSummary.form.wpSection && wpSummary.form.wpSection.value == 'new')) return
mwCustomEditButtons[mwCustomEditButtons.length] = {
wpSummaryBtn = document.createElement('span') //global var
    "imageFile": "http://wiki.t-sk.ru/w/images/1/1d/Button_redirect_rus.png",
wpSummaryBtn.id = 'userSummaryButtonsA'
    "speedTip": "Перенаправление",
wpSummary.parentNode.insertBefore(wpSummaryBtn, wpSummary.nextSibling)
    "tagOpen": "#REDIRECT [[",
wpSummary.parentNode.insertBefore(document.createElement('br'), wpSummary.nextSibling)
    "tagClose": "]]",
addSumButton('викиф.', 'викификация', 'Произведена викификация')
    "sampleText": "название страницы"}
addSumButton('оформл.', 'оформление', 'Улучшено оформление')
//Категория
addSumButton('стиль', 'стилевые правки', 'Поправлен стиль изложения')
mwCustomEditButtons[mwCustomEditButtons.length] = {
addSumButton('орфогр.', 'орфография', 'Поправлена орфография')
    "imageFile": "http://wiki.t-sk.ru/w/images/a/a6/Button-cat.png",
addSumButton('пункт.', 'пунктуация', 'Изменена пунктуация')
    "speedTip": "Категория",
addSumButton('интервики', 'интервики', 'Исправлены межъязыковые ссылки (интервики)')
    "tagOpen": "[[Категория:",
addSumButton('кат.', 'категория', 'Исправлена категоризация')
    "tagClose": "]]\n",
addSumButton('шаб.', 'шаблон', 'Добавлен / изменён шаблон')
    "sampleText": "название категории"}
addSumButton('к удал.', 'к удалению', 'Страница предложена к удалению')
//Комментарий
addSumButton('доп.', 'дополнение', 'Добавлены новые сведения')
mwCustomEditButtons[mwCustomEditButtons.length] = {
addSumButton('иллюстрация', 'иллюстрация', 'Размещена иллюстрация')
    "imageFile": "http://wiki.t-sk.ru/w/images/3/34/Button_hide_comment.png",
addSumButton('обнов.', 'обновление данных', 'Обновлены устаревшие данные')
    "speedTip": "Комментарий",
    "tagOpen": "<!-- ",
    "tagClose": " -->",
    "sampleText": "Комментарий"}
//Цитата
mwCustomEditButtons[mwCustomEditButtons.length] = {
    "imageFile": "http://wiki.t-sk.ru/w/images/f/fd/Button_blockquote.png",
    "speedTip": "Развёрнутая цитата",
    "tagOpen": "<blockquote>\n",
    "tagClose": "\n</blockquote>",
    "sampleText": "Развёрнутая цитата одним абзацем"}
}
}


addOnloadHook( InsertButtonsToToolBar );
function addSumButton(name, text, title) {
 
var btn = document.createElement('a')
//============================================================
btn.appendChild(document.createTextNode(name))
// Table generator
btn.title = title
//============================================================
btn.onclick = function(){insertSummary(text)}
 
wpSummaryBtn.appendChild(btn)
/**
*
* 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);
}
}


/**
function insertSummary(text) {
*
var wpSummary = document.getElementById('wpSummary')
* English: Open a popup with parameters to generate an array.
  if (wpSummary.value.indexOf(text) != -1) return
* The number of rows/columns can be modified. Some additional
if (wpSummary.value.match(/[^,; \/]$/)) wpSummary.value += ','
* parameters are related to templates available on :fr
if (wpSummary.value.match(/[^ ]$/)) wpSummary.value += ' '
*
wpSummary.value += text
* @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()
{
var toolbar = document.getElementById('toolbar');
if (!toolbar) return false;
var textbox = document.getElementById('wpTextbox1');
if (!textbox) return false;
if (!document.selection && textbox.selectionStart == null)
return false;
var image = document.createElement("img");
image.width = 23;
image.height = 22;
image.src = 'http://wiki.t-sk.ru/w/images/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");
//call functions
image2.width = 69;
addOnloadHook(StandardButtons)
image2.height = 22;
addOnloadHook(CustomButtons)
image2.src = 'http://wiki.t-sk.ru/w/images/d/d1/Button-wikifikator.png';
addOnloadHook(WikifButton)
image2.border = 0;
addOnloadHook(SummaryButtons)
image2.alt = 'Викификатор';
image2.title = 'Викификатор';
image2.style.cursor = "pointer";
image2.onclick = function() {
  Wikify();
  return false;
}
toolbar.appendChild(image2);
}


addOnloadHook(marque_tab);


// END OF Onlyifediting.js
//sig reminder
// </pre>
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}
}
})

Текущая версия от 16:45, 23 июля 2008

importScript('MediaWiki:Wikificator.js')


//Toolbar buttons

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


function CustomButtons(){
 addCustomButton('http://towiki.ru/w/images/1/1d/Button_redirect_rus.png', 'Перенаправление','#REDIRECT [[',']]','название страницы')
 addCustomButton('http://towiki.ru/w/images/a/a6/Button-cat.png','Категория','[\[Категория:',']]\n','')
 addCustomButton('http://towiki.ru/w/images/3/34/Button_hide_comment.png', 'Комментарий', '<!-- ', ' -->', 'Комментарий')
 addCustomButton('http://towiki.ru/w/images/f/fd/Button_blockquote.png', 'Развёрнутая цитата', '<blockquote>\n', '\n</blockquote>', 'Развёрнутая цитата одним абзацем')
 addCustomButton('http://towiki.ru/w/images/0/04/Button_array.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('http://towiki.ru/w/images/7/79/Button_reflink.png','Сноска','<ref>','</ref>','')
}

function addCustomButton(img, tip, open, close, sample){
 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)
}


function WikifButton(){
 var t = document.getElementById('wpTextbox1')
 if (!t || (!document.selection && t.selectionStart == null)) return
 addFuncButton('http://towiki.ru/w/images/d/d1/Button-wikifikator.png', 'Викификатор', Wikify)
}

//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('обнов.', 'обновление данных', 'Обновлены устаревшие данные')
}

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
}


//call functions
addOnloadHook(StandardButtons)
addOnloadHook(CustomButtons)
addOnloadHook(WikifButton)
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}
 }
})