[Typo3-dev] Accessibility/ObjectTS - soon to be released
dan frost
dan at danfrost.co.uk
Tue Nov 25 13:22:48 CET 2003
Dear all,
[ Note - if you're interested in helping me with this development by
running your TypoScripts through it, please say so - I want to get the
major bugs out asap. ]
Some of you might know that i've been working on a more "Object
Oriented" way of implementing TypoScript and the Typo3 rendering
functions. When I first suggested this - some 5 months ago - I was met
with a mixture of interest and scepticism.
Well, I've nearly got there and plan to release Object-TypoScript as an
extension (and possibly a manually-applied patch) in the next couple of
weeks. I've just got it working for few TypoScript datatypes, and it
(nearly) works perfectly - rendering exactly the same as old TypoScript.
Here's what Object-TypoScript will be/do/contain (if not in this
version, then soon):
- tslib_content - this c5000 line class has been split into 5 or 6
smaller classes. Some of these are used in the same way as the div::
library of functions.
- "datatype" functions if tslib_content - e.g. TEXT and IMAGE - will all
be replaced by "Object TypoScript classes" (see next).
- Object TypoScript classes - are child-classes of the parent (abstract)
classes ts_object. This classes implements all functions (e.g. stdWrap
etc) so *all functions are usable anywhere*. (Note: all ObTS classes
have the filename structure: tso_datatype.php)
- Extensible datatype system - The datatypes are created by creating
classes. Soon, datatypes won't be selected by the (current) switch
statement (in tslib_content) but by their class name - e.g. tso_text is
called for TEXT; tso_image is called for image; and tso_newdatatype is
called for NEWDATATYPE.
- Extensible TypoScript-function system - TypoScript functions _are_ php
functions. The API is strictly defined, meaning that to add a new
TypoScript (to _all_ parts of TypoScript) one has only to create a new
PHP function.
- A backdoor - to the html configuration of what's rendered. This will
allow TypoScripters to change which bits of data are used in the
rendered html, and how the html is configured.
- Globals ObTS on/off - in something like $GLOBALS['OBTS']
- Rendering abstraction layer - html is never hard-coded, but is
rendered through a class called mu_object (mark-up object). This class
builds tags, adds attributes and content by *checking against the DTD"
(via a PHP array). Therefore, the system should soon render xhtml all
the time.
- And more little things...
Comments...?
Regards,
dan
More information about the TYPO3-dev
mailing list