Wikipedia:Technical village pump
С Wikipedia
ru: этот форум предназначен для обсуждения различных технических изменений в интерфейсе сибирской Википедии.
ru-sib: майдан наречонной гля мужевання технишных ментовок в межуличноси сибирской Википедди
Contents |
[чернить] Обустраиваем MediaWiki:Monobook.js
Для начала необходимо настроить файл MediaWiki:Monobook.js (его изменять может только администратор). Добавляем туда на самый верх строчки
function addLoadEvent(func) { if (window.addEventListener) window.addEventListener("load", func, false); else if (window.attachEvent) window.attachEvent("onload", func); }
Эта функция (addLoadEvent) будет в дальнейшем использоваться всеми техническими возможностями для включения.
Да, важное дополнение: читабельность этого файла. Чтобы его можно было легко прочесть прямо на странице MediaWiki:Monobook.js, добавляется строка
/* <pre><nowiki> */
в самое начало этой страницы и
/* </nowiki></pre> */
- в конец. Edward Chernenko 09:48, 2 October 2006 (UTC)
[чернить] Нулевая секция
Далее. Как известно, в статье из нескольких разделов (с несколькими заголовками) появляются ссылки "[править]", позволяющие отредактировать только одну секцию. Но для начала статьи (введения) такой ссылки нет, а потому для изменения введения более-менее большой статьи человек вынужден загружать больший объём. Кроме того, это увеличивает вероятность конфликтов редактирований (edit conflict).
Решение: в MediaWiki:Monobook.js добавляются строки
/* Делаем ссылку "править" для нулевой секции */ 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-sib.wikipedia.org/w/index.php?title=" + document.title.substr(0, document.title.lastIndexOf(" — ")) + "&action=edit§ion=0\">edit</a>]</div>" + document.getElementById('bodyContent').innerHTML; } addLoadEvent(edit_zero_section);
, а в MediaWiki:Monobook.css - строки
/* для редактирования нулевой секции */ .editsection { float: right; margin-left: 5px; }
После этого для проверки следует перезагрузить кэш браузера (нажав F5 или кнопку "Обновить" в вашем браузере). Ссылка появится везде, где есть минимум одна секция, в правом верхнем углу (чуть ниже заголовка статьи по высоте).
Edward Chernenko 09:29, 2 October 2006 (UTC)
[чернить] Отключение
Кому не нравится, может отключить эту возможность только для себя, добавив в личный monobook.js строку
disable_zero_section = 1;
или же в личный monobook.css строку
#ca-edit-0 { display: none; }
Edward Chernenko 10:23, 2 October 2006 (UTC)
[чернить] Счётчик Википедии
Для подключения счётчика посещений отдельных страниц в MediaWiki:Monobook.js добавляется код
var disable_counter = 0; function count_me() { if(!disable_counter && window.location.href.match("^http://ru-sib.wikipedia.org/wiki/") && !window.location.href.substring(7).match(":")) { var img = new Image(); img.src = "http://tools.wikimedia.de:22902/1" + document.referrer; } } addLoadEvent(count_me);
Через некоторое время после включения будет доступна статистика по типу этой и этой (я сообщу, когда всё будет готово).
Edward Chernenko 09:32, 2 October 2006 (UTC)
[чернить] Отключение
Если кто-то не хочет, чтобы его считали, он может добавить в личный monobook.js строку
disable_counter = 1;
Edward Chernenko 10:24, 2 October 2006 (UTC)
[чернить] Включаем шаблон {{title}}
С помощью шаблона {{title}} можно будет изменять заголовки статей (например, если они содержат символы, недопустимые в названиях статей - "+", например). В MediaWiki:Monobook.js добавляется код
/* Замена неправильного заголовка правильным - (C) SergV */ title_restr_alerts = ["trestrictions_replace", "trestrictions_alert"]; //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);
После этого для проверки следует перезагрузить кэш браузера (нажав F5 или кнопку "Обновить" в вашем браузере). Заголовок статьи, содержащей строку "{{title|Верное название}}", будет отображён как "Верное название". Edward Chernenko 09:58, 2 October 2006 (UTC)
[чернить] Реализуем звёздочки избранных интервик и ссылки на ICQ
В MediaWiki:Monobook.js можно добавить следующий код, позволяющий:
- отображать звёздочку против тех интервик, которые ссылаются на избранные в других разделах статьи;
- заставить работать шаблон .
function LinkFA() { for(var i=0; a = document.getElementsByTagName("span")[i]; i++) { /* ссылка на асю? */ 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(a.className == "FA") { for(var j=0; b = document.getElementsByTagName("li")[j]; j++) { 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);
После этого для проверки следует перезагрузить кэш браузера (нажав F5 или кнопку "Обновить" в вашем браузере). Звёздочка избранной статьи будет выглядеть вот так.
Чтобы указать, что в, скажем, немецкой вике страница - избранная, сразу после их интервики-ссылки ставится {{Link FA|de}}. В русском разделе этим автоматически занимается бот; возможно, надо будет включить его здесь (как-нибудь на досуге займусь).
Шаблон {{ICQ}} используется так: {{ICQ|номер}}. Пример: Spectrum (иконка покажется только после включения кода).
Edward Chernenko 10:20, 2 October 2006 (UTC)
[чернить] Настройка интерфейса
[чернить] Меняем меню
Меню "navigation" слева можно изменить, поправив страницу MediaWiki:Sidebar. Вид её следующий (см. пример):
* название_меню1 ** ссылка1|текст1 ** ссылка2|текст2 ** ссылка3|текст3 * название_меню2 ** ссылка4|текст4 ** ссылка5|текст5
Например, в нашем случае пишем туда (в одно цельное меню):
* navigation ** mainpage-url|mainpage ** forum-url|forum ** recentchanges-url|recentchanges ** randompage-url|randompage ** help-url|help ** sandbox-url|sandbox
Далее, для каждого из использованных слов ('navigation', 'mainpage-url', 'forum' и т.п.) создаём страницы MediaWiki:<подставить_сюда_название> (например, MediaWiki:Navigation, MediaWiki:Mainpage-url, MediaWiki:Forum) со следующим содержимым: текст ссылки, если слово находится справа, и название страницы, если слева.
То есть в MediaWiki:Navigation прописываем перевод слова "navigation" на сибирском, в MediaWiki:mainpage-url пока пишем "Main_page" (можно переименовать, кстати). Так же и с другими. Смысл этих манипуляций:
- убирается ссылка на "Current events" (всё равно пока не потянем их вести);
- добавляется ссылка на песочницу (sandbox) - в самом низу меню;
- убирается раздел "donations" (ну его, не нужен).
Так же можно там ещё что-нибудь перевести или ещё какую-нибудь ссылку добавить (справки у нас пока нет, так что строку "** help-url|help" тоже можно убрать).
Не рекомендуется писать переводы/названия страниц прямо в MediaWiki:Sidebar, ибо это ломает правильность страницы с точки зрения стандартов XHTML (недавно на рувике с этим сталкивались уже).
Edward Chernenko 09:48, 2 October 2006 (UTC)