Wikilog

From Wiki4Intranet
Jump to: navigation, search

Wikilog is a MediaWiki extension.

  • Main purpose: Heavily improved blog and forum system for MediaWiki with hierarchical comments and other features.
  • Repository: https://github.com/mediawiki4intranet/Wikilog
  • Homepage: Wikilog on mediawiki.org 
  • Compatible MediaWiki versions: guaranteed 1.18-mw4i, 1.19-1.21, maybe others
  • License: GPLv2.0+ 
  • Created: 2008-09-12 
  • Last version: 2013-10-10 
  • Our rating: Definitely useful (5)

Status for Mediawiki4Intranet distribution:

  • Inclusion date: 2009-07-08
  • Included version: newest available
  • Improvement status: Forked in MediaWiki4Intranet with major improvements

Wikilog is a MediaWiki extension that enhances the wiki software with some common blogging features, making it a wiki-blog-forum hybrid.

This is a version heavily modified by Mediawiki4Intranet project. Version control access and issue tracking are available on github:

Information about previous versions can be found on:

Usage

Quickstart:

  • Install the extension and configure the Blog namespace (see below).
  • Create a blog: for example, go to Blog:My_blog article and put any content on it. This will be your blog header.
  • Create a post:
    • Click «Wikilog» tab in the top.
    • Enter the post title and click «Create» button.
    • Enter the post content, mark «Publish» checkbox and save the article.
  • Comment on a post:
    • Go to Blog:My_blog
    • Click «0 comments»
    • Enter comment text in the editbox and click «Post comment»

Advanced tips:

  • Add link to <your_wiki>/Special:Wikilog?view=archives&show=published&sort=wlp_talk_updated&desc=1 in your MediaWiki:Sidebar with «WikiForum» title to get a forum view. Or you can just select «Archives» and sort by «Talk updated» column.
  • Go to Special:Wikilog to view all blog posts interleaved. You can subscribe to them via RSS/Atom, and you can subscribe to them by email in Preferences.
  • Apply some filters on Special:Wikilog (author, date, wikilog, category…)
  • Go to Special:WikilogComments to view all comments. You can subscribe to all comments via RSS/Atom. You can also subscribe to them by email in Preferences.
  • Go to the main page of a blog, click «Discussion» tab — you’ll see all comments to that blog and also subscribe to them via RSS/Atom.
  • Enable Wikilog-style comments on normal pages ($wgWikilogCommentNamespaces = true;). You'll receive email notifications if that page is on your watchlist.

Our improvements

Our Wikilog version is heavily improved; there is a lot of new big features:

  • «Forum» view — i.e. sorting of entries by the date of last comment in «archives» mode, and unread comment count tracking
    Add link to <your_wiki>/Special:Wikilog?view=archives&show=published&sort=wlp_talk_updated&desc=1 in your MediaWiki:Sidebar with «WikiForum» title to get a forum view.
  • (!) Wikilog-style hierarchical talk support for normal pages, not just for the blogs.
  • Comment email notifications
  • New blog entry email notifications for main blog page watchers
  • RSS/Atom comment feeds
  • Subscribing/unsubscribing to all comments in a blog, or even in all blogs in a wiki (the last is a user preference)
  • New post creation form on Special:Wikilog (in the «blog agregator»)
  • Drop-down lists for wikilog/author/category fields on Special:Wikilog
  • Post calendar for MediaWiki:Sidebar
    Add «* wikilogcalendar» to MediaWiki:Sidebar to enable it
  • Automatic folding of non-branching comments to the linear view — this prevents too many nesting levels without any loss of hierarchy
  • Improved binary encoding of materialized paths to comments, allowing to store up to 250 nesting levels, versus 36 in old Wikilog
  • Pagination which never breaks discussion threads
  • Experimental support for importing dumps from blogger.com
  • Various bug fixes

The localisation was of course broken in the meantime — there is full support only for English and Russian :)

TODO

  • Try to structurize improvements and send them to upstream, or just become the real upstream, because the original author has stopped the development.
    I suppose it would be very hard to push changes via Gerrit because the review process takes incredibly long times.
  • Optimize comment pages performance
    Maybe it would be good to remove comments from Wikilog at all, and implement them as a separate TreeTalk extension storing all comments on a single page instead of separate pages for all comments — it would work much faster. But maybe it’s not needed.
  • Check IntraACL compatibility — i.e. check that rights for individual pages/comments/blogs don’t break anything.

Installation

Requires DB update. First add the following into your LocalSettings.php:

# Minimal configuration
# 100 must be the first unused in your wiki namespace number
require_once "$IP/extensions/Wikilog/Wikilog.php";
Wikilog::setupBlogNamespace(100);
 
# You can enable search in Wikilog namespace by default
$wgNamespacesToBeSearchedDefault[NS_BLOG] = 1;
 
# Then you can override some settings from WikilogDefaultSettings.php
# Not all of them are listed here, just the basic ones

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

And then run php maintenance/update.php to apply DB changes.

Requirements

  • MediaWiki 1.19-1.21 or higher, or Mediawiki4Intranet 1.18.
  • A MySQL database backend.

Upgrading

Always run php maintenance/update.php when you're updating Wikilog. Some of the updates may not need it, but an extra run will never harm :)

If you are upgrading from one of previous versions of Wikilog, you should also run

 php maintenance/patchSql.php extensions/Wikilog/archives/fill-wikilog-comment-meta.sql

in your Wiki document root. This command should be only run once.