The engine
The XW3 website
engine was an open-source-project from 2004-2005. We have now stopped this
project, but the idea is still alive. You can read parts of the original
documentation here.
Original Documentation
The XW3 website engine is a pure website engine (no content management system) written in PHP and is based on XML content. No SQL Database required. Our goal is to build a framework which implements the Model-View-Controller (MVC) design pattern. The layout and design of the standard-template is 100% clean XHTML and CSS, although the XW3 website engine supports all kinds of text-based output formats (HTML, WML, XML, etc.).
Motivation
The main goal when programming the XW3 engine was to create a website engine that builds a complete website fully automatical out of any content that is present. The claim was to seperate the content 100% from the design, and both of them from the code. Important were the interfaces from the code to the content and from the code to the design.
Features
- PHP 4 compatible.
- Smarty based templates. 100% Supported! (Cascading Style Sheets, XHTML, HTML, WML or whatever).
- Clean and persistent URL's because of URL rewriting.
- 100% valid XHTML based template (included).
- XML based content.
- Optional Caching for extra speed (0.02 seconds render time).
- Sitemap plugin with advanced features.
- Multiple themes on one website (optional).
- Selectable content templates (set in the content XML file)
- Sends correct HTTP header (e.g. application/xhtml+xml, text/plain) for content depending on each theme.
- Multiple CSS styles on one website (optional).
- Content-Internationalisation (optional).
- Manage your content with "Drag and drop". The filebrowser is your CMS.
- Dynamic generated content (menus, articlelists, linklists etc.).
- Modular (simple plugin programming interface).
- Secure (no Admin area, no login).
- Easy content sharing. You could give a xml file or content tree to a friend using the XW3 website engine and she/he only needs to upload the file to the content directory - thats it!
- No SQL database needed.
- Invented a BBCode-like code called XW3code with :Wikipedia implementation for formatting the content.
Documentation for authors
As author, You'll find it very easy to write content for the XW3 website engine, because You really only have to write content, and don't have to bother with design issues or HTML-code. The author has also full freedom to change navigation text, choose between different content templates, specify author and date for a specific document, and, besides, control the complete navigation structure of a XW3 website. This can easily be done by using a file browser - drag and drop Your content. :)
Content creation
To add a content page, simply create an xml file similar to the one used for this page, and place it in the lang/en/content/ dir (for example). You can create subcontent by creating a folder in the content-dir and place any number of xml files there. In every subcontent dir a index-xml file is required. These can for example be used for the sitemap-plugin. Plugins can be loaded by adding this attribute to the <document> node:
plugins="sitemap"
Please do always use the syntax presented in the following chapter on this page. You can add any number of chapters and subchapters, as long as they are nested in the right way. Subcontent is created by creating a new dir in the htdocs/data/en/modules/main/ dir, and place the xml there.
If You need a table of contents for a content page, add this attribute to the <document> node:
toc="yes"
To create an alternative theme for the content, create a file in the themes/(your theme)/modules/main/ dir with the extension .ihtml (for example 2columns.ihtml). The name of this file can now be used in the <document> node like this:
template="2columns"
You can also add emblems to documents or chapters, add this attribute to the <document> or <chapter> node: (The emblems must be placed in the images/emblems/ dir and named emblem_[name of emblem].png)
emblem="art"
XML structure of the XW3 content files
<?xml version="1.0" encoding="utf-8"?> <document toc="" template="" plugins="" emblem=""> <language></language> <headline></headline> <footline></footline> <author></author> <date></date> <link></link> <info></info> <summary></summary> <content> <chapter emblem=""> <headline></headline> <text></text> <subchapter> <headline></headline> <text></text> </subchapter> </chapter> </content> </document>