МедияУики:Common.js
От БГ-Фантастика
/* Чрез редактиране на този файл можете да промените някои неща на Джаваскрипт за облика Монобук <pre> */ /* tooltips and access keys */ var ta = { 'pt-userpage' : ['.','Вашата потребителска страница'], 'pt-anonuserpage' : ['.','Потребителската страница за адреса, от който редактирате'], 'pt-mytalk' : ['n','Вашата дискусионна страница'], 'pt-anontalk' : ['n','Дискусия относно редакциите от този адрес'], 'pt-preferences' : ['','Вашите настройки'], 'pt-watchlist' : ['l','Списък на страници, чиито промени сте избрали да наблюдавате'], 'pt-mycontris' : ['y','Списък на Вашите приноси'], 'pt-login' : ['o','В момента не сте влезли. Насърчаваме Ви да влезете, въпреки че не е задължително.'], 'pt-anonlogin' : ['o','Насърчаваме Ви да влезете, въпреки че не е задължително.'], 'pt-logout' : ['o','Излизане от {{SITENAME}}'], 'ca-talk' : ['t','Беседа относно страницата'], 'ca-edit' : ['e','Можете да редактирате страницата. Моля, използвайте бутона за предварителен преглед преди да съхраните.'], 'ca-addsection' : ['+','Добавяне на коментар към страницата'], 'ca-viewsource' : ['e','Страницата е защитена. Може да разгледате изходния й код.'], 'ca-history' : ['h','Предишни версии на страницата'], 'ca-protect' : ['=','Защитаване на страницата'], 'ca-delete' : ['d','Изтриване на страницата'], 'ca-undelete' : ['d','Възстановяване на изтрити редакции на страницата'], 'ca-move' : ['m','Преместване на страницата'], 'ca-nomove' : ['','Нямате разрешение за преместване на страницата'], 'ca-watch' : ['w','Добавяне на страницата към списъка Ви за наблюдение'], 'ca-unwatch' : ['w','Премахване на страницата от списъка Ви за наблюдение'], 'search' : ['f','Претърсване на {{SITENAME}}'], 'p-logo' : ['','Началната страница'], 'n-mainpage' : ['z','Началната страница'], 'n-portal' : ['','Информация за проекта'], 'n-currentevents' : ['','Списък на основните категории в {{SITENAME}}'], 'n-recentchanges' : ['r','Списък на последните промени в цялото уики'], 'n-randompage' : ['x','Случайна страница'], 'n-help' : ['','Помощната страница'], 'n-sitesupport' : ['','Подкрепете {{SITENAME}}'], 't-whatlinkshere' : ['j','Списък на всички страници, сочещи насам'], 't-recentchangeslinked' : ['k','Последните промени на страници, сочещи към тази страница'], 'feed-rss' : ['','RSS feed за страницата'], 'feed-atom' : ['','Atom feed за страницата'], 't-contributions' : ['','Показване на приносите на потребителя'], 't-emailuser' : ['','Изпращане на писмо на потребителя'], 't-upload' : ['u','Качване на файлове'], 't-specialpages' : ['q','Списък на всички специални страници'], 'ca-nstab-main' : ['c','Преглед на основната страница'], 'ca-nstab-user' : ['c','Преглед на потребителската страница'], 'ca-nstab-media' : ['c','Преглед на медийната страница'], 'ca-nstab-special' : ['','Това е специална страница, която не може да се редактира.'], 'ca-nstab-wp' : ['c','Преглед на проектната страница'], 'ca-nstab-image' : ['c','Преглед на страницата на картинката'], 'ca-nstab-mediawiki' : ['c','Преглед на системното съобщение'], 'ca-nstab-template' : ['c','Преглед на шаблона'], 'ca-nstab-help' : ['c','Преглед на помощната страница'], 'ca-nstab-category' : ['c','Преглед на категорийната страница'] }; // от тези данни ще се генерират допълнителни бутони с insertTags() var customInsButtons = [ // ТЕКСТ_ОТЛЯВО ТЕКСТ_ОТДЯСНО ТЕКСТ_ПО_СРЕДАТА ЗАГЛАВИЕ ПОКАЗАН_ТЕКСТ ["#виж ["+"[", "]]", "Страница", "+команда за пренасочване", "вж"], ["<code>", "</code>", "моля, въведете програмен код", "Текст с фиксирана ширина на буквите — обикновено код", "<tt>код</tt>"], ["<sub>", "</sub>", "моля, въведете индекс", "+долен индекс", "a<sub>x</sub>"], ["<sup>", "</sup>", "моля, въведете степен", "+горен индекс", "a<sup>x</sup>"], [" ", "", "", "+несекаем интервал", "nbsp"], ["<del>", "</del>", "зачертан текст", "Отбелязване на текст като изтрит", "<del>del</del>"], ["{"+"{", "}}", "", "+скоби за шаблон", "{{}}"], ["—", "", "", "+дълга чертица — mdash", "—"], ["–", "", "", "+средна чертица — ndash", " – "], ["<"+"!-- ", " -->", "моля, въведете коментар", "+коментар", "<!--"], ["{"+"{ЗАМЕСТ:-)}}", "", "", "+шаблон „Усмивка“", ":-)"], ["{"+"{ЗАМЕСТ:D}}", "", "", "+шаблон „Ухилено човече“", ":-D"], ["<ref>", "</ref>", "", "Бележка под линия", "<small><sup>[1]</sup></small>"] ]; // данни за още бутони с код по желание var customMiscButtons = [ // КОД_ЗА_ИЗПЪЛНЕНИЕ ЗАГЛАВИЕ ПОКАЗАН_ТЕКСТ ]; // тук посочвайте какви шаблони да се вмъкват чрез падащото меню var tplPages = { // завършвайте всеки ред (с изключение на последния) със запетая // иначе НЯМА ДА РАБОТИ // "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", "Шаблон:Инфокутия личност/празен": "Инфокутия личност", "Шаблон:Инфокутия произведение/празен" : "Инфокутия ", "Шаблон:Инфокутия книга/празен": "Инфокутия книга", "Шаблон:Инфокутия филм/празен" : "Инфокутия филм", "Шаблон:Инфокутия издателство/празен" : "Инфокутия издателство", "Шаблон:Инфокутия вложка писател/празен" : "Инфокутия вложка писател", "Шаблон:Инфокутия вложка преводач/празен" : "Инфокутия вложка преводач", "Шаблон:Инфокутия вложка фен/празен" : "Инфокутия вложка фен", "Шаблон:Инфокутия вложка издател/празен" : "Инфокутия вложка издател", "Шаблон:Инфокутия списание брой/празен" : "Инфокутия списание брой", "Шаблон:Превод/празен": "Превод" }; // този масив ще се попълва от всеки потребител на личната му js страница var myTplPages = new Array(); var charsElemId = "extraChars"; // добавя нови бутони и други играчки function setupCustomEditTools() { var toolbar = document.getElementById("toolbar"); // ако няма съществуващи бутони, няма да добавяме и тези if ( !toolbar ) { return; } toolbar.className += " buttonlinks"; var tools = document.createElement("div"); tools.id = "custombuttons"; for (var i in customInsButtons) { var el = customInsButtons[i]; var title = el[3]; if ( title.charAt(0) == "+" ) { title = "Вмъкване на " + title.substr(1); } addCustomButton(tools, {"href": "javascript:insertTags('"+el[0] +"','"+el[1]+"','"+ el[2]+"')", "title": title, "innerHTML": el[4]}); } for (var i in customMiscButtons) { var el = customMiscButtons[i]; addCustomButton(tools, {"href":"javascript:"+el[0], "title":el[1], "innerHTML":el[2]}); } // падащото меню с шаблони toolbar.appendChild( makeTemplateSelectBox() ); toolbar.appendChild(tools); // елемент за допълнителните знаци /*var chbox = document.createElement("div"); chbox.id = charsElemId; chbox.style.display = "none"; toolbar.appendChild(chbox);*/ } function addCustomButton(box, item) { var b = document.createElement("a"); for (var attr in item) { b[attr] = item[attr]; } box.appendChild(b); box.appendChild( document.createTextNode(" ") ); } // генерира падащото меню с шаблоните function makeTemplateSelectBox() { var box = document.createElement("select"); box.title = "Оттук можете да вмъкнете празен шаблон"; box.onchange = function() { if (this.value != "") { loadTemplate(this.value); this.selectedIndex=0; } return false; }; box.appendChild( newOption("", "Шаблон...") ); for (var i in tplPages) { box.appendChild( newOption(i, tplPages[i]) ); } for (var i in myTplPages) { box.appendChild( newOption(i, myTplPages[i]) ); } return box; } function newOption(val, text) { var o = document.createElement("option"); o.value = val; o.appendChild( document.createTextNode(text) ); return o; } /* скрива/показва елемент */ function toggleElemDisplay(elemId) { var elem = document.getElementById(elemId); elem.style.display = elem.style.display == 'none' ? '' : 'none'; } var prevReq; var tplUrl = "{{fullurl:TEMPLATE|action=raw}}"; var tplPageToFetch = ""; function loadTemplate(tplPage) { prevReq = new XMLHttpRequest(); if( !prevReq ) return false; tplPageToFetch = tplPage; var getUrl = tplUrl.replace(/TEMPLATE/, encodeURI(tplPage)); //alert("Страница: "+tplPage+"\nАдрес: "+getUrl); prevReq.onreadystatechange = insertIntoWikiText; prevReq.open("GET", getUrl, true); prevReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); prevReq.send(""); return true; } function insertIntoWikiText() { if( prevReq.readyState != 4 ) { return; } if( prevReq.status != 200 ) { window.alert("Неуспешна връзка: " + prevReq.status + " “" + prevReq.statusText + "”\nСтраница: "+ tplPageToFetch); return; } insertTags(prevReq.responseText, "", ""); } // function copied from {{SERVER}}/skins/common/preview.js function openXMLHttpRequest() { if( window.XMLHttpRequest ) { return new XMLHttpRequest(); } else if( window.ActiveXObject && navigator.platform != 'MacPPC' ) { // IE/Mac has an ActiveXObject but it doesn't work. return new ActiveXObject("Microsoft.XMLHTTP"); } else { return null; } } hookEvent("load", setupCustomEditTools); /*</pre>*/