Wikilog/ru
Wikilog — расширение MediaWiki.
- Назначение: Сильно улучшенная система блогов/форумов для MediaWiki с иерархическими комментариями и другими возможностями.
- Репозиторий: https://github.com/mediawiki4intranet/Wikilog
- Домашняя страница: Wikilog на mediawiki.org
- Версия MediaWiki: гарантирована совместимость с 1.18-mw4i, 1.19-1.21, возможна с другими
- Лицензия: GPLv2.0+
- Дата создания: 2008-09-12
- Последняя версия: 2013-10-10
- Оценка расширения: Очень полезное (5)
Включение в сборку Mediawiki4Intranet:
- Дата включения: 2009-07-08
- Включённая версия: последняя
- Состояние доработок: Значительно доработано в сборке MediaWiki4Intranet
Данная версия Wikilog очень сильно доработана нами (проектом Mediawiki4Intranet).
Использование
С чего начать?
- Установите расширение и настройте пространство имён (см. ниже)
- Создайте блог: например, откройте статью Blog:My_blog и напишите туда что-нибудь — это будет заголовок вашего блога.
- Напишите пост:
- Кликните вкладку «Викилог» наверху.
- Введите название поста и нажмите «Создать».
- Введите текст, отметьте флажок «Опубликовать» и сохраните статью.
- Оставьте комментарий:
- Откройте страницу блога Blog:My_blog
- Нажмите «0 комментариев»
- Введите текст комментария и нажмите «Отправить».
Более продвинутые фичи:
- Добавьте ссылку на <ваша_вики>/Special:Wikilog?view=archives&show=published&sort=wlp_talk_updated&desc=1 в MediaWiki:Sidebar с заголовком «WikiForum» — это будет ссылка на «форумный» вид. Либо на Special:Wikilog можете просто выбрать вид: «Архивы» и отсортировать по дате обновления обсуждения.
- Откройте Special:Wikilog и увидите все записи блогов вперемешку. На них можно подписаться по RSS/Atom, и также на все блоги можно подписаться в настройках. На отдельные блоги можно подписаться, просто нажав «Следить» вверху страницы блога.
- Примените какие-нибудь фильтры на Special:Wikilog (по автору, дате, викилогу, категории…)
- Посмотрите все комментарии ко всем блогам на Special:WikilogComments. На них тоже можно подписаться по RSS/Atom, либо по почте через настройки.
- Откройте главную страницу блога, нажмите вкладку «Обсуждение», и увидите все комментарии к этому блогу. На них тоже можно подписаться через RSS/Atom, либо по почте, см. ссылку «Сейчас вы подписываетесь отдельно на комментарии к каждой записи данного викилога. Включить подписку на все комментарии по умолчанию».
- Включите комментарии на обычных страницах ($wgWikilogCommentNamespaces = true;). Вы будете получать email оповещения, если следите за страницей через обычный список наблюдения.
Наши доработки
Доработок много и достаточно крупных:
- «Форумный» вид — сортировка по дате последнего комментария и отслеживание количества непрочитанных комментариев
- (!) Поддержка Wikilog-style иерархических обсуждений для обычных страниц
- Email-оповещения о комментариях
- Email-оповещения о новых записях для следящих (через watchlist) за корневой страницей блога
- RSS/Atom-ленты комментариев
- Подписка/отписка на все комментарии к одному или даже ко всем блогам сразу (последнее на основе пользовательской настройки)
- Форма создания новой записи на спецстранице Wikilog (в агрегаторе)
- Календарь постов для MediaWiki:Sidebar'а
- Автоматическое «схлопывание» дискуссий из древовидного вида в линейный, если ответы не ветвятся — предотвращает слишком глубокую вложенность без потерь иерархичности
- Улучшенная бинарная кодировка материализованных путей к комментариям, позволяющая хранить до 250 уровней вложенности комментариев без нарушения сортировки
- Постраничная навигация, сохраняющая ветви дискуссий (ветвь никогда не разбивается на две посередине, как это было в старом Wikilog’е)
- Различные исправления мелких багов
По пути доработок, очевидно, локализацию никто не дополнял, поэтому полная поддержка есть только для английского и русского языков.
TODO
- Постараться либо структурировать и отправить доработки в upstream, либо принять апстрим на себя — автор дальнейшую разработку прекратил.
- Есть подозрение, что отправлять доработки через Gerrit бесполезно, так как процесс ревью занимает нереально долгое время.
- Оптимизировать по скорости работу страниц с комментариями.
- Возможно, что вместо оптимизации Wikilog’овские комментарии будут выпилены и заменены расширением TreeTalk, которое будет хранить комментарии не на отдельных страницах каждый, а все на одной странице, и отображать их за один проход, что однозначно приведёт к сильному ускорению работы.
- Проверить совместимость с IntraACL — то есть проверить, что права на отдельные блоги/посты/комменты ничего не ломают.
Установка
Требует обновления БД. Сначала добавьте следующие строки в свой LocalSettings.php:
# Минимальная конфигурация # 100 должен быть первым свободным номером пространства имён в вашей Wiki require_once "$IP/extensions/Wikilog/Wikilog.php"; Wikilog::setupBlogNamespace(100); # You can enable search in Wikilog namespace by default $wgNamespacesToBeSearchedDefault[NS_BLOG] = 1; # Далее вы можете переопределить часть настроек из WikilogDefaultSettings.php # Здесь перечислены не все, но остальные вам могут и не пригодиться. # Default number of articles to list in the wikilog front page and in $wgWikilogNumArticles = 20; # Default number of comments to list in wikilog comment pages. $wgWikilogNumComments = 50; # This should be >= either of previous two settings $wgWikilogExpensiveLimit = 100; # Publish new articles by default. $wgWikilogSignAndPublishDefault = false; # Set to array(NS_TALK => true, NS_<something>_TALK => true) # to enable threaded Wikilog-style comments in these namespaces. # # Set to boolean 'true' to enable such comments in ALL Talk namespaces. $wgWikilogCommentNamespaces = array(); # Date format to use for entries and comments # Should be set to one of MW date format options, for example 'ymd hms' # (see $datePreferences in languages/messages/Messages??.php) $wgWikilogPagerDateFormat = 'ymd hms'; # Default value for "not in category" field # You can set for example to some "Hidden" category so your users # can "soft-hide" some of their entries in the aggregated view $wgWikilogDefaultNotCategory = false; # Show existing comments on each item page just below the post content # Turn off with 'false' $wgWikilogCommentsOnItemPage = true;
После чего запустите php maintenance/update.php, чтобы применить обновления БД.
Требования
- MediaWiki 1.19-1.21 или новее, либо Mediawiki4Intranet 1.18.
- MySQL база данных.
Обновление
Всегда запускайте php maintenance/update.php при обновлении Wikilog’а. Это не всегда надо, но никогда не повредит :)
Если вы обновляетесь со старой версии Wikilog’а (нашей или не нашей) и у вас уже есть комментарии — также запустите:
php maintenance/patchSql.php extensions/Wikilog/archives/fill-wikilog-comment-meta.sql
Это нужно сделать только 1 раз.