---
title: "Заметки про MediaWiki #1"
description: "MediaWiki - это очень популярный php-движок для создания библиотек. Далеко ходить не надо - его испо..."
author: "faiwer"
published: "2010-06-28T04:30:36+00:00"
modified: "2010-06-28T04:30:36+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/zametki-pro-mediawiki-1-55475"
markdown_url: "https://yvision.kz/post/zametki-pro-mediawiki-1-55475/markdown"
site_name: "Yvision.kz"
---

# Заметки про MediaWiki #1

> MediaWiki - это очень популярный php-движок для создания библиотек. Далеко ходить не надо - его испо...

![MediaWiki](http://storage.yvision.kz/images/user/faiwer/xSL7aA9yNPoKl50CmO9DnW30j2hxca.png)

[MediaWiki](http://www.mediawiki.org/wiki/MediaWiki) - это очень популярный php-движок для создания библиотек. Далеко ходить не надо - его использует [wikipedia.com](wikipedia.com) и [lurkmore.ru](lurkmore.ru). Я очень удивился, когда стал пытаться в нём разобраться - по нему практически не существует русскоязычной документации (если знаете неплохую - скиньте, плз). В виду чего у меня возникла идея написать несколько мелких статей по его усмирению. По сути я не php-прогер, хотя опыт в программировании есть, и не админ. Но для реализации большинства улучшений, которые вам могут пригодиться, это всё практически и не потребуется.

**Плагины**

[Плагины](http://www.mediawiki.org/wiki/Category:All_extensions) (Extentions) - позволяют добавить движку какой-либо дополнительный функционал. Например возможность встраивания в статьи видео с youtube-а. Для установки [этого плагина](http://www.mediawiki.org/wiki/Extension:YouTubeTag) необходимо:
- Закинуть файл (или папку с файлами, что реже) в директорию **/extensions**

- Открыть файл **LocalSettings.php** и добавить в конец **require_once**('$IP/extensions/YouTube.php'); где в скобках указывается главный файл плагина

В случае youtube плагина, видео можно встроить в статью просто применив конструкцию ****ссылка на ролик**** в своей статье. Есть и более функциональные плагины для этой цели, которые поддерживают сразу несколько видео-хостингов, да и к тому же позволяют менять размер встраиваемого объекта, но в моём случае они почему то взбунтовались... В прочем это отдельная история.

Рекомендую также установить плагин [ParserFunctions](http://www.mediawiki.org/wiki/Extension:ParserFunctions), он понадобиться вам для написания шаблонов (мини-программирование), и [Cite](http://www.mediawiki.org/wiki/Cite), который позволит легко и красиво организовать список сносок, разбрасывая их посреди статьи.

**Шаблоны**

[Шаблоны](http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9C%D0%B5%D1%85%D0%B0%D0%BD%D0%B8%D0%B7%D0%BC_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2) - это такие же страницы, как и обычные статьи, но в отличие от последних, могут быть использованы как внешняя процедура, которой можно передать параметры. По ссылке неплохое руководство по их созданию и применению (хотя, стоит отметить, далеко не полное). Очень удобная штука, позволит вам систематизировать и одинаково оформить похожие элементы информации или организовать статью как сборную солярку. Например в качестве шаблона может выступать табличка для показа параметров города или игры. Вот небольшой [пример](http://wiki.mmozona.ru/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%98%D0%B3%D1%80%D0%B0). Нажмите просмотр чтобы увидеть его код. В нём используются шаблон условия **{{#if}}**, который отсутствует в базовой комплектации, но необходим для задания хотя бы элементарной логики. Его и многое другое добавляет в вики плагин **ParserFunctions**. Думаю нет особого резона расписывать здесь то же, что вы можете найти в статье. Однако вам наверняка пригодиться это
- **{{:**название_статьи**}}**. Именно таким образом можно встроить в одну статью содержимое другой. На пару с шаблонами можно организовать какую никакую динамичную главную страницу.

**Панель редактирования статьей**

Думаю многих не устраивает стандартная панель редактирования статей в mediawiki. Мягко говоря, она убога и даже близко не покрывает возможности базовой сборки движка. Да и к тому же оформление просто туши свет. С него и начну. Я несколько изменил стандартные кнопки, скачать их можно [здесь](http://www.sendspace.com/file/wvwytp).

![Заметки про MediaWiki #1](https://storage.yvision.kz/images/user/faiwer/dTBA9CuY3U3BNpMROD732oY9O543Sp.jpg)

На мой взгляд они получились более скромными и понятными. Хотя о вкусах не спорят конечно. В архиве есть и нестандартные кнопки, о которых речь пойдёт позднее. Почти все изображения кнопок хранятся в папке **/common/images**, размер (23х22) к сожалению без бубна изменить нельзя, да и не особо нужно.

Так как же добавить новые кнопки? Если вас устроит простая подстановка, то достаточно открыть файл **/skins/common/edit.js** и добавить туда следующую функцию:

``` Добавить кнопкуfunction addInsertButton(img, speedTip, tagOpen, tagClose, sampleText){ mwCustomEditButtons[mwCustomEditButtons.length] = {'imageFile': '/skins/common/images/' + img, 'speedTip': speedTip, 'tagOpen': tagOpen, 'tagClose': tagClose, 'sampleText': sampleText};} ```

После этого можно приступать к созданию собственных кнопок. Суть функции такова:
- img - рисунок, загрузите его в папку **/skins/common/images/** и назовите (желательно) button_а_тут_по_смыслу.png (ну или .gif)

- speedTip - всплывающая подсказка кнопки

- tagOpen и tagClose - встраиваемые куски текста слева и справа от курсора (или выделенного текста)

- sampleText - в случае если никакой текст не выделен, указанное здесь значение подставиться между tagOpen и tagClose

Вот примеры готовых кнопок:

``` Новые кнопкиaddInsertButton('button_redirect.png','Перенаправление','#Перенаправление [[',']]','');addInsertButton('button_category.png','Категория','[[Категория:',']]','');addInsertButton('inner_link_separated.png','Внутренняя ссылка','[[','|]]','');addInsertButton("button_flag.png",'Флаг','{{Флаг|','|}}' ,'');addInsertButton('button-dash.png','Тире','—','','');addInsertButton('button_quotes.png','Кавычки','«','»','');addInsertButton("button_comment.png",'Комментарий','' ,'');addInsertButton("button_youtube.png",'Видео с youtube','','' ,'');addInsertButton("button_gallery.png",'Галерея','\nИзображение:|', '\nИзображение:|\nИзображение:|\nИзображение:|\n' ,'');addInsertButton("button_footnote.png",'Сноска','[',']' ,'');addInsertButton("button_footnote_sector.png",'Список сносок','','',''); ``` Саму функцию и понравившиеся вам кнопки можно добавить в начало или в конец файла. Некоторые из представленных кнопок требуют установки плагинов (Cite, Youtube).

---

Source: [https://yvision.kz/post/zametki-pro-mediawiki-1-55475](https://yvision.kz/post/zametki-pro-mediawiki-1-55475)