Wikilog/ru

From Wiki4Intranet
< Wikilog
Revision as of 17:56, 10 October 2013 by VitaliyFilippov (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 раз.