Разлика между версии на „МедияУики:Common.js“
От БГ-Фантастика
м („МедияУики:Monobook.js“ преместена като „МедияУики:Common.js“) |
м (всъщност масивите работят и със запетая след последния елемент) |
||
Ред 1: | Ред 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
// от тези данни ще се генерират допълнителни бутони с insertTags() | // от тези данни ще се генерират допълнителни бутони с insertTags() | ||
var customInsButtons = [ | var customInsButtons = [ | ||
Ред 31: | Ред 26: | ||
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Инфокутия…“ | // тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Инфокутия…“ | ||
var infoboxPages = { | var infoboxPages = { | ||
− | |||
− | |||
// "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", | // "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", | ||
"Шаблон:Инфокутия личност/празен": "Личност", | "Шаблон:Инфокутия личност/празен": "Личност", | ||
Ред 56: | Ред 49: | ||
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Образец…“ | // тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Образец…“ | ||
var modelPages = { | var modelPages = { | ||
− | |||
− | |||
// "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", | // "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", | ||
"БГ-Фантастика:Образец за статия за писател": "Писател", | "БГ-Фантастика:Образец за статия за писател": "Писател", | ||
Ред 86: | Ред 77: | ||
// тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Шаблон…“ | // тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Шаблон…“ | ||
var tplPages = { | var tplPages = { | ||
− | |||
− | |||
// "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", | // "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", | ||
"Шаблон:Превод/празен": "Превод", | "Шаблон:Превод/празен": "Превод", | ||
Ред 255: | Ред 244: | ||
hookEvent("load", setupCustomEditTools); | hookEvent("load", setupCustomEditTools); | ||
− | |||
− |
Версия от 17:07, 8 октомври 2007
// от тези данни ще се генерират допълнителни бутони с 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 infoboxPages = { // "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", "Шаблон:Инфокутия личност/празен": "Личност", "Шаблон:Инфокутия произведение/празен" : "Произведение", "Шаблон:Инфокутия статия/празен" : "Статия", "Шаблон:Инфокутия рецензия/празен" : "Рецензия", "Шаблон:Инфокутия интервю/празен" : "Интервю", "Шаблон:Инфокутия книга/празен": "Книга", "Шаблон:Инфокутия филм/празен" : "Филм", "Шаблон:Инфокутия издателство/празен" : "Издателство", "Шаблон:Инфокутия клуб/празен" : "Клуб", "Шаблон:Инфокутия списание брой/празен" : "Списание брой", "Шаблон:Инфокутия вложка писател/празен" : "Вложка писател", "Шаблон:Инфокутия вложка преводач/празен" : "Вложка преводач", "Шаблон:Инфокутия вложка критик/празен" : "Вложка критик", "Шаблон:Инфокутия вложка журналист/празен" : "Вложка журналист", "Шаблон:Инфокутия вложка рецензент/празен" : "Вложка рецензент", "Шаблон:Инфокутия вложка фен/празен" : "Вложка фен", "Шаблон:Инфокутия вложка издател/празен" : "Вложка издател", "Шаблон:Инфокутия вложка художник/празен" : "Вложка художник" }; // тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Образец…“ var modelPages = { // "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", "БГ-Фантастика:Образец за статия за писател": "Писател", "БГ-Фантастика:Образец за статия за художник": "Художник", "БГ-Фантастика:Образец за статия за музикант": "Музикант", "БГ-Фантастика:Образец за статия за преводач": "Преводач", "БГ-Фантастика:Образец за статия за режисьор": "Режисьор", "БГ-Фантастика:Образец за статия за актьор": "Актьор", "БГ-Фантастика:Образец за статия за издател": "Издател", "БГ-Фантастика:Образец за статия за редактор": "Редактор", "БГ-Фантастика:Образец за статия за фен": "Фен", "БГ-Фантастика:Образец за статия за литературно произведение": "Произведение", "БГ-Фантастика:Образец за статия за книга": "Книга", "БГ-Фантастика:Образец за статия за вестник": "Вестник", "БГ-Фантастика:Образец за статия за списание": "Списание", "БГ-Фантастика:Образец за статия за поредица": "Поредица", "БГ-Фантастика:Образец за статия за брой на вестник": "Вестник брой", "БГ-Фантастика:Образец за статия за брой на списание": "Списание брой", "БГ-Фантастика:Образец за статия за герой на произведение": "Герой", "БГ-Фантастика:Образец за статия за второстепенни герои в произведение": "Второст. герои", "БГ-Фантастика:Образец за статия за място в произведение": "Място", "БГ-Фантастика:Образец за статия за понятие от произведение": "Понятие", "БГ-Фантастика:Образец за статия за издателство": "Издателство", "БГ-Фантастика:Образец за статия за фен-клуб": "Фен-клуб", "БГ-Фантастика:Образец за статия за събитие": "Събитие" }; // тук посочвайте какви шаблони да се вмъкват чрез падащото меню „Шаблон…“ var tplPages = { // "ИМЕ НА СТРАНИЦАТА" : "ПОКАЗВАН ТЕКСТ", "Шаблон:Превод/празен": "Превод", "Шаблон:Пояснение/празен": "Пояснение" }; // тези масиви ще се попълват от потребителите на личните им js страници var myInfoboxPages = new Array(); var myModelPages = new Array(); 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]}); } addDropDownMenus(toolbar); // падащите менюта 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 addDropDownMenus(parent) { addDropDownMenu(parent, "Инфокутия…", "празна инфокутия", infoboxPages, myInfoboxPages); addDropDownMenu(parent, "Образец статия…", "образец за нова статия", modelPages, myModelPages); addDropDownMenu(parent, "Шаблон…", "празен шаблон", tplPages, myTplPages); } // генерира падащо меню function addDropDownMenu(parent, emptyOpt, title, defContent, userContent) { var box = document.createElement("select"); box.title = "Оттук можете да вмъкнете " + title; box.onchange = function() { if (this.value != "") { loadPage(this.value); this.selectedIndex=0; } return; }; box.appendChild( newOption("", emptyOpt) ); appendOptions(box, defContent); appendOptions(box, userContent); parent.appendChild(box); } function appendOptions(box, opts) { for (var i in opts) { box.appendChild( newOption(i, opts[i]) ); } } 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 pageToFetch = ""; function loadPage(page) { prevReq = openXMLHttpRequest(); if( !prevReq ) return false; pageToFetch = page; var getUrl = tplUrl.replace(/TEMPLATE/, encodeURI(page)); //alert("Страница: "+page+"\nАдрес: "+getUrl); showLoadIndicator(); 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; } hideLoadIndicator(); if( prevReq.status != 200 ) { window.alert("Неуспешна връзка: " + prevReq.status + " “" + prevReq.statusText + "”\nСтраница: "+ pageToFetch); return; } // изтриване на текст, отбелязан за невмъкване + <pre> и <nowiki> var re = /<!--noinclude-->.*<!--\/noinclude-->|<\/?pre>|<\/?nowiki>/g; var content = prevReq.responseText.replace(re, ""); insertTags(content, "", ""); } var loadIndicator; function showLoadIndicator() { if ( typeof(loadIndicator) != "undefined" ) { loadIndicator.style.display = "block"; return; } var content = document.getElementById("content"); if ( !content ) { // no "content" element return; } loadIndicator = document.createElement("div"); loadIndicator.id = "loadIndicatorWrapper"; var txt = document.createElement("div"); txt.id = "loadIndicator"; txt.appendChild( document.createTextNode("Шаблонът се зарежда…") ); loadIndicator.appendChild(txt); content.appendChild(loadIndicator); } function hideLoadIndicator() { loadIndicator.style.display = "none"; } // 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);