Wikipedia:Technical village pump
From 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)

