XmlWiki
From Organic Design wiki
File:Xmlwiki wht.jpg Old logo: File:Xmlwiki old.jpg
A Wiki of Objects
xmlWiki is a modification of the index.php page offering new features which are all maintained from editing normal wiki articles.
- All articles are objects stored in XML
- An additional xml page allows editing the data aspect of an article as a tree.
- A permissions structure offering basic read/write control over articles with users and groups.
- PHP Functions can be created and maintained by developers and can be dynamically applied to articles before rendering.
- Articles can made to automatically publish remotely over HTTP or FTP when edits are saved.
The structure of xmlWiki
The xmlWiki layer is composed of a single PHP script called xmlwiki.php which, when called directly hooks or unhooks itself from three places in the MediaWiki index.php script.
The eneral structure of the xmlwiki.php script is as follows:
INIT (called after main-misc-setup)
- get wiki/request env
- get article
- permissions
INPUT (called before processing $action)
- if valid xml posted, update article-dom
- put into POST as text for MediaWiki
OUTPUT (called instead of $wgOut->output)
- trap MediaWiki output
- extract content and links
- add xml link (action=xwXML)
- render transformed article if view/preview
- render description-textarea if editing
- render xml-textarea(xw.xml) if $action=xwXML
- render wiki content if special
- publish transformed article if saving
FUNCTION (common functions)
- get article as dom
- extract hrefs from text
- message
ADMIN (executed when xmlwiki.php requested directly)
- enable patch
- disable patch