MediaWiki:Monobook.js
Материал из Бронетанковой Энциклопедии — armor.kiev.ua/wiki
Версия от 09:46, 13 октября 2006; ArmorAdmin (обсуждение | вклад)
Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Выберите очистку кэша в меню Инструменты → Настройки
/* <pre> */
/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.','Моя страница пользователя');
ta['pt-anonuserpage'] = new Array('.','Страница пользователя для моего IP');
ta['pt-mytalk'] = new Array('n','Моя страница обсуждений');
ta['pt-anontalk'] = new Array('n','Страница обсуждений для моего IP');
ta['pt-preferences'] = new Array('','Мои настройки');
ta['pt-watchlist'] = new Array('l','Список страниц моего наблюдения');
ta['pt-mycontris'] = new Array('y','Список страниц, которые я редактировал');
ta['pt-login'] = new Array('o','Здесь можно зарегистрироваться в системе, но это необязательно');
ta['pt-anonlogin'] = new Array('o','Здесь можно зарегистрироваться в системе, но это необязательно');
ta['pt-logout'] = new Array('o','Завершить зарегистрированный сеанс');
ta['ca-talk'] = new Array('t','Обсуждение статьи');
ta['ca-edit'] = new Array('e','Эту статью можно изменять. Перед сохранением изменений, пожалуйста, нажмите кнопку предварительного просмотра для визуальной проверки результата');
ta['ca-addsection'] = new Array('+','Добавить комментарий к обсуждению');
ta['ca-viewsource'] = new Array('e','Эта страница защищена от изменений, но вы можете посмотреть и скопировать её исходный текст');
ta['ca-history'] = new Array('h','Журнал изменений страницы');
ta['ca-protect'] = new Array('=','Защитить страницу от изменений');
ta['ca-unprotect'] = new Array('','Разрешить изменение страницы');
ta['ca-delete'] = new Array('d','Удалить эту страницу');
ta['ca-undelete'] = new Array('d','Восстановить исправления страницы, сделанные до того, как она была удалена');
ta['ca-move'] = new Array('m','Переименовать страницу');
ta['ca-nomove'] = new Array('','У вас не хватает прав, чтобы переименовать эту страницу');
ta['ca-watch'] = new Array('w','Добавить эту страницу в ваш список наблюдения');
ta['ca-unwatch'] = new Array('','Удалить эту страницу из вашего списка наблюдения');
ta['search'] = new Array('f','Искать это слово');
ta['p-logo'] = new Array('','Заглавная страница');
ta['n-mainpage'] = new Array('z','Перейти на заглавную страницу');
ta['n-portal'] = new Array('','О проекте, о том, что вы можете сделать, где что находится');
ta['n-currentevents'] = new Array('','Список текущих событий');
ta['n-recentchanges'] = new Array('r','Список последних изменений в Википедии');
ta['n-randompage'] = new Array('x','Посмотреть случайную страницу');
ta['n-help'] = new Array('','Справочник по Википедии');
ta['n-sitesupport'] = new Array('','Поддержите проект');
ta['t-whatlinkshere'] = new Array('j','Список всех страниц в Википедии, которые ссылаются на эту страницу');
ta['t-recentchangeslinked'] = new Array('k','Последние изменения в страницах, на которые ссылается эта страница');
ta['feed-rss'] = new Array('','Трансляция в RSS для этой страницы');
ta['feed-atom'] = new Array('','Трансляция в Atom для этой страницы');
ta['t-contributions'] = new Array('','Список страниц, которые изменял этот участник');
ta['t-emailuser'] = new Array('','Послать письмо этому участнику');
ta['t-upload'] = new Array('u','Загрузить изображения или мультимедиа-файлы');
ta['t-specialpages'] = new Array('q','Список служебных страниц');
ta['t-print']=new Array('', 'Версия без кнопок, пригодная для распечатки');
ta['t-permalink'] = new Array('', 'Ссылка на текущую версию этой статьи');
ta['ca-nstab-main'] = new Array('c','Содержание статьи');
ta['ca-nstab-user'] = new Array('c','Персональная страница участника');
ta['ca-nstab-media'] = new Array('c','Мультимедиа-файл');
ta['ca-nstab-special'] = new Array('','Это служебная страница, она недоступна для редактирования');
ta['ca-nstab-wp'] = new Array('a','Страница проекта');
ta['ca-nstab-image'] = new Array('c','Страница изображения');
ta['ca-nstab-mediawiki'] = new Array('c','Страница сообщения MediaWiki');
ta['ca-nstab-template'] = new Array('c','Страница шаблона');
ta['ca-nstab-help'] = new Array('c','Страница справки');
ta['ca-nstab-category'] = new Array('c','Страница категории');
ta['ca-nstab-Портал'] = new Array('c','Страница портала');
function addLoadEvent(func)
{
if (window.addEventListener)
window.addEventListener("load", func, false);
else if (window.attachEvent)
window.attachEvent("onload", func);
}
//
// Замена неправильного заголовка правильным by SergV
//
// Все неправильные заголовки
title_restr_alerts = ["trestrictions_replace", "trestrictions_alert"];
// Только шаблон title
//title_restr_alerts = ["trestrictions_replace"];
function display_correct_title () {
var title_restr_alert1, a1;
if (document.getElementsByTagName && document.getElementById) {
for(var i=0; i < title_restr_alerts.length; i++) {
title_restr_alert1 = title_restr_alerts[i];
a1 = document.getElementById(title_restr_alert1);
if(a1) {
ct = document.getElementById("trestrictions_correct");
if(ct) {
document.getElementsByTagName("h1")[0].innerHTML = ct.innerHTML;
a1.style.display = "none";
document.getElementById("trestrictions_replaced").style.display = "block";
}
break;
}
}
}
}
addLoadEvent(display_correct_title);
function LinkFA()
{
// iterate over all <span>-elements
for(var i=0; a = document.getElementsByTagName("span")[i]; i++) {
// if found a ICQ span
if(a.className == "ICQ") {
a.style.padding = "0 0 0 20px";
a.style.backgroundImage = "url('http://status.icq.com/online.gif?icq="+a.id+"&img=5')";
a.style.backgroundRepeat = "no-repeat";
}
// if found a FA span
if(a.className == "FA") {
// iterate over all <li>-elements
for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
// if found a FA link
if(b.className == "interwiki-" + a.id) {
b.style.padding = "0 0 0 16px";
b.style.backgroundImage = "url('http://upload.wikimedia.org/wikipedia/ru/3/33/Small_skew_star.gif')";
b.style.backgroundRepeat = "no-repeat";
b.title = "Избранная статья";
}
}
}
}
}
addLoadEvent(LinkFA);
// ============================================================
// BEGIN Dynamic Navigation Bars (experimantal)
// set up the words in your language
var NavigationBarHide = '[ Скрыть ]';
var NavigationBarShow = '[ Показать ]';
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
var NavigationBarShowDefault = 1;
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
if (!NavFrame || !NavToggle) {
return false;
}
// if shown now
if (NavToggle.firstChild.data == NavigationBarHide) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (NavChild.className == 'NavPic') {
NavChild.style.display = 'none';
}
if (NavChild.className == 'NavContent') {
NavChild.style.display = 'none';
}
}
NavToggle.firstChild.data = NavigationBarShow;
// if hidden now
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (NavChild.className == 'NavPic') {
NavChild.style.display = 'block';
}
if (NavChild.className == 'NavContent') {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
// iterate over all < div >-elements
for(
var i=0;
NavFrame = document.getElementsByTagName("div")[i];
i++
) {
// if found a navigation bar
if (NavFrame.className == "NavFrame") {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var NavToggleText = document.createTextNode(NavigationBarHide);
NavToggle.appendChild(NavToggleText);
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
for(
var j=0;
j < NavFrame.childNodes.length;
j++
) {
if (NavFrame.childNodes[j].className == "NavHead") {
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
// if more Navigation Bars found than Default: hide all
if (NavigationBarShowDefault < indexNavigationBar) {
for(
var i=1;
i<=indexNavigationBar;
i++
) {
toggleNavigationBar(i);
}
}
}
addLoadEvent(createNavigationBarToggleButton);
// END Dynamic Navigation Bars
// ============================================================
/* add menu for selecting subsets of secial characters */
/***** must match MediaWiki:Edittools *****/
function addCharSubsetMenu() {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var menu = "<select id=\"charsetBox\" style=\"display:inline\" onkeyup=\"chooseCharSubset(selectedIndex)\" onChange=\"chooseCharSubset(selectedIndex)\">";
menu += "<option>Ещё спецсимволы</option>";
menu += "<option>Отметки заготовок</option>";
menu += "<option>Греческий алфавит</option>";
menu += "<option>МФА (IPA)</option>";
menu += "<option>Матем./TeX</option>";
menu += "</select>";
specialchars.innerHTML = menu + specialchars.innerHTML;
/* default subset - try to use a cookie some day */
chooseCharSubset(0);
}
}
/* select subsection of special characters */
function chooseCharSubset(s) {
var l = document.getElementById('specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = i == s ? 'inline' : 'none';
l[i].style.visibility = i == s ? 'visible' : 'hidden';
}
}
addLoadEvent(addCharSubsetMenu);
var mpTitle = "Заглавная страница";
var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" — ")) == mpTitle);
var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));
if (isMainPage && !isDiff)
{
document.write('<style type="text/css">/*<![CDATA[*/ #siteSub, #contentSub, h1.firstHeading { display: none !important; } /*]]>*/</style>');
}
document.write('<script type="text/javascript" src="'
+ 'http://ru.wikipedia.org/w/index.php?title=MediaWiki:Wikificator.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
var disable_counter = 0;
function count_me()
{
if(disable_counter != 1 && window.location.href.match("^http://ru.wikipedia.org/wiki/") && !window.location.href.substring(7).match(":"))
{
var rnd = Math.random() > 0.1 ? 1 : 0;
if(rnd == 0 || (document.referrer && !document.referrer.match("(wikipedia.org|wiktionary.org|wikiquote.org|wikisource.org|wikimedia.org|yandex.ru|google.ru|google.com)")))
{
var img = new Image();
img.src = "http://tools.wikimedia.de:22902/" + (rnd == 0 ? "1" : "0") + document.referrer;
}
}
}
addLoadEvent(count_me);
/* Делаем ссылку "править" для нулевой секции */
var disable_zero_section = 0;
function edit_zero_section()
{
if((disable_zero_section !=1 ) && (document.getElementById('bodyContent').innerHTML.match('class=\"editsection\"')))
document.getElementById('bodyContent').innerHTML = "<div class=\"editsection\" id=\"ca-edit-0\">[<a href=\"http://ru.wikipedia.org/w/index.php?title=" + document.title.substr(0, document.title.lastIndexOf(" — ")) + "&action=edit§ion=0\">править</a>]</div>" + document.getElementById('bodyContent').innerHTML;
}
addLoadEvent(edit_zero_section);
// Расширенный поиск
// Автор: ru:User:Не А
function SpecialSearchEnhanced()
{
var mainNode = document.getElementsByTagName("form");
if (!mainNode) return;
var searchValue = document.forms[0].search.value
var firstForm = mainNode[0];
var node = document.createElement('div');
var googleSearch = '<form action="http://www.google.com/custom" method="get" name="google" target="_blank" id="google">';
googleSearch += '<input type="hidden" name="hl" value="ru" />';
googleSearch += '<input type="hidden" name="domains" value="ru.wikipedia.org" />';
googleSearch += '<input type="hidden" name="q" maxlength="2048" value="' + searchValue + '" />'
googleSearch += '<input type="hidden" name="sitesearch" value="ru.wikipedia.org" />'
googleSearch += '<input type="button" value="Google по Википедии" onclick="document.google.q.value = document.forms[0].search.value; this.form.submit();" style="width: 12em;" />'
googleSearch += '</form>'
var yandexSearch = '<form action="http://www.yandex.ru/yandsearch" method="get" name="yandex" target="_blank" id="yandex">';
yandexSearch += '<input type="hidden" name="text" maxlength="300" value="' + searchValue + '" />';
yandexSearch += '<input type="hidden" name="site" value="ru.wikipedia.org" />';
yandexSearch += '<input type="hidden" name="ras" value="1" />'
yandexSearch += '<input type="hidden" name="site_manually" value="true" />'
yandexSearch += '<input type="hidden" name="server_name" value="Википедия" />'
yandexSearch += '<input type="button" value="Яндекс по Википедии" onclick="document.yandex.text.value = document.forms[0].search.value; this.form.submit();" style="width: 12em;" />'
yandexSearch += '</form>'
node.innerHTML = node.innerHTML + '<table style="margin-left: 75%; padding-left:4px;"><tr><td>' + yandexSearch + '</td></tr><tr><td>' + googleSearch + '</td></tr></table>';
firstForm.parentNode.insertBefore(node, firstForm.nextSibling);
}
if (wgPageName == "Служебная:Search") { addOnloadHook(SpecialSearchEnhanced); }
//============================================================
// Extra toolbar options
//============================================================
//********WRITTEN BY User:MarkS********
//This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All.
// This is based on the original code on Wikipedia:Tools/Editing tools
function InsertButtonsToToolBar()
{
//Перенаправление
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "http://upload.wikimedia.org/wikipedia/ru/1/1d/Button_redirect_rus.png",
"speedTip": "Перенаправление",
"tagOpen": "#ПЕРЕНАПРАВЛЕНИЕ [[",
"tagClose": "]]",
"sampleText": "название страницы"}
//Категория
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "http://upload.wikimedia.org/wikisource/ru/a/a6/Button-cat.png",
"speedTip": "Категория",
"tagOpen": "[[Категория:",
"tagClose": "]]\n",
"sampleText": "название категории"}
//Комментарий
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "http://upload.wikimedia.org/wikipedia/en/3/34/Button_hide_comment.png",
"speedTip": "Комментарий",
"tagOpen": "<!-- ",
"tagClose": " -->",
"sampleText": "Комментарий"}
//Цитата
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile": "http://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png",
"speedTip": "Развёрнутая цитата",
"tagOpen": "<blockquote>\n",
"tagClose": "\n</blockquote>",
"sampleText": "Развёрнутая цитата одним абзацем"}
}
addOnloadHook( InsertButtonsToToolBar );
//============================================================
// Table generator
//============================================================
/**
*
* English: Generate an array using Mediawiki syntax
*
* @author: fr:user:dake (language conversion and new options added by en:user:Voice of All)
* @version: 0.1
*/
function generateTableau(nbCol, nbRow, border, styleHeader, styleLine, exfield, align, padding)
{
var code = "\n";
if (padding==false) padding=0;
else if (padding==true) padding=1;
code += '{| align="' + align + '" class="standard"\n';
code += '|+\n';
for (var i=1;i<nbCol+1;i++) code += '! |Столбец ' + i + '\n';
var items = 0;
for (var j=0;j<nbRow;j++) {
code += '|-----\n'
for (var i=0;i<nbCol;i++) code += '| ячейка\n';
}
code += '|+\n';
code += '|}\n';
insertTags('','', code);
}
/**
*
* English: Open a popup with parameters to generate an array.
* The number of rows/columns can be modified. Some additional
* parameters are related to templates available on :fr
*
* @author: fr:user:dake
* @version: 0.1
*/
function popupTable()
{
var popup = window.open('','name','height=180,width=300,scrollbars=yes');
javaCode = '<script type="text\/javascript">function insertCode(){';
javaCode += 'var row = parseInt(document.paramForm.inputRow.value); '
javaCode += 'var col = parseInt(document.paramForm.inputCol.value); '
javaCode += 'var bord = 0; '
javaCode += 'var styleHeader = false; '
javaCode += 'var styleLine = false; '
javaCode += 'var exfield = false; '
javaCode += 'var align = document.paramForm.inputAlign.value; '
javaCode += 'var padding = false; '
javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine,exfield,align,padding); '
javaCode += "alert('Таблица создана!'); "
javaCode += 'window.close(); '
javaCode += '}<\/script>';
popup.document.write('<html><head><title>Создание таблицы</title>');
popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>');
popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/monobook\/main.css?5"; /*]]>*/<\/style>');
popup.document.write(javaCode);
popup.document.write('</head><body>');
popup.document.write('<p>Введите параметры таблицы: </p>');
popup.document.write('<form name="paramForm">');
popup.document.write('Выравнивание: <input type="text" name="inputAlign" value="center" ><p>');
popup.document.write('Количество строк: <input type="text" name="inputRow" value="3" ><p>');
popup.document.write('Количество столбцов: <input type="text" name="inputCol" value="3" ><p>');
popup.document.write('</form">');
popup.document.write('<p><a href="javascript:insertCode()"> Вставить таблицу</a> |');
popup.document.write(' <a href="javascript:self.close()">Отмена (закрыть окно)</a></p>');
popup.document.write('</body></html>');
popup.document.close();
}
//Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags
function marque_tab()
{
var toolbar = document.getElementById('toolbar');
if (!toolbar) return false;
var textbox = document.getElementById('wpTextbox1');
if (!textbox) return false;
if (!document.selection && textbox.selectionStart == null)
return false;
var image = document.createElement("img");
image.width = 23;
image.height = 22;
image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png';
image.border = 0;
image.alt = 'Таблица';
image.title = 'Создать таблицу';
image.style.cursor = "pointer";
image.onclick = function() {
popupTable();
return false;
}
toolbar.appendChild(image);
var image2 = document.createElement("img");
image2.width = 69;
image2.height = 22;
image2.src = 'http://upload.wikimedia.org/wikisource/ru/d/d1/Button-wikifikator.png';
image2.border = 0;
image2.alt = 'Викификатор';
image2.title = 'Викификатор';
image2.style.cursor = "pointer";
image2.onclick = function() {
Wikify();
return false;
}
toolbar.appendChild(image2);
}
addOnloadHook(marque_tab);
/* </pre> */