MediaWiki:Monobook.js
[http://www.wikizamki.org/links.htm]
Версия от 11:37, 30 июля 2009; Elden (обсуждение | вклад)
Замечание: Чтобы после сохранения сделанные изменения вступили в силу, очистите кеш своего браузера: Mozilla / Firefox: Ctrl+Shift+R, IE: Ctrl+F5, Safari: Cmd+Shift+R, Konqueror: F5, Opera: через меню Tools→Preferences.
/* Указанный здесь JavaScript будет загружен всем участникам, использующим тему оформления MonoBook */ //Скрипт дополняет форму поиска ссылками на поиск в гугле по различным вики-проектам. function xRomixSearch(mode){ var el = document.getElementById('xRomix_hidden_search_span'); if (!el) return; var f1 = document.getElementById('searchInput'); if (!f1) return; var s=""; if(mode=="google_wikipedia"){ s=" <form id='xRomix_hidden_search_form' action='http://ru.wikipedia.org/wiki/Заглавная страница'>\ <input id='xRomix_hidden_search_text' type='hidden' name='q' value=''>\ <input type='hidden' name='as_sitesearch' value='wikipedia.org'>\ </form>"; }else if(mode=="google_wiktionary"){ s=" <form id='xRomix_hidden_search_form' action='http://ru.wiktionary.org/wiki/Заглавная страница'>\ <input id='xRomix_hidden_search_text' type='hidden' name='q' value=''>\ <input type='hidden' name='as_sitesearch' value='wiktionary.org'>\ </form>"; }else if(mode=="google_wikibooks"){ s=" <form id='xRomix_hidden_search_form' action='http:http://ru.wikibooks.org/wiki/Заглавная страница'>\ <input id='xRomix_hidden_search_text' type='hidden' name='q' value=''>\ <input type='hidden' name='as_sitesearch' value='wikibooks.org'>\ </form>"; }else if(mode=="google_translate"){ var text=f1.value; //Определим направление перевода try{ if (text.search(/[А-Яа-я]+/)>=0){ lang="ru|en"; }else{ lang="en|ru"; } }catch(e){ lang="en|ru"; } s=" <form id='xRomix_hidden_search_form' action='http://translate.google.com/translate_t'>\ <input id='xRomix_hidden_search_text' type='hidden' name='text' value=''>\ <input type='hidden' name='hl' value='ru'>\ <input type='hidden' name='ie' value='UTF8'>\ <input type='hidden' name='langpair' value='"+lang+"'>\ </form>"; }else if(mode=="yandex_slovari"){ s=" <form id='xRomix_hidden_search_form' action='http://lingvo.yandex.ru/search.xml'>\ <input id='xRomix_hidden_search_text' type='hidden' name='text' value=''>\ </form>"; }else if(mode=="yandex_lingvo"){ s=" <form id='xRomix_hidden_search_form' action='http://lingvo.yandex.ru/en'>\ <input id='xRomix_hidden_search_text' type='hidden' name='text' value=''>\ <input type='hidden' name='st_translate' value='1'>\ </form>"; } el.innerHTML=s; var f2 = document.getElementById('xRomix_hidden_search_text'); if (!f2) return; f2.value=f1.value; var f = document.getElementById('xRomix_hidden_search_form'); if (!f) return; try{ var test = extSearchMode; //проверяем наличие переменной }catch(e){ extSearchMode=1; //по умолчанию - в новом окне } if (extSearchMode == 1){ f.target='_blank'; } f.submit(); } addOnloadHook(function(){ var el = document.getElementById('searchBody'); if (!el) return; s="<form action='/wiki/Служебная:Search' id='searchform' target='_blank'><div>\ <input id='searchInput' name='search' type='text' title='Искать это слово [f]' accesskey='f' value='' />\ <input type='submit' name='go' class='searchButton' id='searchGoButton' value='Перейти' title='Перейти к странице, имеющей в точности такое название' /> \ <input type='submit' name='fulltext' class='searchButton' id='mw-searchButton' value='Найти' title='Найти страницы, содержащие указанный текст' /></div></form>\ <span id='xRomix_hidden_search_span'></span>\ <div align='left'><br><ul>\ <li><a href='javascript: xRomixSearch(\"google_wikipedia\");'>Википедия</a></li>\ <li><a href='javascript: xRomixSearch(\"google_wiktionary\");'>Викисловарь</a></li>\ <li><a href='javascript: xRomixSearch(\"google_wikibooks\");'>Викиучебник</a></li>\ <li><a href='javascript: xRomixSearch(\"google_translate\");'>Google→Переводчик</a></li>\ <li><a href='javascript: xRomixSearch(\"yandex_slovari\");'>Яндекс→Словари</a></li>\ <li><a href='javascript: xRomixSearch(\"yandex_lingvo\");'>Яндекс→Lingvo</a></li>\ </ul></div>\ "; try{ var test = extSearchMode; //проверяем наличие переменной }catch(e){ extSearchMode=1; //по умолчанию - в новом окне } if (extSearchMode == 0){ //Убираем target='_blank' - открывание в новом окне, если переменная = 0 var reg = /target\=\'\_blank\'/g var res = s.replace(reg, ""); s = res; //Заменяем стрелочку на минус (чтобы было видно, в каком режиме будет поиск) var reg = /→/g var res = s.replace(reg, "-"); s = res; } el.innerHTML=s; }//function );//addOnloadHook //Форматирует таблицу, скопированную из Excel, по правилам вики-разметки. //Часть кода позаимствована из http://ru.wikipedia.org/wiki/MediaWiki:Wikificator.js //Автор: X-romix var XRomix_Tablify_CantWork1 = 'Таблификатор не может работать в вашем браузере.\n\nTablificator cannot work in your browser' // английский текст для тех, кто не видит русские буквы var XRomix_Tablify_FullText1 = 'Эта кнопка предназначена для форматирования табличного текста, скопированного из табличного редактора (например, из Excel). Чтобы функция заработала, сначала выделите нужный фрагмент текста в окне редактирования.' //Добавляет кнопку function addTablifikatorButton1(){ 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/c/c1/Button-tablifikator.PNG' i.alt = i.title = 'Таблификатор' i.onclick = XRomix_Tablify1 i.style.cursor = 'pointer' toolbar.appendChild(i) } //Этот код выполняется в начале. if (wgAction == 'edit' || wgAction == 'submit'){ addOnloadHook(addTablifikatorButton1) } //Функция для оформления таблицы function XRomix_Tablify1(){ //Проверяем, поддерживает ли браузер регулярные выражения (RegExp) if (('code'.replace(/d/g, 'r') != 'core') || (navigator.appName=='Netscape' && navigator.appVersion.substr (0, 1) < 5)) { alert(XRomix_Tablify_CantWork1); return } setWpSummary(); 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_Tablify_FullText1); 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 var range = document.selection.createRange() txt = range.text if (txt == '') {alert(XRomix_Tablify_FullText1); 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_Tablify_CantWork1); return } document.documentElement.scrollTop = winScroll // scroll back, for IE/Opera //Здесь производим замену в переменной txt - это отразится на выделенном фрагменте текста function processText(){ var col1hdr=0; if (confirm('Вы хотите оформить первую колонку как заголовок?')) col1hdr=1; txt = txt.replace(/^\s+|\s+$/g, '') //Обрезаем пробелы слева и справа var arr1=txt.split("\n") txt='\n{| class="standard"\n' for (var i=0; i<arr1.length; i++){ txt = txt+"|-\n" s1=arr1[i]; var arr2=s1.split("\t") for (var j=0; j<arr2.length; j++){ var s2=arr2[j]; if ((col1hdr==1 && j==0)||i==0){ txt = txt+"! "+s2+"\n" }else{ txt = txt+"| "+s2+"\n" } } } txt = txt+"|}" } function setWpSummary(){ var wpSummary = document.getElementById('wpSummary') if(wpSummary){ var temp=wpSummary.value; temp=temp.replace(/\/\*.*?\*\// , ""); //комментарии temp=temp.replace(/[\s]*/ , ""); //пробелы if (temp==""){ wpSummary.value=wpSummary.value+" - [[User talk:X-romix/tablifikator.js|tablifikator.js]] - таблица из Excel/Calc"; } } } }