Difference between revisions of "XmlWiki"

From Organic Design wiki
Line 19: Line 19:
  
 
Current script [[xmlwiki.php|here]], templates and transforms [[Templates & Transforms|here]].
 
Current script [[xmlwiki.php|here]], templates and transforms [[Templates & Transforms|here]].
<php>
+
 
# INIT
+
 
# - do admin and exit if running directly
+
'''INIT'''
# - include geshi
+
*do admin and exit if running directly
# - get wiki & request environment
+
*include geshi
# - get article (as an object if possible)
+
*get wiki & request environment
# - get user-info
+
*get article (as an object if possible)
# - get object-specific info (perms, doc-root, doc-type)
+
*get user-info
# - build env (if action=raw, env is empty)
+
*get object-specific info (perms, doc-root, doc-type)
# INPUT
+
*build env (if action=raw, env is empty)
# - deny access if !writable
+
 
# - currently not doing anything else
+
 
# OUTPUT
+
'''INPUT'''
# - trap MediaWiki output
+
*deny access if !writable
# - extract links (not used yet)
+
*currently not doing anything else
# - apply security
+
 
# - transform for raw, view, preview
+
 
# - if saving, do publishing
+
'''OUTPUT'''
# - render output & messages
+
*trap MediaWiki output
# ARTICLE FUNCTIONS
+
*extract links (not used yet)
# - get article content
+
*apply security
# - get article type
+
*transform for raw, view, preview
# - domificate article
+
*if saving, do publishing
# - transform article
+
*render output & messages
# TRANSFORMS (Temp - will be separare articles)
+
 
# - document transforms
+
 
# - image transforms
+
'''ARTICLE FUNCTIONS'''
# - layout transforms
+
*get article content
# - database table transforms
+
*get article type
# - transform object to php-nav-tree
+
*domificate article
# - geshi syntax highlighting
+
*transform article
# FUNCTIONS
+
 
# - etxract hrefs from text
+
 
# - message/log
+
'''TRANSFORMS''' (Temp - will be separare articles)
</php>
+
*document transforms
 +
*image transforms
 +
*layout transforms
 +
*database table transforms
 +
*transform object to php-nav-tree
 +
*geshi syntax highlighting
 +
 
 +
 
 +
'''FUNCTIONS'''
 +
*etxract hrefs from text
 +
*message/log

Revision as of 04:16, 9 June 2005

File:Xmlwiki old.jpg        Old logo: File:Xmlwiki wht.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.

  • Objects can be objects stored in XML
  • 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.

If the browser is fully XML-capable, then requested articles can be returned as XML for the client to transform with an XSLT and render. If not, xmlWiki can transform the document before returning it to the client.

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:

Current script here, templates and transforms here.


INIT

  • do admin and exit if running directly
  • include geshi
  • get wiki & request environment
  • get article (as an object if possible)
  • get user-info
  • get object-specific info (perms, doc-root, doc-type)
  • build env (if action=raw, env is empty)


INPUT

  • deny access if !writable
  • currently not doing anything else


OUTPUT

  • trap MediaWiki output
  • extract links (not used yet)
  • apply security
  • transform for raw, view, preview
  • if saving, do publishing
  • render output & messages


ARTICLE FUNCTIONS

  • get article content
  • get article type
  • domificate article
  • transform article


TRANSFORMS (Temp - will be separare articles)

  • document transforms
  • image transforms
  • layout transforms
  • database table transforms
  • transform object to php-nav-tree
  • geshi syntax highlighting


FUNCTIONS

  • etxract hrefs from text
  • message/log