Experiences of Typo3 – The good, the bad and the ugly
After spending some time with the Typo3 CMS I have a couple of opinions on the good, the bad and the ugly of this system. A technical note can be found in another article, Speaking URLs with Typo3.
Typo3 is a Content Management System (CMS) released as OpenSource under GNU/GPL-license. Originally created by Kasper Skårhøj, it has now been adopted and further developed by a lot of skilled developers. Kasper seems to consider himself on a mission from God to develop the world’s greatest CMS and give it away for free. Who am I to disagree? A great product free of charge. The Danish government should give him a medal or something.
The good stuff
- HTML templates: All modern web development ought to use some kind of templates for obvious reasons, such as only typing the information once, easier debugging etc. The use of HTML templates in Typo3 is not obvious at first, since most examples uses the built-in TypoScript to create pages, but once configured it is working perfectly.
Consider this markup in a HTML template:
<!– Page Content Area table cell –> <td id=”content_normal” valign=”top”> </td>
By using TypoScript we can dynamically populate this table cell with content from the database. This is done by a one-liner in the Typo3 template (not to be confused with the external HTML template) like this:subparts.content_normal < styles.content.get
We must also specify the HTML template, which is done by another one-liner:content.file = templates/my_template.html
Since Typo3 templates are stored in the database and consists of script code, I recommend that their numbers and size is kept to a minimum for maintenance reasons.
- Publishing: A seldom requested feature of content management systems is the ability to generate plain HTML files. I wonder why, since this is superior in terms of security and speed, two very important factors on the web. Typo3 is one of the few systems out there that have this ability. Unfortunately it has some limitations and the generation is only supported by the core content, but with a few tricks the desired result is easily achieved.
- Smooth installation: It runs flawless on both Windows and Linux based servers. In my humble experience it works best on Apache, although the same result can easily be obtained on IIS with a little effort.
- Easy migration: The system is practically a bunch of PHP files which enables simple “xcopy deployment”. Then simply export your MySQL database and you’re done. Almost.
- Extensive functionality: When it comes to features, Typo3 has only a few competitors if any. An endless range of extensions are available to suit every need. Well, almost every.
- Speaking URLs: The standard look of Typo3 URLs, as with most php-solutions using a database,
looks like this:
But we would rather have:http://server/typo3/contact/address.html
based on the actual page context. Apart from aesthetic reasons there are other good reasons, such as search engine optimization. This makeover is done by using the extension RealURL in combination with web server modifications. RealURL is a good thing, but it often behaves as a baddie since it can be quite tricky to get it working. Please refer to the article Speaking URLs with Typo3 for further information.
The bad stuff
- TypoScript: Most advanced CMS tools use some kind of scripting language to achieve extended functionality and Typo3 is certainly no exception. For this purpose the creators have decided to implement their own language entitled TypoScript. In my humble opinion, the language is not bad, but my time is very limited and I appreciate a standard technology whenever it is applicable.
- Bad markup: The generated HTML code could be better, especially the lines produced by the RTE (default WYSIWYG editor). I never like systems that garble my markup.
- Multiple entry points for functions: There are a zillion ways to get the work done. Some may put this on the “good” list, but I think it belongs in the “GUI hall of shame”. Add the fact that not all entry points work at any given point, but you have to know which button to push (and more importantly, which button NOT to push).
The ugly stuff
- Non-intuitive user interface:
As previously mentioned, the GUI leaves a lot to wish for. For instance, within a small area there is not one but four different ways of doing the same thing! Here is a screenshot displaying four ways of creating content on a page. (the red opaque color is added by me)
If you are a savvy developer looking for a free and reliable CMS solution for a client or an enterprise, Typo3 could be a decent choice. It is flexible, powerful and has a wide range of happy users. However, prepare to get lost now and then in the GUI, scratch your head over TypoScript semantics and simply play dead when the database gets an identity crisis.
For less stubborn users with a demanding social life who may settle for a lesser solution, check out the competition before you install Typo3. For example, Mambo and Plone are popular alternatives in the world of OpenSource.