MediaWiki/Расширения

Материал из СисадминВики (SysadminWiki.ru)
Перейти к: навигация, поиск

Содержание

Общая информация по расширениям

Список всех уже установленных расширений можно увидеть на странице Special:Version а в русифицированных версиях также на Служебная:Версия

Все расширения (extensions) устанавливаются в MediaWiki одинаково:

  1. копируются в свой подкаталог в каталоге extensions. Список расширений можно узнать из официального списка.
  2. в 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 (скачать клиент):


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; }

CustomNavBlocks - улучшение боковой панели

Позволяет помещать в навигационные блоки (в левом столбце страницы) не только простые ненумерованные списки гиперссылок, но также и изображения, нумерованные списки, вложенные списки, разделители, мультимедию и так далее.


FileSystemListing - отображение содержимого каталога на веб-сервере

NoTitle - отключение заголовка страницы

Вводит новое «волшебное слово» «__NOTITLE__», отключающее появление основного заголовка страницы (а также других элементов подле заголовка — например, уведомления о произошедшем перенаправлении со страницы на страницу).


MassEditRegex - поиск и замена текста в статьях

Replace Text - поиск и замена текста в статьях

UserMerge - объединение и удаление участников

Добавляет служебную страницу Special:UserMerge.

Для изменения имени учётной записи (логина) с А на Б нужно:

  1. создать новую учётную запись Б;
  2. объединить А с Б;
  3. удалить А.

Расширения для перевода

См на специальной странице описание расширений:

  • Babel
  • CLDR
  • CleanChanges
  • LocalisationUpdate
  • UniversalLanguageSelector
  • Translate

Викификатор

Викификатор - не стандартное расширение, он написан на JavaScript и устанавливается копированием кода на страницу MediaWiki:Common.js.

Расширения для вики фермы

В вики ферме применяются те же расширения, что и в одиночной вики. Вики в ферме могут использовать (подключать) расширения независимо друг от друга или иметь одинаковый набор расширений. Это определяется в файле LocalSettings.php каждой вики.

Специализированных расширений для фермы очень мало.

  • WikiFarm -- Мониторинг состояния нескольких вики как одиночных, так и ферм, сгруппированные административные ссылки для каждой вики, статистика, пользователи, последние изменения, сквозной поиск по всем вики.


Полезные ссылки для написания расширения

Общая информация:

Работа с базой данных: