Difference between revisions of "Mediawiki4Intranet"

From Wiki4Intranet
Jump to: navigation, search
(OpenID)
Line 28: Line 28:
 
== Патчи ==
 
== Патчи ==
  
Патчи содержат в себе изменения в код самой MediaWiki, а также небольшие изменения в расширениях, ради которых не хочется поддерживать отдельную версию этих расширений.
+
[[Mediawiki4Intranet/Патчи]]
 
+
В '''MediaWiki4Intranet''' патчи хранятся в Feature Branches, то есть, в Mercurial-репозитории есть ветка «'''mediawiki-x.xx'''» (например, mediawiki-1.16), содержащая оригинальный код MediaWiki (плюс расширения, в которые изменения вносятся только патчами), по ветке на каждый патч, и ветка «'''all'''», содержащая все патчи, объединённые вместе. Для удобства объединений используется расширение Mercurial [http://arrenbrecht.ch/mercurial/pbranch/ pbranch].
+
 
+
Какие плюсы это даёт:
+
* Патчи не смешиваются, поэтому поддерживается высокий порядок — можно взять отдельный патч и отправить в upstream или, например, удалить.
+
* Если патчи экспортировать в [http://www.gnu.org/software/diffutils/ Unified diff]-формате, между ними гарантированно не возникнет конфликтов, так как ещё на стадии объединения конфликты либо устраняются, либо вносится зависимость между патчами.
+
 
+
А единственный минус — высокая сложность графа ветвлений в Mercurial-репозитории.
+
 
+
Ветки отдельных патчей отпочкованы от оригинальной, и все изменения, вносимые этими патчами, просто фиксируются в соответствующие ветки. Обновления кода MediaWiki и расширений коммитятся в «оригинальную» ветку и merge’атся в ветки патчей, а затем и в ветку «all».
+
 
+
Далее ко всему этому безобразию, тоже отдельной веткой ('''mw4i-ext'''), добавляются SVN-репозиторий, содержащий собственные и сильно доработанные расширения, инструменты и конфигурационные файлы; после чего ветки '''all''' и '''mw4i-ext''' объединяются в «установочную» ветку '''mw4install'''.
+
 
+
Всего: 41 патч.
+
 
+
=== Исправления багов ===
+
 
+
То есть патчи, исправляющие какие-либо ошибки. Всего: 18.
+
 
+
<tab sep="bar" class="wikitable sortable" head="topleft">
+
Аббр. | Дата добавления | Имя | Описание патча
+
CEB | 2010-02-03 | categorytree-empty-bullets | Патч расширения CategoryTree, чтобы оно не предлагало разворачивать пустые на самом деле категории.
+
CRNR | 2011-03-28 | cite-refsnoreferences | Патч расширения Cite + в код MediaWiki, в большей части случаев исправляющий ошибку «Ошибка цитирования: для несуществующего тега &lt;ref> не найдено тега &lt;references />», некорректно возникающую при использовании расширений, которые сами где-нибудь используют парсер без сброса состояния.
+
DCLD | 2009-11-11 | dont-call-linkholders-__destruct | Исправление некорректного явного вызова деструктора mLinkHolders в парсере.
+
DCS | 2009-11-24 | debug-categorized-specialrecentchanges | Исправление выбора по категориям в «[[Special:RecentChanges|Свежих правках]]».
+
DNL | 2009-08-12 | discussion-newsection-links | Ссылки на несуществующие страницы обсуждений сделаны по умолчанию ссылками на добавление секции.
+
DSSUC | 2010-03-26 | dont-suppress-same-user-conflicts | Не игнорировать конфликты редактирования, произошедшие из-под одного юзера.
+
EHC | 2009-09-11 | bug53818-empty-heading-crutch | Ликвидация пустых заголовков (строк вида ====) из текста статьи, вместо того, чтобы принимать б'''о'''льшую часть = за маркеры заголовка, а два внутренних = — за текст заголовка.
+
EMB | 2011-04-01 | email-mime-base64 | Использовать кодировку MIME Base64 в заголовках email-писем. Полезно для виндузятников, сидящих на M$ Exchange.
+
FFP3 | 2009-08-12 | fixes-for-php-5.3.0 | Исправления предупреждений (warnings) под PHP 5.3 и выше, в некоторых файлах MediaWiki и расширении Interwiki.
+
FL | 2010-12-29 | fix-l10n | Исправление сообщения noarticletext в русском языке, добавление формата даты «YYYY-MM-DD HH:MM:SS» без дурацкого «T» между ними.
+
FPH | 2010-12-14 | fix-pdfhandler | Патч расширения PdfHandler, убрано экранирование <tt>$wgPdfProcessor</tt>'а, ссылки на PDF-файл с его страниц теперь ведут на саму страницу.
+
FDU | 2011-06-15 | fix-deletebatch-uploads | Патч расширения [[mediawikiwiki:Extension:DeleteBatch|DeleteBatch]], исправляющий удаление загруженных файлов (отправлен на страницу обсуждения).
+
GS | 2009-11-19 | gdalwaysresample-setting | Настройка <tt>$wgGDAlwaysResample</tt> GD, если true, то миниатюры gif’ок получаются более качественными (они всегда уменьшаются с интерполяцией).
+
NSF | 2010-06-25 | no-session-fail | Ликвидация лишней попытки сохранения и «ошибок потери данных сессии» при переходе на форму редактирования статьи с передачей текста в окно редактирования.
+
UALE | 2009-12-21 | upload-autofill-lowercase-extensions | Автоматическая смена регистра расширения загружаемого файла на нижний. Плюс настройка <tt>$wgMaxFilenameLength</tt> максимальной длины имени файла в списках файлов с миниатюрами — в оригинале забито гвоздями значение 20, что очень мало, и из-за чего имена файлов часто обрезаются.
+
USDMS | 2009-06-03 | unauth-save-display-modified-source | Показ '''изменённого''', а не оригинального текста статьи при запрещённой попытке сохранения. Нужен, чтобы пользователь не потерял свои изменения при нажатии «Сохранить», если сохранять ему на самом деле запрещено.
+
WDCS | 2009-12-14 | wfmsg-dont-clear-stripstate | По умолчанию не очищать <tt>$parser->mStripState</tt> при дополнительных вызовах <tt>parse()</tt>. Исправляет некоторое количество ошибок с непонятными длинными иероглифическими маркерами «--……..uniq--» в тексте статьи на месте каких-либо данных. На самом деле причина ошибки более глубока: ''парсер MediaWiki нереентерабелен'', авторы об этом знают и, возможно, когда-нибудь исправят.
+
ZOM | 2011-04-27 | zip-ooxml-mime | Корректное определение типов OOXML (M$ Office >= 2007)
+
</tab>
+
 
+
=== Доработки ===
+
 
+
То есть патчи, добавляющие какой-либо новый функционал. Всего: 23.
+
 
+
<tab sep="bar" class="wikitable sortable" head="topleft">
+
Аббр. | Дата добавления | Имя | Описание патча
+
AH | 2010-07-23 | add-hooks | Добавление хуков и отключение проверки параметра action для спецстраниц. Требуется в частности для расширений <tt>HttpAuth</tt> (для авторизации методом HTTP Basic), <tt>Wikilog</tt> (для группировки свежих правок комментариев в блогах по имени поста на странице «улучшенных» свежих правок).
+
ALT | 2009-11-20 | anchor-link-tocnumbers | Поддержка автоматической простановки номеров секций в ссылках на секции текущей страницы. То есть в ссылки вида «<tt><nowiki>[[#Раздел]]</nowiki></tt>» будет автоматически добавлен номер секции («2. Раздел»).
+
ARC | 2011-04-27 | any-raw-ctype | Поддержка произвольного Content-Type для ?action=raw (получения текста страницы).
+
CSL | 2010-03-25 | category-subcatlist | Патч расширения CategoryTree. Новый метод группировки страниц в категориях — не по первой букве имени, а по другим категориям, в которых они также перечислены. Чтобы включить этот метод, на страницу категории нужно добавить магическое слово &#x5F;_CATEGORYSUBCATLIST__. Плюс магическое слово, отключающее 3-колоночный список в категориях - &#x5F;_NOCATEGORYCOLUMNS__.
+
DAT | 2009-08-07 | dot-after-tocnumber | Настройка <tt>$wgDotAfterTocnumber</tt>, если true, то после номеров разделов в оглавлении ставится точка.
+
DBT | 2010-05-21 | detailed-badtitle | Детализация сообщений об ошибках недопустимого имени страницы.
+
DSAH | 2009-10-23 | detect-script-allow-html | Разрешение изменения списка тегов, запрещённых в тексте загруженных файлов — настройка <tt>$wgForbiddenTagsInUploads</tt>.
+
EP | 2011-02-18 | env-proxy | Поддержка настроек HTTP прокси, заданных в стандартных переменных окружения http_proxy, http_no_proxy, при загрузке изображений по URL.
+
FVS | 2011-02-11 | fix-vector-skin | Небольшая доработка и исправление скина Vector — возвращение возможности поместить поле поиска в левую панель через [[MediaWiki:Sidebar]] (что за тупость — удалять возможность). Плюс увеличение ширины верхнего поля поиска.
+
HE | 2010-04-21 | html-emails | Часть расширения EnotifDiff. Поддержка отправки почты об изменениях и подтверждении e-mail адреса в формате HTML, а не в виде чистого текста.
+
IAR | 2011-02-25 | intraacl-rights | Часть расширения [[IntraACL]]. Проверки прав доступа к страницам во всём коде MediaWiki. Собственно это и обеспечивает защиту.
+
IEIC | 2009-05-13 | import-export-images-and-conflicts | [[MW_Import&Export|Очень сильно улучшенный импорт/экспорт]] страниц MediaWiki. Отправлен в [https://bugzilla.wikimedia.org/show_bug.cgi?id=22881 Wikimedia Bug 22881].
+
ITF | 2011-02-11 | imagethumb-transform-flags | Передавать данные о том, откуда вызывается создание миниатюры файла. Нужно для FlvHandler’а, чтобы не вставлять код видеоплеера в галереи файлов и в миниатюры файлов в истории ревизий.
+
LPWC | 2011-03-23 | longpagewarning-config | Поддержка настройки лимита размера статьи, по истечении которого показывается предупреждение [[MediaWiki:Longpagewarning]]. Баг такой у разработчиков mediawiki стоит, но решение они для него предложили очень странное — убрали нафиг проверку и разрешили делать эту проверку на уровне функций парсера. Глупость.
+
LSA | 2011-03-23 | lcstore-accel | Поддержка кэширования локализации (LocalisationCache) в PHP ускорителе типа XCache. Странно, что этого нет в оригинале.
+
MCE | 2011-05-16 | mergeconflicts-extension | Патч - часть расширения '''MergeConflicts''', позволяющий отображать конфликты редактирования в 3 колонки.
+
PDD | 2011-02-11<br />&larr; 2010-07-26 | parser-debug-doblocklevels | Разрешать включать <tt><nowiki><center>...</center></nowiki></tt> и <tt><nowiki><blockquote>...</blockquote></nowiki></tt> внутрь абзаца. Две даты добавления — потому что патч, по сути, имел две версии — первая добавляла тупой хак, местами ломавший тесты, а вторая включает почти полностью переписанный корректный метод doBlockLevels().
+
REF | 2010-12-14 | rearrange-editform | Перемещение списков использованных в статье шаблонов и скрытых категорий на странице редактирования '''под форму редактирования''', то есть, за пределы элемента &lt;form>. Что необходимо для того, чтобы текст <tt>[[wikipedia:User:Cacycle/wikEd|WikEd]]</tt>'овского AJAX-предпросмотра, то есть HTML-текст статьи, не включался в форму, потому что он сам может включать в себя формы, и тогда их содержимое некорректным образом попадает в форму редактирования, что потенциально приводит к неприятным багам. Плюс настройка <tt>$wgNoCopyrightWarnings</tt> для отключения предупреждений о копирайте (MediaWiki:Copyrightwarning, MediaWiki:Copyrightwarning2).
+
 
+
SDR | 2010-05-29 | svg-double-render | Вставка SVG-изображений как пары векторное+растровое изображение, а не просто как растровое.
+
 
+
SHL | 2009-06-18 | shift-included-templates-heading-levels | «Сдвиг» уровня заголовков статьи при её включении в подзаголовок. То есть если она включается под заголовком уровня N, то её заголовки 1-го уровня станут (1+N)-ого уровня, 2-го — (2+N), и т. п.
+
SNH | 2009-05-13 | signature-nohyphen | Вставка подписей нажатием кнопки без двух лидирующих минусов «--». Плюс <tt><nowiki><m>...</m></nowiki></tt> вместо <tt><nowiki><math>...</math></nowiki></tt> на кнопке вставки TeX-формул (обрабатывается расширением MarkupBabel).
+
TFN | 2009-05-13 | translit-upload-filenames | Автоматическое транслитерирование физических имён файлов (то есть имён файлов на диске) с кириллицы на латиницу под Windows.
+
TS | 2010-10-15 | transclude-sections | Поддержка включений секций страниц с помощью синтаксиса вида <tt><nowiki>{{:Статья#Секция}}</nowiki></tt>.
+
</tab>
+
 
+
=== Устаревшие патчи ===
+
 
+
Под устаревшими понимаются патчи, более не нужные в связи с обновлением лежащего в основе кода. По сути, это означает, что данный патч либо исправлял какой-то баг, который исправили уже и сами авторы, либо был сам принят в состав MediaWiki (таких пока что, правда, нет), либо был переименован.
+
 
+
<tab sep="bar" class="wikitable sortable" head="topleft">
+
Аббр. | Дата добавления | Имя | Описание патча
+
CRDP | 2010-01-12 | cite-reenterability-for-different-parser-objects | Патч расширения Cite, направленный на его реентерабельность.
+
FCRW | 2009-05-13 | fix-cannot-redeclare-wfspecialupload | Исправление ошибки «Fatal error: Cannot redeclare wfspecialupload()» при загрузке изображения без авторизации. Плюс поддержка HTTP прокси, заданной в стандартной переменной окружения http_proxy, при загрузке изображений по ссылке.
+
HAR | 2010-04-27 | haloacl-rights | ''/* переименован в intraacl-rights */'' Часть расширения HaloACL. Проверки прав доступа к страницам во всём коде MediaWiki. Собственно это и обеспечивает защиту.
+
IGTT | 2009-09-11 | imagegallery-tell-transform, imagepage-tell-transform | ''/* патчи объединены в imagethumb-transform-flags */'' Передавать данные о том, откуда вызывается создание миниатюры файла. Нужно для FlvHandler’а, чтобы не вставлять код видеоплеера в галереи файлов и в миниатюры файлов в истории ревизий.
+
TMF4 | 2009-11-24 | trunk-mediafunctions-for-1.14 | Патч trunk-версии расширения MediaFunctions, позволяющий ей работать в MediaWiki 1.14.1.
+
</tab>
+
  
 
== Расширения ==
 
== Расширения ==
  
Для большинства расширений, присутствующих в [http://svn.wikimedia.org/svnroot/mediawiki/ SVN Wikimedia], используется их версия, соответствующия версии MediaWiki — например, для версии 1.14.1 расширения берутся из [http://svn.wikimedia.org/svnroot/mediawiki/tags/REL1_14_1/extensions tags/REL1_14_1/extensions]. Однако версии некоторых расширений, соответствующие версии MediaWiki, имеют различные неприятные баги, или их там вообще ещё нет, и тогда берётся их '''trunk'''-версия (то есть самая новая) из [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions trunk/extensions], возможно, как-то допиливается, например, с помощью патчей, и включается в сборку.
+
[[Mediawiki4Intranet/Расширения]]
 
+
Есть и расширения, которые вообще не попали в SVN, и у которых нет даже своего репозитория с кодом, а есть только где-то выложенные файлики, или даже просто PHP-код на вики-страницах. Такие сохраняются в нашем локальном SVN, там же дорабатываются, и включаются в сборку оттуда. Вообще говоря, у нас есть ''«супер-система»'' автоматического объединения кода и патчей из нескольких источников на основе [http://mercurial.selenic.com/ Mercurial] и [http://arrenbrecht.ch/mercurial/pbranch/ pbranch], но это немного другая история.
+
 
+
Всего: 60.
+
 
+
Статус — это статус доработок расширения. Легенда:
+
 
+
;{{/Неизм}} = Не изменённые: Включены в сборку без изменений. Всего: 14.
+
;{{/Отлаж}} = Отлаженные: Включены в сборку после отладки, back-портирования, либо мелких доработок. Всего: 16.
+
;{{/Дораб}} = Доработанные: Включены в сборку после '''сильной''' доработки. Всего: 6.
+
;{{/Созд}} = Созданные: Созданные специально в рамках сборки. Всего: 24.
+
 
+
Даты изменений:
+
; Оригинал: Оригинальная (не 4intranet) версия расширения, на которой основана включённая в сборку версия. Для расширений, созданных специально в рамках сборки, понятное дело, пуста. Если подсвечена <span style="background-color: #c00; color: white">&nbsp;красным&nbsp;</span> — это не последняя из версий расширения, доступных для используемой версии MediaWiki. Это не страшно, а означает лишь, что либо наша версия далеко ушла от оригинальной и внесённые изменения ей всё равно не нужны, либо, что мы просто ещё с ней не смержились. Если подсвечена <span style="background-color: #fc0; color: black">&nbsp;жёлтым&nbsp;</span> — версия расширения может отставать от основной (trunk) ветви, в которой идёт активная его разработка/доработка.
+
; Включено: Дата первого включения расширения в сборку.
+
; Последняя: Дата последнего изменения расширения в сборке — только для доработанных расширений.
+
 
+
<tab sep="bar" class="wikitable sortable" head="topleft">
+
Статус | Название | Оригинал | Включено | Последняя | Описание
+
{{/Неизм}} | [[mediawikiwiki:Extension:AllowGetParamsInWikilinks|AllowGetParamsInWikilinks]] | 2009-04-27 | 2009-12-01 | &nbsp; |Разрешение использования URL-параметров (?key=value) во внутренних вики-ссылках.
+
{{/Неизм}} | [[mediawikiwiki:Extension:CharInsert|CharInsert]] | 1.16.2 | 2008-10-15 | &nbsp; |Поддержка вставки шаблонов <tt>&lt;charinsert></tt> для [[MediaWiki:Edittools]]. См. также UserMessage, CharInsertList.
+
{{/Неизм}} | [[mediawikiwiki:Extension:Full Local Image|FullLocalImage]] | 2006-10-31 | 2009-09-08 | &nbsp; |Добавление функций <tt><nowiki>{{fullimage:ФАЙЛ}}</nowiki></tt> и <tt><nowiki>{{localimage:ФАЙЛ}}</nowiki></tt>, возвращающих путь хранения файла на сервере (полный в первом случае и относительный во втором).
+
{{/Неизм}} | [[mediawikiwiki:Extension:Google Analytics|Google Analytics]] | trunk (svn83019) | 2010-01-14 | &nbsp; |Гугловский счётчик. Можно подключать на виках, установленных в интернете.
+
{{/Неизм}} | [[mediawikiwiki:Extension:PagedTiffHandler|PagedTiffHandler]] | trunk (svn83019) | 2011-01-14 | &nbsp; |Поддержка TIFF-картинок.
+
{{/Неизм}} | [[mediawikiwiki:Extension:ParserFunctions|ParserFunctions]] | 1.16.2 | 2008-10-15 | &nbsp; |Функции парсера типа <tt><nowiki>{{#if:}}</nowiki></tt>, <tt><nowiki>{{#ifeq:}}</nowiki></tt> и т. п. '''[[mediawikiwiki:Help:Extension:ParserFunctions|Справка тут]].''' Также включает в себя функции из расширения [[mediawikiwiki:Extension:StringFunctions|StringFunctions]].
+
{{/Неизм}} | [[mediawikiwiki:Extension:RegexParserFunctions|RegexParserFunctions]] | 0.1 (2007-05-17) | 2011-04-07 | &nbsp; |Функция парсера <tt><nowiki>{{#regex: subject &#x7C; regexp &#x7C; replacement}}</nowiki></tt> для замены и поиска регулярных выражений.
+
{{/Неизм}} | [[mediawikiwiki:Extension:PreferencesExtension|PreferencesExtension]] | 1.16.2 | 2009-04-01 | &nbsp; |Расширение, используемое другими расширениями для добавления пользовательских настроек. Нужно в версиях MediaWiki < 1.16.
+
{{/Неизм}} | [[mediawikiwiki:Extension:Renameuser|Renameuser]] | trunk | 2010-10-05 | &nbsp; |Переименование пользователя с корректным обновлением ссылок на него в БД.
+
{{/Неизм}} | [[mediawikiwiki:Extension:Simple Forms|SimpleForms]] | 2009-09-29 (0.4.13) | 2010-10-26 | &nbsp; |Поддержка добавления на страницы формочек с целью простого создания новых страниц по шаблону.
+
{{/Неизм}} | [[mediawikiwiki:Extension:SyntaxHighlight_GeSHi|SyntaxHighlight_GeSHi]] | 1.16.2 | 2008-10-15 | &nbsp; |Поддержка подсветки синтаксиса в большинстве распространённых языков программирования с помощью [http://qbnz.com/highlighter/ GeSHi]. Используется тег '''<tt>&lt;source&gt;</tt>'''. И будет использоваться всегда, несмотря на то, что в новых версиях расширения его заменяют <tt>&lt;syntaxhighlight&gt;</tt> (маразм).
+
{{/Неизм}} | [[mediawikiwiki:Extension:UserMerge|UserMerge]] | trunk | 2010-10-05 | &nbsp; |Объединение и удаление учётных записей пользователей с корректным изменением ссылок в БД.
+
{{/Неизм}} | [[mediawikiwiki:Extension:WhoIsWatching|WhoIsWatching]] | 1.16.2 | 2010-10-05 | &nbsp; |Даёт ответ на вопрос «кто наблюдает за данной страницей?» со страницы [[Служебная:WhoIsWatching]].
+
{{/Неизм}} | [[mediawikiwiki:Extension:WikiCategoryTagCloud|WikiCategoryTagCloud]] | 1.16.2 | 2010-10-05 | &nbsp; |Вставка облаков тегов на страницы. Тегами считаются категории.
+
 
+
{{/Отлаж}} | [[mediawikiwiki:Extension:Cite|Cite]]      | 1.16.2        | 2010-10-05    | &nbsp;    |Поддержка сносок на вики-страницах (теги <tt>&lt;ref&gt;</tt> и <tt>&lt;references&gt;</tt>). Внесены изменения '''патчем'''.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:DeleteBatch|DeleteBatch]] | 1.16.2 | 2009-07-21 | 2011-06-15 | Удаление множества страниц разом, со спецстраницы [[Служебная:DeleteBatch]].
+
{{/Отлаж}} | [[mediawikiwiki:Extension:MediaFunctions|MediaFunctions]]  | trunk | 2009-10-24    | &nbsp;    |Поддержка функций для получения информации о загруженных файлах. Внесены изменения '''патчем''' для работы trunk’овой версии в 1.14.1.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:PdfHandler|PdfHandler]]  | trunk | 2009-10-25    | &nbsp;    |Медиаобработчик для PDF-файлов. То есть, поддержка загрузки PDF’ок, их постраничного просмотра и вставки страниц PDF как изображений. Иногда может создавать проблемы, ибо ghostscript обрабатывает некоторые PDF’ки с очень большим трудом, потреблением дискового пространства на <tt>/tmp</tt> и процессорного времени. Внесены изменения '''патчем'''.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:Multi-Category_Search|MultiCategorySearch]]        | 1.41        | 2010-10-14    | 2010-10-14    |Спецстраница [[Служебная:MultiCategorySearch]] для поиска страниц, включённых в несколько категорий сразу.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:Drafts|Drafts]]  | 2009-04-17        | 2009-06-15    | 2011-03-03    |Поддержка сохранения черновиков в процессе редактирования страниц, плюс авто-сохранение каждую минуту, чтобы не потерять свои труды, если браузер вдруг накроется.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:CategoryTree|CategoryTree]]      | 1.16.2        | 2008-10-15    | &nbsp;    |AJAX-раскрываемые деревья категорий на [[Служебная:CategoryTree|спецстранице]] и страницах самих категорий. Внесены изменения '''патчами''' для поддержки альтернативной группировки страниц в категории и удаления плюсиков ([+]) у категорий, не содержащих подкатегорий, в деревьях.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:AnyWikiDraw|AnyWikiDraw]]        | {{/NotLast|2008-05-28 (0.11)}}        | 2008-10-15    | 2011-02-09    |Поддержка вставки рисованных с помощью Java-апплета картинок на вики-страницы. Увы, нетривиальна в эксплуатации, ибо апплет.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:OpenID|OpenID]]  | trunk | 2009-05-15    | 2010-12-08    |Поддержка входа в вики по офигически глючной, но самой распространённой технологии единого входа — [http://www.openid.net OpenID].
+
{{/Отлаж}} | [[mediawikiwiki:Extension:Interwiki|Interwiki]]    | trunk | 2008-10-15    | &nbsp;    |Междувиковые ссылки, включения, редактирование таблиц интервики. Внесены изменения '''патчем'''.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:reCAPTCHA|reCAPTCHA]]    | 2007-05-31    | 2009-12-21    | &nbsp;    |Реализация популярной [[rupedia:CAPTCHA|CAPTCHA]] («Публичного Полностью Автоматического Теста Тьюринга для Различения Компьютера и Человека»), короче говоря, антиспам для вики-систем, установленных в интернете. У нас, кстати, по умолчанию только что зарегистрированные пользователи не могут создавать новые страницы.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:Form|SpecialForm]]      | 2009-07-26    | 2009-11-06    | 2010-07-26    |Ещё одно расширение для создания страниц из форм по шаблонам. Вероятно, от него вскоре полностью откажемся в пользу SimpleForms.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:SVNIntegration|SVNIntegration]]  | 2009-02-17    | 2009-06-18    | 2011-02-11    |Не используется и является хорошей «дырой» в subversion, но позволяет вставлять на страницы файлы из Subversion или информацию о них.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:PlantUML|PlantUML]]      | 2010-02-13    | 2010-08-03    | 2010-06-25    |Рисование UML-диаграмм с помощью [http://plantuml.sourceforge.net/ PlantUML].
+
{{/Отлаж}} | [[mediawikiwiki:Extension:Workflow|Workflow]]      | 2009-07-09    | 2009-07-03    | 2009-07-06    |Небольшое расширения для вставки «переключаемых» состояний страниц (можно назвать «информерами»), реализованных через категории.
+
{{/Отлаж}} | [[mediawikiwiki:Extension:SVGEdit|SVGEdit]]        | {{/NotLast|<html><a class="external text" style="color: white" href="http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/SVGEdit/?pathrev=81655">svn81655</a></html>}}SVGEdit&nbsp;2.5.1 | 2010-11-25 | 2011-03-09 |Поддержка браузерного JavaScript-редактора [http://code.google.com/p/svg-edit/ SVG-Edit] для редактирования SVG’шек в MediaWiki. Ошибка синхронизации при открытии, кстати, исправлена.
+
 
+
{{/Дораб}} | [[SimpleTable]]        | 2007-10-05 (1.2)        | 2009-03-23    | 2011-04-12    |Поддержка простого синтаксиса для вставки таблиц — тега <tt>&lt;tab></tt>. '''Важно:''' в отличие от обычного SimpleTable, наш сначала преобразует вики-разметку в HTML, а потом разбивает на строки и столбцы. По факту это значит, что, например, при использовании разделителя "&#x7C;" можно всё равно использовать вики-разметку, включающую в себя этот символ.
+
{{/Дораб}} | [[Calendar (MediaWiki)|Calendar]] | 2009-08-04 | 2010-05-26 | 2011-03-23 |Расширение-календарь событий для MediaWiki, на котором каждое событие, либо каждый день с событиями, хранится на вики-странице. Доработки - это в основном бронирование часов, AJAX-подсказки, RSS, русская локализация и много рефакторинга.
+
{{/Дораб}} | [[FlvHandler (MediaWiki)|FlvHandler]] | 2009-09-18 | 2009-09-09 | 2010-11-15 |Поддержка вставки Flash-видеоплееров на страницы с использованием обычного синтаксиса <tt><nowiki>[[File:Видео.mp4]]</nowiki></tt>. Поддерживаются видеокодеки FLV+MP3 или H.264+AAC в контейнерах FLV или MP4.
+
{{/Дораб}} | [[mediawikiwiki:Extension:MagicNumberedHeadings|MagicNumberedHeadings]] | 2007-09-06 | 2009-11-20 | 2009-12-18 |Магические слова <tt>&#x5F;_NUMBEREDHEADINGS__</tt> и <tt>&#x5F;_NONUMBEREDHEADINGS__</tt>, принудительно включающие/выключащие нумерацию заголовков на страницах вне зависимости от пользовательских настроек. В оригинальной версии есть только включающее слово.
+
{{/Дораб}} | [[mediawikiwiki:Extension:SphinxSearch|SphinxSearch]] | 2010-09-15 | 2008-10-15 | 2011-03-23 |Замена стандартного вики-поиска поиском на основе движка [http://sphinxsearch.com/ Sphinx]. Также см. инструкции по установке: [[Mediawiki4Intranet#Sphinx-поиск по вики|Sphinx-поиск по вики]].
+
{{/Дораб}} | [[mediawikiwiki:Extension:Wikilog|Wikilog]] | {{/Trunk|<html><a class="external text" style="color: black" href="http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/Wikilog/?pathrev=85532">svn85532</a></html>}} | 2009-09-08| 2011-04-07 |Блоги, форумы, иерархические комментарии, календарик записей на основе MediaWiki, импорт блогов из экспортных файлов [http://blogger.com blogger.com]. Заметка по поводу качества кода: авторы (в основном Juliano F. Ravasi), по-моему, перемудрили с объектной ориентированностью, всё это можно было написать раза в 2 компактнее.
+
 
+
{{/Созд}} | [[AllNsSuggest]] | &nbsp; | 2011-05-13 | 2011-05-13 | Расширение, включающее выбор страниц для подсказки в поле поиска по умолчанию из всех пространств имён (более удобный выбор).
+
{{/Созд}} | [[BatchEditor (MediaWiki)|BatchEditor]] | &nbsp; | 2008-10-14 | 2011-03-28 |Расширение для массового редактирования множества страниц с помощью замен строк или регулярных выражений.
+
{{/Созд}} | [[BugzillaBuglist (MediaWiki)|BugzillaBuglist]] | &nbsp; | 2010-11-12 | 2010-12-28 |Расширение для включения списков багов из [[Bugzilla]] из-под специально заданного пользователя (соответственно, со специально заданными правами). В виде обычных таблиц.
+
{{/Созд}} | [[CategoryTemplate (MediaWiki)|CategoryTemplate]] | &nbsp; | 2009-03-25 | 2010-11-18 |Расширение для быстрого создания страниц в категории по шаблону.
+
{{/Созд}} | [[CharInsertList (MediaWiki)|CharInsertList]] | &nbsp; | 2010-04-05 | 2011-01-14 |Расширение, похожее на [[mediawikiwiki:Extension:CharInsert|CharInsert]], полезное исключительно для использования с «EditTools», и позволяющее вставлять выпадающие списки для вставки шаблонов, аналогичных CharInsert’овским.
+
{{/Созд}} | [[CustisScripts]] | &nbsp; | 2008-10-14 | 2011-03-29 |«композитное» пока-что не разделённое расширение. Включает в себя: <tt>[[wikipedia:User:Cacycle/wikEd|WikEd]]</tt>, русскоязычный <tt>[[rupedia:Википедия:Викификатор|Викификатор]]</tt>, «автопредпросмотр» AKA Live Preview (показывает в отдельном окне браузера автоматически обновляемый в процессе редактирования предварительный просмотр страницы - "почти WYSIWYG"), плюс несколько изменений CSS стилей.
+
{{/Созд}} | [[DocExport]] | &nbsp; | 2008-10-14 | 2011-02-25 |
+
{{/Созд}} | [[EnotifDiff (MediaWiki)|EnotifDiff]] | &nbsp; | 2009-04-01 | 2011-02-28 |Отправка почты об изменениях наблюдаемых страниц в формате HTML, опциональное включение в них diff’ов (текстов различий), отправка писем о подтверждении e-mail адресов в формате HTML.
+
{{/Созд}} | [[GlobalAuth (MediaWiki)|GlobalAuth]] | &nbsp; | 2010-07-21 | 2011-02-11 |Поддержка [[Глобальная авторизация в веб-системах|самопального веб-протокола Single Sign-On]] в MediaWiki (как клиентской, так и серверной стороны).
+
{{/Созд}} | [[HttpAuth (MediaWiki)|HttpAuth]] | &nbsp; | 2010-09-03 | 2010-09-03 |Поддержка входа в Wiki с использованием HTTP Basic авторизации. Полезно, например, для доступа к RSS/Atom лентам в закрытых с помощью HaloACL вики-системах из читалок.
+
{{/Созд}} | [[IntraACL]] | &nbsp; | 2011-02-25 | 2011-03-22 |Лучшее (из двух работающих) расширение MediaWiki, реализующее права доступа к страницам. За основу взято [[mediawikiwiki:Extension:Halo Access Control List|HaloACL]], но практически полностью переписано. См. подробнее [[IntraACL]]. 100%-ной гарантии соблюдения прав в MediaWiki всё равно никогда нет, потому что она не создавалась в расчёте на это, и большинство расширений лазают в базу как попало и, соответственно, могут вытащить оттуда любую информацию. Однако в пределах сборки [[Mediawiki4Intranet]] IntraACL работает.
+
{{/Созд}} | [[ListFeed (MediaWiki)|ListFeed]] | &nbsp; | 2009-07-30 | 2010-11-09 |Генерация RSS-лент из вики-списков (* или #).
+
{{/Созд}} | [[MarkupBabel (MediaWiki)|MarkupBabel]] | &nbsp; | 2008-10-14 | 2010-12-15 |Ещё одно «композитное» расширение, включающее поддержку [[lib:TeX|LaTeX]]-формул, [[Graphviz]]-графов, [[Gnuplot]]-графиков, процентных диаграмм, UML-схем через [http://www.umlgraph.org/ UMLGraph].
+
{{/Созд}} | [[MediawikiQuizzer]] | &nbsp; | 2008-10-14 | 2011-03-18 | Система тестирования знаний на основе MediaWiki, с простым порождением тестов страницами в отдельном пространстве имён.
+
{{/Созд}} | [[MergeConflicts]] | &nbsp; | 2011-05-16 | 2011-05-16 | Расширение, включающее улучшенные слияния и показ конфликтов в 3 колонки.
+
 
+
{{/Созд}} | [[MMHandler (MediaWiki)|MMHandler]] | &nbsp; | 2009-11-02 | 2010-11-29 |Медиаобработчик для вставки Flash-плагина просмотра [[rupedia:Диаграмма связей|майндмапов]] («интеллектуальных карт» или «диаграмм связей») формата <tt>*.mm</tt> ([http://freemind.sourceforge.net/ FreeMind], [http://freeplane.sourceforge.net/ FreePlane]) с помощью обычного синтаксиса вставки изображений <tt><nowiki>[[File:Mindmap.mm]]</nowiki></tt>.
+
{{/Созд}} | [[Polls]] | &nbsp; | 2008-10-14 | 2011-03-23 |Простые опросы/голосования для MediaWiki.
+
{{/Созд}} | [[S5SlideShow]] | &nbsp; | 2010-02-09 | 2010-11-03 |Оно же ВикиПрезентации, оно же MWSlideology. Позволяет очень быстро порождать [http://meyerweb.com/eric/tools/s5/ S5]-презентации прямо из вики-страниц.
+
{{/Созд}} | [[TemplatedPageList]] | &nbsp; | 2009-11-09 | 2011-06-28 |Расширение для вывода списков вики-страниц. Наше, родное, отличается от всех остальных поддержкой вывода по шаблону.
+
{{/Созд}} | [[SiteExport]] | &nbsp; | 2009-07-20 | 2010-07-20 |Расширение, позволяющее установить хуки, складывающие преобразованные в HTML тексты статей в файлы и, возможно, преобразовывать их. Например, так можно порождать из MediaWiki простые сайты-визитки.
+
{{/Созд}} | [[SWFUpload]] | &nbsp; | 2009-12-16 | 2010-04-02 |Добавляет спецстраницу [[Служебная:SWFUpload]], позволяющую загрузить в вики сразу множество файлов с использованием флеш-апплета и стандартного диалога выбора файлов.
+
{{/Созд}} | [[UserMagic]] | &nbsp; | 2010-01-19 | 2010-08-20 |Добавляет несколько магических слов, выводящих информацию о текущем пользовате.
+
{{/Созд}} | [[UserMessage]] | &nbsp; | 2010-03-25 | 2011-02-01 |Даёт возможность пользователям настраивать для себя тексты некоторых сообщений локализации MediaWiki. Удобно, например, для [[MediaWiki:Edittools]], [[MediaWiki:Summary]], [[MediaWiki:Sidebar]]. Пример использования первых двух — вкупе с '''CharInsert''' и '''CharInsertList''' они дают возможность добавить часто используемые сложные вики-разметко-конструкции исключительно себе на форму редактирования.
+
{{/Созд}} | [[WikiBookmarks]] | &nbsp; | 2009-12-03 | 2011-03-03 |[[WikiBookmarks|ВикиЗакладки]] — простое расширение для поддержки онлайн-списка закладок в MediaWiki.
+
</tab>
+
 
+
Удалённые расширения:
+
<tab sep="bar" class="wikitable sortable" head="topleft">
+
Статус | Название | Версия | Включено | Удалено | Описание
+
{{/Неизм}} | [[mediawikiwiki:Extension:StringFunctions|StringFunctions]] | 1.16.2 | 2008-11-17 | 2011-04-07 |Строковые функции парсера типа <tt><nowiki>{{#sub:}}</nowiki></tt>. Расширение объединено с ParserFunctions, поэтому отдельно более не используется.
+
</tab>
+
  
 
= Установка =
 
= Установка =

Revision as of 23:31, 22 September 2011

MediaWiki — популярная «вики»-система, написанная на PHP и изначально создававшаяся в качестве «движка» Википедии. Отличается отличной расширяемостью — существует более 1700 расширений к ней.

Mediawiki4Intranet — сборка MediaWiki, содержащая в себе довольно большой набор расширений, полезных для внутрикорпоративной среды и, что очень важно, исправленных и «подруженных» между собой — большая часть ошибок, возникающих при интеграции, исправлена.

Об установке см. #Установка.

Содержимое

Сборка состоит из:

  • Кода оригинальной MediaWiki.
  • Установленных расширений.
  • Набора патчей.
  • Нескольких готовых конфигураций для простого создания LocalSettings.php.

Лицензия распространения большинства этого добра: GPLv2, как и у самой MediaWiki. /* Надеемся, что тивоизация нам всё-таки не грозит :) */

MediaWiki

Код MediaWiki берётся из SVN Wikimedia.

Версия Mediawiki4Intranet может отставать от стабильной, ибо различия между версиями MediaWiki не так уж и велики, а вот патчи менять приходится.

Версия MediaWiki, лежащая в основе сборки:

  • 2011-02-08 → текущая: 1.16.2.
  • 2010-10-09 → 2011-02-08: 1.14.1.
  • → 2010-10-09: 1.13.1 (в Google Code отсутствует).

Патчи

Mediawiki4Intranet/Патчи

Расширения

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

Установка

Если вы хотите попробовать MediaWiki4Intranet на своей локальной Windows-машине — скачайте Windows-сборку (примерно 200 МБ). Обновляется она достаточно редко (на данный момент версия 2011-08-02), но зато полностью Standalone и включает в себя все необходимые дополнительные программы. Подробнее: Windows-сборка Mediawiki4Intranet.

Чтобы установить MediaWiki4Intranet к себе на сайт, нужно:

  • Скачать код:
  • В директории для установки создать папку images, читаемую и записываемую веб-сервером.
  • Создать для вики MySQL базу данных и пользователя с полным доступом к ней.
  • Для начального наполнения БД (альтернативы):
    • Либо просто накатить дамп maintenance/tables.sql:
      • Сначала создать минимальный конфиг MediaWiki4Intranet (LocalSettings.php)
      • Выполнить команду php maintenance/patchSql.php maintenance/tables.sql из директории установки вики.
    • Либо запустить вики-установщик из папки config — плюс в том, что он ещё проводит дополнительные проверки версии PHP, расширений и т. п.:
      • Зайти на http://server/wiki/config/, ответить на вопросы, исправить недоразумения (если таковые возникнут), выбрать базу MySQL, InnoDB, 4.1/5.0 utf8 binary. Установщик создаст пустую БД и конфиг.
      • Удалить конфиг, сгенерированный установщиком — в нём куча опций, которые все уже прописаны в правильные значения в конфигах MediaWiki4Intranet.
      • Потом создать минимальный конфиг MediaWiki4Intranet (LocalSettings.php)
  • Запустить php maintenance/update.php из директории установки вики.

Содержимое минимального конфига (LocalSettings.php):

<?php
require_once 'custisinstall/ServerSettings.php'; # это под UNIX, либо BaseSettings.php для винды
$wgDBname = 'wiki'; # имя БД
$wgDBuser = ''; # логин и пароль с полным доступом к этой БД
$wgDBpassword = '';
$wgDBadminuser = $wgDBuser;
$wgDBadminpassword = $wgDBpassword;
$wgScriptPath = '/wiki';

Системные требования

Минимальные требования — на случай, если кто-то забыл про стандартный веб-стек:

  • PHP версии 5 или выше.
  • Веб-сервер. Проще всего использовать Apache, хотя теоретически должны поддерживаться и IIS, и nginx + php_fpm.
  • СУБД MySQL, желательно, версии 5 или выше.
  • Желательна UNIX-система.

Также нужны следующие расширения PHP:

  • php5-mysql обязательно! :-)
  • php5-gd для обработки картинок.
  • php5-curl для загрузки файлов по URL.

Опционально:

  • php5-xcache для ускорения работы MediaWiki.
  • php5-fss тоже для ускорения, см. подробнее #php5-fss.
  • Для отправки почты — PEAR-пакеты Mail и Net_SMTP, см. подробнее #Отправка E-mail.

Дополнительно могут понадобиться сторонние программы — их список внушительный, но под дистрибутивами Linux’а многое легко ставится менеджером пакетов, а для Windows мы вскоре выложим готовую сборку. Здесь представлен общий вид, подробнее — смотрите ниже.

Под Windows не работает следующий функционал MediaWiki4Intranet:

  • Отправка почты в формате HTML
  • По умолчанию отключён Sphinx-поиск
  • По умолчанию отключена поддержка PDF и Djvu
  • По умолчанию отключено слияние при конфликтах редактирования — чтобы включить, нужно установить Windows-версию утилиты diff3, и прописать в LocalSettings.php:
$wgDiff3 = 'путь к diff3';
  • php5-fss собирать скорее всего задолбаетесь, а готовой виндовой версии нет.

Теперь для тех, кто считает, что MySQL — не база данных: сама-то MediaWiki поддерживает и PostgreSQL, и Sqlite, и Oracle, но, во-первых, не все расширения тоже их поддерживают, а во-вторых, при использовании MediaWiki никакого смысла в этих СУБД нет, потому что MediaWiki не генерирует сложные запросы. То есть, вообще.

Отправка E-mail

По умолчанию она включается только под UNIX’ами, потому что под виндой sendmail’а обычно нет. Однако когда включается, нужно поменять две следующие переменные в LocalSettings.php, иначе почта из вики так и будет приходить от Стаса Фомина:

$wgEmergencyContact = 'admin@your.wiki'; # e-mail
$wgPasswordSender = $wgEmergencyContact;

Также, для отправки почты в формате HTML (а не plaintext) нужны PEAR-пакеты Mail и Net_SMTP:

  • pear install Mail; pear install Net_SMTP, либо
  • apt-get install php-mail php-net-smtp (Debian, Ubuntu).

Короткие URL

Под «короткими URL» в вики понимаются адреса статей без index.php/ и тем более без index.php?title=, например, такой URL — «короткий»: http://wiki.4intra.net/Mediawiki4Intranet. Настраиваются с помощью конфигурации в LocalSettings.php:

$wgUsePathInfo = true;
$wgArticlePath = '/$1';

И дополнительно — директив mod_rewrite:

RewriteCond %{THE_REQUEST} ^\S+\s*/*index.php/
RewriteRule ^index.php/(.*)$ /$1 [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?title=$1 [L,B,QSA]

Всё относительно очевидно, но есть пара нюансов:

  • В последней строчке обязательно использовать именно index.php?title=$1, а не index.php/$1, так как во втором случае при использовании [B] подстраницы (страницы с / в названии) становятся недоступны.
  • Флаг [B] в последней строчке важен. Ибо без [B] mod_rewrite при переписи URL разэкранирует и не экранирует обратно спецсимволы (все, кроме латинских букв и цифр), из-за чего статьи с названиями, содержащими процент (%), становятся недоступны, потому что % в URL-кодировке — спецсимвол, и обязательно должен быть заменён на %25.
  • Флаг [QSA] тоже нужен, ибо без него к ?title=$1 не дописываются остальные параметры URL.
  • Первые две строчки нужны, чтобы с адресов, содержащих в себе index.php/, перенаправить пользователя на «короткие» — это убирает дублирование страниц, которое не любят поисковики.

php5-xcache

Рекомендуется установить и настроить XCache для PHP5. Это весьма неплохо ускоряет работу MediaWiki.

php5-fss

Замечательное расширение для PHP, позволяющее ускорить важнейшую для медиавики операцию — замену набора подстрок на набор других подстрок — примерно в 500 раз. «FSS» значит «Fast String Search» на основе алгоритмов Бойера-Мура и Комменца-Вальтера. Посмотреть доклад (мой, ага — VitaliyFilippov 16:21, 30 марта 2011 (MSD)) про это расширение можно здесь: lib:PHP-разгон: серебряная пуля из автомата Комменца-Вальтера (Commentz-Walter).

Реально это ускоряет работу MediaWiki в разы, особенно на больших статьях с большим количеством разметки (например, включений шаблонов, функций парсера…).

На зеркалах дебиана его нет, однако можно собрать из исходников вот отсюда:

Из исходников собирать нужно потому, что пакетов под i386 там нет, только под amd64. Сборка описана для тех, у кого есть под рукой Debian/Ubuntu.

Нужно скачать файлы:

Если нет пакетов php5-dev, debhelper, то поставить:

sudo apt-get install php5-dev
sudo apt-get install debhelper

И далее сказать:

dpkg-source -x php5-fss_0.0.1-3.dsc
cd php5-fss-0.0.1
debian/rules binary
dpkg -i ../php5-fss_0.0.1-3_i386.deb

Либо можно добавить в /etc/apt/sources.list зеркало http://apt.wikimedia.org/wikimedia/ (обязательно с deb-src), и дальше apt-get update; apt-get source php5-fss и дальше всё то же самое.

Для версий PHP >= 5.3 в коде расширения(fss.c, строка 243) также следует изменить строчку

ZVAL_ADDREF(*value);

На строчку

Z_ADDREF_P(*value);

PDF, DJVU, LaTeX

Поддержка постраничного просмотра PDF и DJVU по умолчанию включается только под UNIX-ами. Если вы хотите включить её под Windows, есть большая вероятность, что вы считаете свой Windows почти UNIX’ом — тогда просто используйте ServerSettings.php вместо BaseSettings.php + добавьте

Всё это должно быть прописано в системные пути.

Debian: apt-get install texlive-base djvulibre-bin netpbm ghostscript xpdf-utils

Graphviz, GNUplot, UMLGraph, PlantUML, UMLEt

  • Graphviz желателен версии не меньше 2.27, так как в предыдущих есть различные мелкие баги.
  • GNUPlot.
  • UMLGraph.
  • UMLet.
  • PlantUML ставить необязательно, он есть в составе MediaWiki4Intranet.
  • UMLGraph, UMLet, PlantUML требуют наличия Java.

Всё это, опять-таки, должно быть в путях.

Поддержка MP4/FLV видео

Здесь требуется ffmpeg (для windows), прописанный в пути.

Sphinx-поиск по вики

Нужно установить и настроить Sphinx. Генератор готовых конфигураций есть в директории sphinxsearch: configure.sphinx.php.

Делаем так:

  • Создаём рядом с ним файл sphinx.wikis.php, в который прописываем что-то вроде:
$wikis = array('HOST' => array(
  array(
    'name' => 'wiki', // имя индекса - должны быть разные для сожительствующих в одном sphinx'е вик
    'user' => '', // имя пользователя БД
    'pass' => '', // пароль к БД
    'db'   => '', // имя БД
  ),
));
  • Вызываем php configure.sphinx.php --hostname HOST — под UNIX вместо HOST можно использовать имя из /etc/hostname, и тогда можно будет держать один конфиг на несколько серверов, и вызывать без опции --hostname.
  • Будет создан файл sphinx.conf, который нужно скормить Sphinx’у — под UNIX это обычно означает положить его в /etc/sphinxsearch/.
  • Добавить в /etc/crontab команды на переиндексацию, которые выведет конфигуратор.
  • Если конфигуратор предложить инициализировать какие-то индексы и выведет для этого команды — делайте, что говорит.

Далее ещё нужно прописать в LocalSettings.php (заменить «wiki» на то, что вы использовали в параметре name в sphinx.wikis.php):

$wgSphinxSearch_index = 'main_wiki, inc_wiki';

Внимание: конфиги, сгенерированные таким образом, скорее всего, непригодны для использования под виндами. Вообще, мы под виндами сфинкса не используем и гарантировать работу тоже не можем.

Антиспам для публичных Wiki

В публичных Wiki имеют свойство заводиться спамеры, потому что можно легко зарегистрироваться и создать статью.

Поэтому желательно включить расширение reCAPTCHA, распространяемое вместе с MediaWiki4Intranet, получить ключи для своего домена на http://recaptcha.net/api/getkey, и прописать это всё в LocalSettings.php:

require_once('extensions/recaptcha/ReCaptcha.php');
// Sign up for these at http://recaptcha.net/api/getkey
$recaptcha_public_key = '';
$recaptcha_private_key = '';

У спамеров есть ещё одно свойство — они регистрируются и сразу начинают создавать статьи. Поэтому, можно запретить создавать статьи после регистрации на какой-то период времени (в тяжёлых случаях можно, например, на 4 суток). Для этого нужно прописать следующие директивы в LocalSettings.php:

// Время, в течение которого запрещено создавать статьи (например, 4 суток * 86400 секунд в сутках)
$wgAutoConfirmAge = 86400 * 4;
 
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['delete'] = false;
$wgGroupPermissions['*']['undelete'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;
$wgGroupPermissions['user']['createpage'] = false;
$wgGroupPermissions['user']['createtalk'] = false;
$wgGroupPermissions['autoconfirmed']['createpage'] = true;
$wgGroupPermissions['autoconfirmed']['createtalk'] = true;
$wgGroupPermissions['sysop']['createpage'] = true;
$wgGroupPermissions['sysop']['createtalk'] = true;
$wgGroupPermissions['bureaucrat']['createpage'] = true;
$wgGroupPermissions['bureaucrat']['createtalk'] = true;

OpenID

В MediaWiki4Intranet есть поддержка OpenID, хотя и глючная, как и вообще любая реализация OpenID. Это не наша вина, и даже не вина авторов расширения OpenID — виноваты здесь авторы библиотеки OpenID для PHP.

Чтобы включить её, нужно прописать следующее в LocalSettings.php:

require_once("$IP/extensions/OpenID/OpenID.setup.php");

Также можно установить PEAR-пакет Auth_OpenID (apt-get install php-openid в Debian). Это необязательно — MediaWiki4Intranet уже включает копию этой библиотеки. Однако если у вас есть копия новее, чем у нас — ставьте… И удаляйте директорию extensions/OpenID/Auth.