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

Материал из SRNS
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
importMW('Wikificator')
+
//dynamically load Commons-style Edittools
+
function createEdittoolsLink(){
function wgImg(img){
+
  //get div.mw-editTools
  return /^http:/i.test(img) ? img : 'http://upload.wikimedia.org/wikipedia/'+img
+
var box = document.getElementById('wpTextbox1')
}
+
  while (box && box.className!='mw-editTools') box=box.nextSibling
   
+
if (!box) return
mwCustomEditButtons['wikif'= [function(){Wikify()}, 'commons/0/06/Wikify-toolbutton.png', 'Викификатор — автоматический обработчик текста']
+
//create a link
   
+
var lnk = document.createElement('a')
   
+
  lnk.href = 'javascript:loadCommonsTools()'
var _cnt
+
  lnk.title = 'Load Commons-style Edittools'  
if ($.wikiEditor){
+
lnk.id = 'loadCommonsEdittoos'
  appendCSS('#local-toolbar {height:26px; border-right:1px solid #ddd;\
+
lnk.appendChild(document.createTextNode('[load edittools]'))
  margin:3px; padding-right:6px} #local-toolbar img {padding:2px}')
+
lnk.style.cssText = 'float:right'
  _cnt = '#wikiEditor-ui-toolbar'
+
box.appendChild(lnk)
}else if (document.getElementById('toolbar')){
+
  _cnt = '#toolbar'
+
  importMW('ToolbarOld')
+
}else{ //no toolbar
+
  _cnt = '#editform'
+
  appendCSS('#local-toolbar img {border:1px outset gray; background:#ddd; margin:2px; height:22px}')
+
 
}
 
}
+
function loadCommonsTools(){
addOnloadHook(function(){
+
  importScript('MediaWiki:Edittools.js')
  //attach local toolbar
+
  var lnk = document.getElementById('loadCommonsEdittoos')
$('<div id=local-toolbar style="float:left" />')
+
if (lnk) lnk.parentNode.removeChild(lnk)
  .prependTo(_cnt)
+
//attach local buttons
+
for (var id in mwCustomEditButtons){
+
  var b = mwCustomEditButtons[id]
+
  if (!b.length) continue
+
    attachFuncBtn(id, b[0], b[1], b[2])
+
+
})
+
+
+
function attachFuncBtn(id, func, img, tip){
+
$('<img id="'+id+'" src="'+wgImg(img)+'" style="cursor:pointer" '
+
    +'title="'+tip+'" alt="'+tip.substr(0,3)+'" />')
+
  .appendTo('#local-toolbar')
+
  .click(func)
+
 
}
 
}
+
if (doneOnloadHook) createEdittoolsLink()
function addFuncBtn(id, func, img, tip){
+
else addOnloadHook(createEdittoolsLink)
if (document.getElementById('local-toolbar'))
+
  attachFuncBtn(id, func, img, tip)
+
else  
+
  mwCustomEditButtons[id] = [func, img, tip]
+
}
+
+
+
+
//Summary buttons
+
function addSumButton(name, text) {
+
$('<a title="'+text+'">'+name+'</a>').click(insertSummary).appendTo(wpSummaryButtons)
+
}
+
function insertSummary() {
+
var text = this.title, sum = $('#wpSummary'), vv = sum.val()
+
if (vv.indexOf(text) != -1) return
+
if (/[^,; \/]$/.test(vv)) vv += ','
+
if (/[^ ]$/.test(vv)) vv += ' '
+
sum.val(vv + text)
+
}
+
+
function summaryButtons(){
+
var sum = document.getElementById('wpSummary')
+
if (!sum || (sum.form.wpSection && sum.form.wpSection.value == 'new')) return
+
appendCSS('\
+
#userSummaryButtonsA a {background:#cef; border:1px solid #adf; padding:0 2px; margin:0 2px;\
+
  cursor:pointer; font-size:80%; color:#666}\
+
#userSummaryButtonsA a:hover {background:#bdf; color:black; text-decoration:none}')
+
wpSummaryButtons = $('<div id=userSummaryButtonsA />').insertAfter(sum) //global var
+
var ss = ['викиф.икация', 'оформл.ение', 'стил.евые правки', 'орфогр.афия', 'пункт.уация',
+
'интервики', 'кат.егория', 'шаб.лон', 'к удал.ению', 'иллюстрация', 'доп.олнение', 'обнов.ление данных']
+
for (var i=0; i<ss.length; i++)
+
  addSumButton(ss[i].replace(/\..*/,''), ss[i].replace(/\./,''))
+
}
+
+
summaryButtons()
+
+
+
+
+
//sig reminder
+
if (wgNamespaceNumber % 2 || wgNamespaceNumber==4)
+
$(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 += '&nbsp;&nbsp;Не забудьте добавить к вашему сообщению подпись с помощью' + ins
+
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}
+
}
+
})
+
+
+
if (wgAction=='edit' && / rv:1\.[0-8].+Gecko/.test(navigator.userAgent))
+
  importMW('Firefox2')
+

Текущая версия на 21:30, 3 апреля 2011

//dynamically load Commons-style Edittools
function createEdittoolsLink(){
 //get div.mw-editTools
 var box = document.getElementById('wpTextbox1')
 while (box && box.className!='mw-editTools') box=box.nextSibling
 if (!box) return
 //create a link
 var lnk = document.createElement('a')
 lnk.href =  'javascript:loadCommonsTools()'
 lnk.title = 'Load Commons-style Edittools' 
 lnk.id = 'loadCommonsEdittoos'
 lnk.appendChild(document.createTextNode('[load edittools]'))
 lnk.style.cssText = 'float:right'
 box.appendChild(lnk)
}
function loadCommonsTools(){
 importScript('MediaWiki:Edittools.js')
 var lnk = document.getElementById('loadCommonsEdittoos')
 if (lnk) lnk.parentNode.removeChild(lnk)
}
if (doneOnloadHook) createEdittoolsLink()
else addOnloadHook(createEdittoolsLink)
Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты