|
|
Строка 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 += ' Не забудьте добавить к вашему сообщению подпись с помощью' + 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>подробнее ↗</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')
| + | |