Extension:BizzWiki

Purpose
Do you require better permission management out of your MediaWiki installation? Then read on.

Strictly speaking 'BizzWiki' isn't an extension but a collection of patches and extensions to a MediaWiki installation that brings better permission management functionality. One distinguishing factor of this project is its installation simplicity: just uncompress in the MediaWiki installation and add one 'require' line in the  file.

Features

 * Speed
 * Through Extension:StubManager, extensions are only loaded when required
 * Furthermore, 'namespace trigger' functionality speeds up the loading process
 * Hierarchical Namespace Level Permission functionality
 * 'Raw' permission
 * 'Viewsource' permission
 * 'Browse' permission
 * 'Search' permission
 * 'Readlog' permission
 * Enhancement of standard MediaWiki permissions to namespace awareness
 * Patrol
 * Delete
 * Move
 * Purge
 * Read, Edit, MinorEdit, Create, Createpage, Createtalk
 * Rollback
 * Upload, Reupload, Reupload-shared
 * Protect
 * File Manager functionality (see Extension:BizzWiki/File Manager)
 * Secure (require 'commitfile' and 'readfile' rights)
 * Ability to change (under revision control) file system files
 * Ability to update a BizzWiki through the standard MediaWiki page editing process
 * InterWikiLink Manager (see Extension:BizzWiki/InterWikiLink Manager)
 * Ability to edit the 'interwiki' table through a normal article page
 * Sidebar enhancement (see Extension:BizzWiki/SidebarEx)
 * Ability to define group contextual sidebars
 * Show Redirect Page Text (see Extension:BizzWiki/Show Redirect Page Text)
 * Ability to view additional text included in a redirect page
 * Special Pages Manager
 * Ability to add 'special pages' that reside in another namespace (see Extension:SpecialPagesManager)
 * Page resides in the database instead of a PHP file
 * Form processing can be handled through Extension:BizzWiki/Form Processor extension
 * Standard MediaWiki Special Pages for updating BizzWiki's special pages through the filesystem
 * Secure HTML (see Extension:SecureHTML)
 * Functionality which enables the usage of tags within protected pages
 * Secure Properties (see Extension:SecureProperties)
 * Functionality which enables the 'getting/setting' of properties on global objects within protected pages
 * Parser Caching (see Extension:ParserTools)
 * Functionality to disable 'parser caching' on a per-page basis
 * Automatic Page Language (see Extension:AutoLanguage)
 * Functionality to enable viewing pages based on the user's preferred language automatically
 * Defaults to language 'en'
 * Form Processing (see Extension:Form Processor)
 * Functionality to process posted forms using PHP code stored in protected page ( in other words, the form can be posted to a page stored in the database and the PHP code stored in the page will be fetched & executed)
 * Page Level functionality (see Extension:PageFunctions)
 * Parser cache friendly
 * Page existence check
 * Page title change
 * Page sub-title change
 * Conditional Show Section based on user group membership
 * Email Logging (see Extension:EmailLog)
 * User Settings Changes Logging (see Extension:UserSettingsChangedLogging)
 * Integration of ReCaptcha extension
 * Page Level Restrictions (coming in 1_10_8)
 * Defines a new page level restriction 'read'
 * Defines 'raw' and 'viewsource' rights available to users with the 'protect' right
 * Page watch/unwatch logging (see Extension:WatchLog) (coming in 1_10_8)
 * Watch/Unwatch rights (see Extension:WatchRight) (coming in 1_10_8)

Easy Forms
The platform allows for easy creation of html forms through the following functionality: Note that these extensions are not bolted to BizzWiki and can be used independently. Visit each extension's main page on this wiki for more details.
 * First off, SecureHTML extension enables the secure management of unrestricted html code to be included in pages
 * The use of standard parser functionality (i.e. magic words, functions) is of course still available (see m:Help:Magic words)
 * Pages with both 'static' and 'dynamic' content can be accommodated whilst preserving parser caching through the use of ParserPhase2 extension
 * Furthermore, the form page can be enhanced through Secure Properties extension for accessing any arbitrary global variables
 * Finally, the posted forms can be processed through Form Processor extension

Example
Here is an example of a form (just the presentation layer) that can be achieved using BizzWiki: USE WITH CAUTION

This special page is used to 'nuke' an entire namespace.

Are you really sure about this operation?   (($#foreachx|bwFormHelper|getRealNamespacesNames| $value$ |0|edit$)) Confirmation   

(($#cshow|sysop|

Sysop Links
Proc $))

As one can see, the 'html' tags can be used as well as the 'parser magic words' without any restriction. The use of the extension ParserPhase2 enables the addition of dynamic content (such as a value retrieved from a global MediaWiki object ) (requires Secure Properties extension).

Some more examples

 * Yahoo 'yui' Controls

BizzWiki Page Flow
The following diagram summarizes BizzWiki's page flow.



Cases (view action)

 * Case 1: No parser level caching, no parser phase 2 processing
 * P1 -> P4 -> [P9 - P10 ] P6 -> P11
 * Case 2: Parser level caching, no parser phase 2 processing
 * P1 -> P5 -> P11
 * Case 3: Parser level caching, parser phase 2 processing
 * P1 -> P5 -> P7 -> P8 -> [ P9 - P10 ] -> P11

Installation
See  in SVN under   ( docs). In short,
 * Install MediaWiki (v1.10 for now but with follow on to >1.10 planned)
 * Once the installation is up and running, uncompress the BizzWiki archive in the root of the MediaWiki installation
 * Add  to the end of
 * Apply any required customization to  file
 * Make sure that the root/includes directory is writable since BizzWiki replaces some of the standard MW files
 * Futhermore, check the permissions associated with the BizzWiki installation: they must be the same as for the base MediaWiki install
 * Please use the talk page or contact me through email using user:jldupont for help.

First Use Caution
I get a lot of emails asking me what is going on when the platform is first installed and the message 'Permission error' turns up: remember that the platform is all about 'finer grained rights management' and the default settings are set to be much more restrictive than the default MediaWiki ones. Use your 'sysop' account to customize your installation.

Download
From Google Project Hosting
 * REL1_10_1
 * REL1_10_2
 * REL1_10_3 archive
 * REL1_10_4 archive
 * REL1_10_5 archive
 * REL1_10_6 archive
 * REL1_10_7 archive
 * REL1_10_8 archive
 * REL1_10_9 archive (do not use)
 * REL1_10_10 archive

Roadmap

 * Availability features such as Replication Simple Replicator (under development)
 * 'SuperGroups' functionality: the ability to 'partition' a MediaWiki installation amongst private user groups SuperGroups(to come)
 * Central management of User table