technotecture

temx - content creation pipeline

temx is a PHP based content management system (CMS) or website construction kit utilising the principle of pipelines and filters commonly used in multimedia frameworks like DirectX or GStreamer. Don't be scared, it sounds very technical but actually its simple, believe me!

Rendering PipelineRendering Pipeline

Developing this software was initially inspired by Gunther Website Builder and Textpattern but finally headed in another direction. Some shortcomings here and there, experiences with about 2 dozen of tested CMS and a lack of options in regard to my ISP lead me to write my own little tool. This website is completly running with temx. It was an initial effort of about a week with some cleanup still going on. The current featureset is small but writing and maintaining is very easy and pleasant.

Features

  • very compact footprint with less than 160kByte including an administration interface
  • KISS - Keep It Simple, Stupid
  • several builtin filters:
    • gallery filter creates thumbnail galleries from per-page uploaded images
    • PHP filters allow scripting within scripting
    • text formating filters like Textile, Markdown
  • easy to extend with new filters
  • automatic feed generation
    • RSS 2.0
    • [Atom 0.3](http://www.atomenabled.org/ Atom 0.3 feed)
  • Administration interface with text processing for dynamic and static content, image processing
  • Live search
  • completly themeable
  • Blogger API and metaWeblog API using XML-RPC - Blogging tools successfully tested

Requirements

Requirements on your system are kept as simple as possible.

  • webserver with PHP 4.2.x (or later) or 5.x with optional GD (version 1.x or 2.x) installed
  • no database needed

Inner Workings

You might wonder what is different in temx compared to other CMS. Actually the system works similar to a piece of clay: progressivly form the matter into a meaningful representation.

  1. The source consists of a meta file that points to a source (currently a textfile) Note this could also be a database even if I oppose these, you might read later on why.
  2. In this step a sequence of filters transforms text and rearranges variables, thus creating the content information
  3. in the final step a layout template creates the requested output

temx rendering pipeline

One could argue that it is a waste of time to create YACMS (Yet Another CMS) but I see it more of an intellectual excersise with respect to presentation, logic and data storage. As an architect I have the notion that without data there is no layout and without layout there is no data. I strongly agree with the attempt to separate logics from presentation as it is achieved with XML, but there might be not one layer of data and one layer of logics rather than a broad variety of gray. I postulate that a mixture of predefinitions by the user on a per-case basis and an intelligent rendering algorithm could change and simplify content storage dramatically. temx is an experiment in this direction.

Where is the beef?

As you probably realise this is a work in progress. I am still implementing some of the core features I would like to see in temx. Furthermore, there is no installer yet - it would be pretty hard for you to figure out how to get it run.

Who is using it

Currently this is a internal project of technotecture labs. Examples of running sites: