Участник:Berserkerus/monobook.js

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Страница персонального оформления. JS-код ниже относится к теме оформления «MonoBook». CSS-файл для этой темы: Участник:Berserkerus/monobook.css.
После сохранения очистите кэш браузера.
importScript('Участник:X-romix/compare2texts.js');
//Скрипт для викификации слова
importScript('Участник:X-romix/wordwikify.js');

 document.write('<script type="text/javascript" src="' 
              + 'http://ru.wikipedia.org/w/index.php?title=MediaWiki:Oldspecialchars.js' 
              + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

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 = '//~~\~&nbsp;<small>~~\~~\~</small>';
//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('Без подписи?');
 }
})
//// from Участник:Морган/monobook.js mod3
function addTemplatesList(){
  var block = document.getElementById('editpage-specialchars');
  if (!block) return;
  block.innerHTML = 
   '<select onchange=insertSel567(this)>'
  +'<option>Шаблоны</option>'
  +'<option value="копивио|url=">Подозрение в нарушении авторских прав на часть материала статьи</option>'
  +'<option value="уд-копивио|url=">Нарушение авторских прав при создании статьи</option>'
  +'<option value="уд-бессвязно">Бессвязное содержимое</option>'
  +'<option value="уд-тест">Кто-то что-то тестировал</option>' 
  +'<option value="уд-пусто">Статья очень-очень пустая, и не содержит даже определения</option>'
  +'<option value="rq|cat|check|cleanup|iwiki|linkless|stub|style|sources|wikify">RQ</option>'
  +'<option value="subst:afi">ВП:КУЛ</option>'
  +'<option value="nbsp">nbsp</option>'
  +'</select>' + block.innerHTML;
 }

function insertSel567(sel){
  if (sel.selectedIndex <= 0) return;
  var sumins=' ';
  var insertion = sel.options[sel.selectedIndex].value;
  if (sel.selectedIndex == 8) 
    {
    insertTags('&nbsp;','','');
    return;
    } 
  else
    {
    insertTags("{" + "{" + insertion + "}}",'','');
    }
  document.editform.wpMinoredit.checked = false;
  if (insertion=='db-copyvio|url=') {
     sumins='db-copyvio';}
        else if (insertion=='копивио|url=') {sumins='Подозрение в нарушении авторских прав на часть материала статьи;';}
        else if (insertion=='уд-копивио|url=') {sumins='Нарушение авторских прав при создании статьи;';}
        else if (insertion=='уд-бессвязно') {sumins='Недопустимая бессвязность содержания статьи;';}
        else if (insertion=='уд-тест') {sumins='Вероятно, кто-то что-то пробывал;';}
        else if (insertion=='уд-пусто') {sumins='Статья очень-очень пустая;';}
        else if (insertion=='subst:afi') {sumins='Статья требует срочного улучшения, во избежании удаления;';}
        else if (insertion=='rq|cat|check|cleanup|iwiki|linkless|stub|style|sources|wikify') {sumins='Базовые требования по улучшению качества;';}
           else {sumins=insertion;} 

  document.editform.wpSummary.value += sumins;
  return;
 }
$(addTemplatesList);

//Скрипт для перевода текста в нижний регистр
//Скрипт редактирования для Википедии. Переводит выделенный фрагмент текста в нижний регистр.
//Часть кода позаимствована из http://ru.wikipedia.org/wiki/MediaWiki:Wikificator.js
//Автор: X-romix
 
var XRomix_LowerCase_CantWork = 'Перевод в нижний регистр не может работать в вашем браузере.\n\nLowerCase script cannot work in your browser' // английский текст для тех, кто не видит русские буквы
var XRomix_LowerCase_FullText = 'Сначала выделите текст. Эта функция переводит выделенный текст в нижний регистр';
 
//Добавляет кнопку
function add_XRomix_LowerCase_Button(){
	var toolbar = document.getElementById('toolbar')
	var textbox = document.getElementById('wpTextbox1')
	if (!textbox || !toolbar) return
	var i = document.createElement('img')
	i.src = 'http://upload.wikimedia.org/wikipedia/ru/b/b3/Button-LowerCase.PNG'
	i.alt = i.title = 'Перевод текста в нижний регистр'
	i.onclick = XRomix_LowerCase
	i.style.cursor = 'pointer'
	toolbar.appendChild(i)
} 
 
//Этот код выполняется в начале.
if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit'){
  addOnloadHook(add_XRomix_LowerCase_Button)
}
 
 
//Функция для оформления таблицы
function XRomix_LowerCase(){
  
 var txt, hidden = [], hidIdx = 0, wpTextbox1 = document.editform.wpTextbox1
 var winScroll = document.documentElement.scrollTop //remember window scroll
 wpTextbox1.focus()
 
 if (typeof wpTextbox1.selectionStart != 'undefined' 
    && (navigator.productSub > 20031000 || is_safari)) { //Mozilla/Opera/Safari3
 
    var textScroll = wpTextbox1.scrollTop
    var startPos = wpTextbox1.selectionStart
    var endPos = wpTextbox1.selectionEnd
    txt = wpTextbox1.value.substring(startPos, endPos)
    if (txt == '') {alert(XRomix_LowerCase_FullText); ShowHelp(); return}
    else{
 
	  processText()
      wpTextbox1.value = wpTextbox1.value.substring(0, startPos) + txt + wpTextbox1.value.substring(endPos)
    }
    wpTextbox1.selectionStart = startPos
    wpTextbox1.selectionEnd = startPos + txt.length
    wpTextbox1.scrollTop = textScroll
 
 }else if (document.selection && document.selection.createRange) { //IE
 	 //alert("IE");
 
   var range = document.selection.createRange()
   txt = range.text
   if (txt == '') {alert(XRomix_LowerCase_FullText); ShowHelp(); return}
   else{
 
     processText()
	  range.text = txt
     //if (!window.opera) txt = txt.replace(/\r/g,'')
     if (range.moveStart) range.moveStart('character', - txt.length)
     range.select() 
   }
 
 }else // Для браузеров, которые не умеют возвращать выделенный фрагмент, выдаем ошибку
   { alert(XRomix_LowerCase_CantWork); return }
 
 document.documentElement.scrollTop = winScroll // scroll back, for IE/Opera
 
//Здесь производим замену в переменной txt - это отразится на выделенном фрагменте текста 
function processText(){
	var upper="ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁQWERTYUIOPASDFGHJKLZXCVBNM";
	var lower="йцукенгшщзхъфывапролджэячсмитьбюёqwertyuiopasdfghjklzxcvbnm";
	var s="";
	var c1="";
  	 for (var i=0; i<txt.length; i++){
	   var c=txt.charAt(i); //берем один символ из строки
       pos= upper.indexOf(c);
	   if (pos!=-1){
	     c1=lower.charAt(pos);
	   }else{
         c1=c;	   
	   }
	   s=s+c1;
     }
	 txt=s;
}	

}

setModifySectionStyle = function()
 {
 try {
        if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
        var spans = document.getElementsByTagName("span");
        for (var s = 1; s < spans.length; ++s) {
                var span = spans[s];
                if (span.className == "editsection") {
                        span.style.fontSize = "x-small";
                        span.style.fontWeight = "normal";
                        span.style.cssFloat = span.style.styleFloat = "none";
                        span.style.marginLeft = "0px";
                        span.parentNode.appendChild(document.createTextNode(" "));
                        span.parentNode.appendChild(span);
                }
        }
 } catch (e) { /* что-то не так */ }
 }
 addOnloadHook(setModifySectionStyle);