Extension:FlowProcessor

Purpose
Provides a framework for an MVC (Model, View, Controller) flow system; flows are implemented separately.

Features

 * Secure: for code located in the database, the containing page must be edit protected (i.e. accessible normally only by users of the sysop group)
 * Flexible: the whole MediaWiki framework is accessible
 * Extensible

Theory Of Operation

 * A user accesses a flow based special page through Special:Flow$flow where $flow$ is the identifier of the flow
 * The controller for flow $flow can be located in the following (in priority order):
 * PEAR directory under the file path MediaWiki/Flows/$flow/controller.php
 * MediaWiki database under the page title Flow:$flow (see note below)
 * Pages under the Flow namespace must be edit protected

Controller Code
The controller code, whether located in a file or in the MediaWiki database uses the same format. The code section can optionally be enclosed in source tag for syntax highlighting with an extension such as Extension:Geshi. A skeleton controller code is found next:

Dependencies

 * An extra namespace named Flow can optionally be declared in order to edit the controller code for flows
 * StubManager extension version >= 1.2.0
 * Extension:Geshi is optional; it is used to syntax highlight PHP code in controller pages when these are located in database as standard MediaWiki pages.

Further Installation Notes

 * The namespace Flow should, if used, be accessed controlled as it can allow a user to edit and execute arbitrary PHP code.