MediaWiki/Расширения
Содержание
- 1 Общая информация по расширениям
- 2 Некоторые полезные расширения
- 2.1 EditAccount - редактирование свойств участника
- 2.2 Cite.php - добавление сносок
- 2.3 ParserFunctions - доп тэги для шаблонов
- 2.4 CodeMirror - подсветка вики синтаксиса
- 2.5 SyntaxHighlight GeSHi - подсветка синтаксиса программного кода
- 2.6 SyntaxHighlighter - подсветка синтаксиса программного кода
- 2.7 GoogleCodePrettify - подсветка синтаксиса программного кода
- 2.8 CategoryTree - навигация по иерархии категорий
- 2.9 Collection - PDF книги
- 2.10 CharInsert - блок быстрой вставки под окном редактирования
- 2.11 CustomNavBlocks - улучшение боковой панели
- 2.12 FileSystemListing - отображение содержимого каталога на веб-сервере
- 2.13 NoTitle - отключение заголовка страницы
- 2.14 MassEditRegex - поиск и замена текста в статьях
- 2.15 Replace Text - поиск и замена текста в статьях
- 2.16 UserMerge - объединение и удаление участников
- 2.17 Расширения для перевода
- 2.18 Викификатор
- 3 Расширения для вики фермы
- 4 Полезные ссылки для написания расширения
Общая информация по расширениям
Список всех уже установленных расширений можно увидеть на странице Special:Version а в русифицированных версиях также на Служебная:Версия
Все расширения (extensions) устанавливаются в MediaWiki одинаково:
- копируются в свой подкаталог в каталоге extensions. Список расширений можно узнать из официального списка.
- в LocalSettings.php добавляется строка:
wfLoadExtension( 'Имя_расширения' );
До версии MediaWiki 1.24 строка подключения выглядела следующим образом:
require_once( "$IP/extensions/Каталог_Расширения/Главный_Файл_Расширения.php" );
Однако до сих пор не все расширения используют новый механизм регистрации, так что старый метод для некоторых остаётся актуальным.
Некоторые полезные расширения
EditAccount - редактирование свойств участника
Позволяет изменять пароль, электронную почту и реальное имя (не логин) любого участника. Добавляет служебные страницы:
- Special:CloseAccount - блокировка участника
- Special:EditAccount - изменение имени, пароля и эл. почты
Для изменения учётной записи (логина) можно использовать расширение UserMerge (см. ниже).
Cite.php - добавление сносок
Добавляет поддержку тэгов <ref> и <references />, что позволяет использовать в тексте статьи сноски.
ParserFunctions - доп тэги для шаблонов
Позволяет использовать тэги: #expr: #if: #ifeq: #ifexist: #ifexpr: #switch: #time: #rel2abs: #titleparts: #iferror:. На Википедии можно почитать как использовать функции парсера. Устанавливать лучше из репозитория Subversion (скачать клиент):
CodeMirror - подсветка вики синтаксиса
Позволяет подсвечивать вики синтаксис (страница в режиме правки) в трёх основных редакторах вики текста: классическом, WikiEditor и VisualEditor
wfLoadExtension( 'CodeMirror' ); $wgDefaultUserOptions['usecodemirror'] = 1;
SyntaxHighlight GeSHi - подсветка синтаксиса программного кода
Позволяет использовать тэги <syntaxhighlight> и <source>. Это расширенная версия mw:Extension:Geshi GeSHi. Если не работает (есть неудовлетворённые зависимости), то можно использовать SyntaxHighlighter или GoogleCodePrettify (см. далее).
cd extensions/ svn co svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi
Параметры:
- lang="??": Определяет язык программировария, сказывается на самой подсветке
- line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS": Как нумеровать линии (по умолчанию никак)
- line start="??": Какой номер у первой строки, используется вместе с line
- highlight="??": Какую линию подсветить, не зависит от line start
- enclose="??": В какой контейнер поместить блок. Принимает значения "pre" (по умолчанию), "div", "none".
- strict: Присутствие этого параметра указывает, что нужно использовать режим strict.
SyntaxHighlighter - подсветка синтаксиса программного кода
Это адаптированная для MediaWiki программа раскраски кода на JavaScript от Алексея Горбачёва. Поддерживается много форматов и есть документация как написать свои правила раскраски. Позволяет нумеровать строки выделять их выборочно и подключать свой CSS класс для индивидуального оформления блока. См. полный список возможностей.
По умолчанию используется тэг <source>
. Чтобы переопределить его нужно немного изменить код расширения. Такое может понадобится при переходе с другого расширения подсветки. Например при переходе с SyntaxHighlight_GeSHi, где используется тэг <syntaxhighlight>. Итак, для переопределения тэга нужно в файле SyntaxHighlighter.php найти строку:
$parser->setHook( 'source', array( $parser->extSyntaxHighlighter, 'source' ) );
и заменить на
$parser->setHook( 'syntaxhighlight', array( $parser->extSyntaxHighlighter, 'syntaxhighlight' ) );
а также
function source( $input, array $args, Parser $parser ) {
заменить на
function syntaxhighlight( $input, array $args, Parser $parser ) {
GoogleCodePrettify - подсветка синтаксиса программного кода
Задачи, подключение и использования аналогичны SyntaxHighlight GeSHi (описание см. выше), но возможностей меньше.
CategoryTree - навигация по иерархии категорий
Добавляет более удобную навигацию по категориям в виде иерархического дерева. Позволяет использовать тэг <categorytree>
Collection - PDF книги
Даёт возможность создавать книги в формате PDF из статей сайта.
! Требует чтобы PHP поддерживал cURL ! Возможно потребуется доустановить.
Чтобы дать пользователям возможность сохранять и делиться своими книгами с другими, добавьте в Localsettings.php:
$wgGroupPermissions['user']['collectionsaveasuserpage'] = true; $wgGroupPermissions['user']['collectionsaveascommunitypage'] = true;
С настройками по умолчанию книги будут генерироваться на сервере разработчика этого расширения.
CharInsert - блок быстрой вставки под окном редактирования
Быстрое добавление любых символов или шаблонных тегов. Ниже окна редактирования размещается дополнительная панель инструментов, которая настраивается на странице MediaWiki:Edittools.
Этот блок инструментов редактирования (или панель инструментов) можно перенести непосредственно под окно редактирование, над кнопками (как на этом сайте). Для этого нужно отредактировать сообщение MediaWiki:Summary, добавив над текстом вызов этой панели:
{{MediaWiki:Edittools}}
Затем на странице MediaWiki:Common.css отключить показ этого блока в месте, отведённом для этого в теме оформления (скине):
/* При добавлении Edittools в MediaWiki:Summary убираем этот блок из темы оформления */ .mw-editTools { display: none; }
Позволяет помещать в навигационные блоки (в левом столбце страницы) не только простые ненумерованные списки гиперссылок, но также и изображения, нумерованные списки, вложенные списки, разделители, мультимедию и так далее.
FileSystemListing - отображение содержимого каталога на веб-сервере
NoTitle - отключение заголовка страницы
Вводит новое «волшебное слово» «__NOTITLE__», отключающее появление основного заголовка страницы (а также других элементов подле заголовка — например, уведомления о произошедшем перенаправлении со страницы на страницу).
MassEditRegex - поиск и замена текста в статьях
Replace Text - поиск и замена текста в статьях
UserMerge - объединение и удаление участников
Добавляет служебную страницу Special:UserMerge.
Для изменения имени учётной записи (логина) с А на Б нужно:
- создать новую учётную запись Б;
- объединить А с Б;
- удалить А.
Расширения для перевода
См на специальной странице описание расширений:
- Babel
- CLDR
- CleanChanges
- LocalisationUpdate
- UniversalLanguageSelector
- Translate
Викификатор
Викификатор - не стандартное расширение, он написан на JavaScript и устанавливается копированием кода на страницу MediaWiki:Common.js.
Расширения для вики фермы
В вики ферме применяются те же расширения, что и в одиночной вики. Вики в ферме могут использовать (подключать) расширения независимо друг от друга или иметь одинаковый набор расширений. Это определяется в файле LocalSettings.php каждой вики.
Специализированных расширений для фермы очень мало.
- WikiFarm -- Мониторинг состояния нескольких вики как одиночных, так и ферм, сгруппированные административные ссылки для каждой вики, статистика, пользователи, последние изменения, сквозной поиск по всем вики.
Полезные ссылки для написания расширения
Общая информация:
- New extension registration system
- ResourceLoader -- обучающее видео и инфо для разработчиков
Работа с базой данных:
- Руководство по правильному написанию запросов к БД
- maintainance/clear_interwiki_cache.php -- пример использования инструментов МедиаВики для доступа к БД