Difference between revisions of "XmlWiki"

From Organic Design wiki
Line 14: Line 14:
 
'''The general model of the xmlWiki layer are as follows:'''
 
'''The general model of the xmlWiki layer are as follows:'''
  
'''INIT'''
+
'''INIT''' (called after main-misc-setup)
 
*get wiki/request env
 
*get wiki/request env
 
*get article
 
*get article
 
*permissions
 
*permissions
'''INPUT'''
+
'''INPUT''' (called before processing $action)
 
*if valid xml posted, update article-dom
 
*if valid xml posted, update article-dom
 
*put into POST as text for MediaWiki
 
*put into POST as text for MediaWiki
'''OUTPUT'''
+
'''OUTPUT''' (called instead of $wgOut->output)
 
*trap MediaWiki output
 
*trap MediaWiki output
 
*extract content and links
 
*extract content and links
Line 30: Line 30:
 
*render wiki content if special
 
*render wiki content if special
 
*publish article if saving
 
*publish article if saving
'''FUNCTION'''
+
'''FUNCTION''' (common functions)
 
*get article as dom
 
*get article as dom
 
*etxract hrefs from text
 
*etxract hrefs from text
 
*message
 
*message
'''ADMIN'''
+
'''ADMIN''' (executed when xmlwiki.php requested directly)
 
*enable patch
 
*enable patch
 
*disable patch
 
*disable patch

Revision as of 10:57, 26 May 2005

xmlWiki is an object-oriented Wiki

Xmlwiki.jpg

xmlWiki is a hack not done the proper way: it 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 general model of the xmlWiki layer are 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
  • render transform article if view/preview
  • render description-textarea if editing
  • render xml-textarea(xw.xml) if $action=xwXML
  • render wiki content if special
  • publish article if saving

FUNCTION (common functions)

  • get article as dom
  • etxract hrefs from text
  • message

ADMIN (executed when xmlwiki.php requested directly)

  • enable patch
  • disable patch


Implimenting the Hack

Use the xmlwiki.php script to enable or disable the xml parsing of MediaWiki content.