Участник:Jaro.p/monobook.js
Перейти к навигации
Перейти к поиску
Страница персонального оформления. JS-код ниже относится к теме оформления «MonoBook». CSS-файл для этой темы: Участник:Jaro.p/monobook.css.
После сохранения очистите кэш браузера.
После сохранения очистите кэш браузера.
if ((mw.config.get('wgNamespaceNumber') % 2 || mw.config.get('wgNamespaceNumber')==4)
&& document.URL.match(/&action=(edit|submit)/))
$(function(){
var wpSave = document.getElementById('wpSave');
if (!wpSave) return;
if (window.sigText) //change normal sig button as well
mwEditButtons[9].tagOpen = sigText;
else
sigText = '-- ~~\~~';
//create button
var btn = document.createElement('input');
btn.type='button'; btn.value = '~';
btn.onclick = function(){ insertTags(sigText,'','') };
btn.style.marginRight = '4px';
btn.title = 'Put your signature';
if (window.sigAccessKey){
btn.accessKey = sigAccessKey;
btn.title += ' [' + tooltipAccessKeyPrefix + btn.accessKey + ']';
}
wpSave.parentNode.insertBefore(btn, wpSave);
//if namespace is 'Project' ('Wikipedia:…') then put Sig after Save except for Forum pages
if ( ( mw.config.get('wgNamespaceNumber') == 4 )
&& ( !mw.config.get('wgTitle').match('^(Форум[/ ]|Голосования/|Опросы/|Заявки на .*/|Запросы.|Кандидаты в .*/|К (удалению|объединению|переименованию|разделению|улучшению)/|Кандидаты в .*/|Проверка участников/|Вниманию участников)') || mw.config.get('wgTitle').match ('/Архив') ) )
{
wpSave.parentNode.insertBefore(btn, wpSave.nextSibling);
return; //avoid warning below
}
//warn if saving without signature
wpSave.onclick = function(){
if (document.editform.wpTextbox1.value.indexOf('~~\~') >= 0 )
return true;
else
return confirm('Без подписи?');
}
})
function addTemplatesList(){
var block = document.getElementById('editpage-specialchars');
if (!block) return;
block.innerHTML =
'<select onchange=insertSel(this)>'
+'<option>Шаблоны</option>'
+'<option value="subst:welcome">Welcome</option>'
+'<option value="subst:anon">Anon</option>'
+'<option value="subst:Нейтральность">NPOV</option>'
+'<option value="subst:источник?">источник?</option>'
+'<option value="subst:оскорбление|">оскорбление</option>'
+'<option value="stub">Stub</option>' // и т.д. — дополняйте сами
+'</select>' + block.innerHTML;
}
function insertSel(sel){
if (sel.selectedIndex <= 0) return;
var insertion = sel.options[sel.selectedIndex].value;
document.editform.wpTextbox1.value += '{'+'{' + insertion + '}}\n';
document.editform.wpSummary.value += insertion;
}
$(addTemplatesList);
var editSearch = new function(){
var txtarea
var popup = null
var selText = ''
this.onLoad = function(){
var wikiPreview = document.getElementById('wikiPreview')
txtarea = document.getElementById('wpTextbox1')
if (!wikiPreview || !txtarea) return
addEvent(wikiPreview, 'mouseup', editSearch.onMouseUp)
}
this.onMouseUp = function(e){
hidePopup()
if (! (selText = getSelectedText()) ) return
selText = selText.replace(/^ +/, "").replace(/ +$/, "") //trim spaces
if (selText.length < 1 || txtarea.value.indexOf(selText) == -1) return //empty or not found selection
//show popup
if (!popup) createPopup()
var coords=getMousePos(e || window.event)
popup.style.left=coords[0]+5+'px'
popup.style.top=coords[1]+10+'px'
popup.style.display='block'
}
this.onGo = function(){
hidePopup()
selectInTextArea(selText)
}
function createPopup(){
popup=document.createElement('div')
popup.className = 'popup'
popup.title='Найти выделенный текст в окошке редактирования'
with (popup.style){ position='absolute'; padding='2px'; border='1px outset gray';
zIndex='50'; backgroundColor='#EEEEEE'; cursor='pointer' }
popup.onclick=editSearch.onGo
popup.appendChild(document.createTextNode(' ↓ '))
document.body.appendChild(popup)
}
function hidePopup(){
if (popup) popup.style.display='none'
}
function selectInTextArea(text){
if (txtarea.setSelectionRange) {//Mozilla/Opera
var selPos = txtarea.value.indexOf(text)
if (selPos < 0) return
txtarea.focus()
txtarea.setSelectionRange(selPos, selPos + text.length)
//try to scroll texarea next to cursor
txtarea.scrollTop = txtarea.scrollHeight * selPos / txtarea.value.length - 50
//try to scroll the window to textarea better
if (window.pageYOffset + window.innerHeight < txtarea.offsetHeight + 200) window.scrollTo(0,txtarea.offsetHeight - 50)
}else if (txtarea.createTextRange){ //IE
var oRange = txtarea.createTextRange()
if (oRange.findText(text)) oRange.select()
}
}
}//obj
//Common methods
function addEvent(obj, event, func) {
if (obj.addEventListener) obj.addEventListener( event, func, false )
else if (obj.attachEvent) obj.attachEvent ('on'+event, func)
}
function getSelectedText(){
if (window.getSelection) return window.getSelection().toString()
else if (document.getSelection) return document.getSelection().toString()
else if (document.selection && document.selection.createRange) return document.selection.createRange().text
else return null
}
function getMousePos(ev){
var posx = 0, posy = 0
if (ev.pageX)
return [ev.pageX, ev.pageY]
else if (ev.clientX)
return [ev.clientX + document.body.scrollLeft + document.documentElement.scrollLeft,
ev.clientY + document.body.scrollTop + document.documentElement.scrollTop]
else return null
}
//load object
if (mw.config.get('wgAction')=='edit' || mw.config.get('wgAction')=='submit')
$(editSearch.onLoad)
// http://ru.wikipedia.org/w/index.php?title=Участник:Kalan/monobook.js&action=raw&ctype=text/javascript&dontcountme=s
if(!document.URL.match(/action=edit/)){document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript"><'+'/script>');
popupAdminLinks=true;}
/* Невозбранно скоммунизжено у Эдварда Черненко */
$(function(){
document.getElementById('p-participation').innerHTML += '<div class=pBody><ul><li><a href="http://ru.wikipedia.org/wiki/Участник:Kalan/monobook.css">monobook.css</a> <a href="http://ru.wikipedia.org/wiki/Участник:Kalan/monobook.js">.js</a></li><li><a href="irc://irc.wikimedia.org/ru.wikipedia">Свежие правки (IRC)</a></li><li><a href="http://ru.wikipedia.org/wiki/Служебная:Statistics">Статистика</a></li><li><a href="http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user=Kalan&dbname=ruwiki_p">editcount (Kalan)</a></li><li><a href="http://commons.wikimedia.org/wiki/Special:Upload">Commons Upload</a></li></ul>';
})
var $ = function(l) {return document.getElementById(l)}
if (mw.config.get('wgNamespaceNumber') >= 0)
$(function(){
var wa = $('ca-watch') || $('ca-unwatch');
var wlh = mw.util.addPortletLink('p-cactions', '/wiki/Служебная:Whatlinkshere/'+mw.config.get('wgPageName'), '@', 'ca-whatlinkshere', 'Ссылки на эту страницу');
if (wa) mw.util.addPortletLink('p-cactions','/wiki/'+mw.config.get('wgPageName')+'?action=history&feed=rss','rss','ca-history-rss','Подписаться на историю изменений этой страницы','',wlh);
mw.util.addPortletLink('p-cactions','/wiki/Служебная:Log?page='+mw.config.get('wgPageName'),'#','ca-logs','Просмотр журналов для этой страницы');
mw.util.addPortletLink('p-cactions', '/wiki/'+mw.config.get('wgPageName')+'?action=purge', '', 'ca-purge', 'Очистить кэш страницы');
mw.util.addPortletLink('p-cactions', 'http://tools.wikimedia.de/~interiot/cgi-bin/contribution_tree?article='+mw.config.get('wgPageName')+'&user='+mw.config.get('wgUserName')+'&dbname=ruwiki_p', '!', 'ca-mycontribs', 'Мой вклад в эту страницу');
mw.util.addPortletLink('p-cactions', '/wiki/Special:Prefixindex/'+mw.config.get('wgPageName'), '?', 'ca-prefixindex', 'Поиск по префиксу','',wa);
if ($('ca-history')) mw.util.addPortletLink('p-cactions', '/wiki/'+mw.config.get('wgPageName')+'?diff=0', '0', 'ca-lastchange', 'Последнее изменение','', $('ca-protect') || $('ca-unprotect') || $('ca-delete'));
})
importScript('User:Alex_Smotrov/qpreview.js');
qPreviewName='Просмотр';
qPreviewWait='Загрузка…';
importScript('User:Alex_Smotrov/histcomb.js');
importScript('User:Alex_Smotrov/misc/charcounter.js');
var delReasons = new Array();
importScript('User:Kalan/delreason.js/common');
importScript('User:Kalan/delreason.js/dbtemplates');
importScript('User:Kalan/delreason.js');
wpSelectHide=true;
importScript('User:Alex_Smotrov/adm/delreason.js');
importScript('User:Alex Smotrov/searchlist.js');
importScript('User:Alex Smotrov/urldecoder.js');
importScript('User:Alex Smotrov/watchlist.js');
importScript('User:Alex Smotrov/logpage.js');
importScript('User:Alex Smotrov/misc/savetimer.js');