[TYPO3-ect] Contnet rendering engine

Elmar Hinz elmar.DOT.hinz at team.MINUS.red.DOT.net
Tue Jun 27 08:05:32 CEST 2006


Hello,

lets talk about a content rendering engine.


History and today

We use HTML-templates and data arrays. Loops over the data need to be
programmed for each extension again. There are no standards of output. We
need to adapt the HTML templates for each setup. We need to write CSS for
each setup.


Tomorrow

* we don't need to program a view for each extension
* we just produce output of a defined standard
* by selecting rendering templates we publish to different channels
* we can select from different CSS styles to skin our page or make our own
skins


Definition

The content rendering engine transforms standardized data input to
standardized formats of output.


Benefits

* reusibility of templates
* reusibility or easy adaption of CSS
* slim CSS
* unique look and fell of extensions
* improvement of usibility


Example

A DB result set of addresses is rendered to a list view of addresses. This
list view could have different formats:

* slim accessible HTML with a minimum of markup
* best stylable HTML with additional DIVs and classes for CSS styling
* PDF List
* old school table HTML
* plain text list
* list of microformats


Use

Typically used for the view of extensions. I may have talked of a generic
view in the past to describe it. Either it may by the view itself of a
library that the view is based on.

Formats of input

* XML
* data objects
* CSV
* JSON


Abstract level

Abstractly we can say, that we feed data and rendering templates into it
and get the output in return. We could define it as an abstract class from
wich different implementations could be inherited.

Existing technical solutions

Examples of rendering engines are the TYPO3 template functions, the Apache
project Cocoon, Smarty, ...  Depending on the kind of data input they work
with different technologies like XSLT or replacement of variables.

TODO

To make it behave in standards manner we need to define standard formats of
input and output, decide for a rendering technology, implement it and
provide the necessary rendering templates.


How do we get it started?

















More information about the TYPO3-team-extension-coordination mailing list