The king is dead, long live…? TemplaVoilà and its epigones – Part 2: Grid Elements and Themes

Continuing my article series (find part 1 here) on TemplaVoilà replacements I take a look at two TYPO3 extensions, which have the potentials to play big roles in the upcoming years when it comes to templating in TYPO3: the already very well-known Grid Elements extension and the not (yet) so famous Theme Packages project.

The misunderstood: Grid Elements

When asked, what to use instead of TemplaVoilà nowadays, many TYPO3 developers will give you one answer: Grid Elements. And indeed did the Grid Elements project create quite some buzz in 2012/2013, when development of version 2.0 of the extension, which brought compatibility with the 6.x branch of TYPO3 CMS, was successfully crowdfunded as the first TYPO3 extension ever. This and the fact, that the rise of Grid Elements coincided with the dying of TemplaVoilà, surely have contributed to the perception of it being a full-fledged successor to TemplaVoilà.

But this is only partly the case: Grid Elements was never intended to replace TemplaVoilà as a whole – and will never do! In fact it only takes care of one of the key features of TV – but does this very well: Providing reusable container elements, e. g. for flexible multicolumn layouts.

I think it’s important to clearly point this out. Many developers misinterpret the intention of Grid Elements, and therefore use it, when they’d better use something else. (See more on this below.)

Why reinventing the wheel?

So what is Grid Elements all about then? The basic idea is as simple as ingenious: It takes the great concept of “Backend Layouts”, introduced in TYPO3 4.5 to the core, and transfers it from pages to content elements.

By doing so it allows you to easily create flexible, reusable and nestable container elements for your content in a way you may already be used to: The backend grid wizard for creating new “CE backend layouts” (how the container elements are officially called) looks and works like the Backend Layouts wizard, and the TypoScript code for rendering your own Grid Elements-based containers in the frontend has many things in common with that of the Backend Layouts (e. g. in both cases you use the uid of the backend elements in your TypoScript code to decide on how to render them).

The affiliation to Backend Layouts is clearly one big advantage of Grid Elements: When you’ve already worked with Backend Layouts, working with Grid Elements is almost seamless. You don’t have to get used to yet another templating concept. And by combining Backend Layouts (which I will cover in another post) and Grid Elements you have indeed two thirds of the key features of TemplaVoilà covered: page templating and container elements.

Flexible content elements – yes or no?

When looking at the manual of Grid Elements, you will notice even one more thing: In theory you can also create FCE-like content elements by utilizing Flexforms. This surely contributed to people thinking of Grid Elements as a full-fledged TV replacement. But, and this is a big BUT, the manual clearly states, that using Flexform fields  (which are actually there for configurational purposes only) for building flexible content elements is not recommended and should be avoided, as it would mean to bypass one of the basic architectural principles of Gridelements: using normalized database relations between containers and elements instead of storing relations in XML structures (like also TemplaVoilà did it and what has always been one of its biggest failures). So you better don’t use Grid Elements that way…

Also good to know

Until recently Grid Elements suffered from some weird behaviour, when using it on multi-language sites or when working with workspaces (see e. g. here, here and here). Though I had Grid Elements up and running on multi-language sites, those problems (actually rooted in TYPO3 core bugs and not in Grid Elements itself) caused some headaches in the past and would have led to the recommendation to not use Grid Elements in multi-language projects. But fortunately those problems seem to be fixed by now (I was not yet able to check it out, but reportedly everything’s cool now).

Another thing you should be aware of, is, that Grid Elements changes the colPos field of the tt_content table from unsigned int(3) to smallint(6), as it needs negative values in the colPos field to work properly. So make sure this doesn’t get reverted when upgrading your TYPO3 installation! (I don’t like that approach very much, as it alters TYPO3 core functionality in a non-update-safe way, but I assume the developers of Grid Elements had good reasons for it.)

Where the heck is the documentation?

One thing that still puzzles me a little bit about Grid Elements: despite its popularity you don’t find that much information about it online. And especially beginners may struggle over one thing: the “Extension Manual” link on the TER page shows a 404 error page – already for weeks if not for months. First I thought, that a manual just does not exist (anymore). The more I was startled, when I found a very well written and exhaustive manual in the Documentation folder of the extension after downloading and installing it. So don’t miss that!

Besides of that you should follow the ongoing development on Forge and take a look on the Blog of the startnext project page, where the creators of Grid Elements keep you updated on further plans (Grid Elements 2.1 and 3.0, the latter supporting TYPO3 6.2 LTS are already under way). A step by step introduction can be found here (German only), and some example implementations directly from the creators here. And finally: if you are planning to migrate an existing website from TemplaVoilà to Backend Layouts and Grid Elements you definitely should take a look at sf_tv2fluidge and the corresponding blog post, showing you how this extension can help you with this task.

So all in all and besides some (minor) flaws Grid Elements is a great piece of software and will pretty sure win in popularity even more in the future, especially because it is actively maintained and constantly improved. And I think I’m not the only one, who would like to see it (or some similar functionality) incorporated into the TYPO3 CMS core one day.

The next level: Theme Packages

As good as Grid Elements is, it is only one component in a bigger set of extensions that makes TYPO3 the flexible CMS it is today. Therefore one might raise the question why not to combine all or at least some of the different approaches for templating and content rendering and focus them on one common goal. And indeed that is, what happened during the TYPO3 Developer Days 2013. The outcome: The Theme Packages project.

Though not directly related to the overall topic of this article series (TV replacements), I would like to point you to this project, which may fundamentally change the way you use TYPO3 in the future and may even alter the way TYPO3 is seen from outside its own community. Its big promise is, to bring one new main feature to TYPO3 CMS, which has long been missed: easy and straightforward theming of the TYPO3 frontend like you might know it from WordPress or other CM systems.

Grounded on Backend Layouts, Grid Elements and an enhanced Themes extension it will easily integrate with Fluidcontent and other content templating engines. It aims at providing “ready made packages containing backend layouts and grid layouts with appropriate frontend output” – the latter by using well known HTML Frameworks like Twitter bootstrap or Foundation as its basis – and thus making it as easy as possible to create a new TYPO3 project on a professional setup, while allowing you to easily switch between your own themes or any 3rd party themes (which may be provided by a central storage).

Like Grid Elements the Theme Packages project has a crowdfunding campaign running on startnext and is still in the funding stage. So if you like the idea as much as I do, support it!

[UPDATE February 07, 2015]
The creators of Grid Elements and Themes have written a book on TYPO3 Theming und Distribution (German only by now), giving an in-depth look on the new theming and distribution possibilities in TYPO3 CMS.

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5.00 out of 5)

13 thoughts on “The king is dead, long live…? TemplaVoilà and its epigones – Part 2: Grid Elements and Themes”

  1. I was a bit puzzled about the thing with the documentation of gridelements. There’s indeed something wrong: the documentation is still in OpenOffice format. As such it should still be located in the old-style folder called “doc”. Folder “Documentation” is now reserved for reStructuredText-based manuals.

    1. Just to clarify this: When the Manual for Gridelements 2.0 was created, the TER rendering of OpenOffice documents was so horribly broken, that we moved the files to another folder intentionally, since a completely weird rendering on would not help that much. Additionally we created a PDF so people would be able to download it beforehand from the forge repository.

      Of course this might change, now that we got a refactored documentation workflow, but our main focus currently is on development, not documentation.

      1. Ok, I see and I totally understand, that you prefer to focus on development (who does not? ;) ). But I think it would be definitely the time to make the manual easily accessible again. I’m pretty sure it would help the project a lot. So if I can help you on that, just let me know (oops, did I say that loud…?).

      2. HeyJoey,

        I agree that the situation was painful for a while, but it’s improved now. You should be able to simply move the OpenOffice file back to “doc”. But the “sphinx” extension makes it really easy to move to reST.

  2. Some ext provide the link to a pdf download directly in the TER ext view (or whatever it is called…). A hint there would make the situation clearer I suppose…

    1. Hi Ulrik,

      glad you liked it. When it will be continued I cannot really tell in the moment. Obligations obligations… And I have to admit that I lost a little bit track on all the TYPO3 templating concepts and initiatives since I wrote my last post (which was in February).
      What I can tell at least, is, that there’s a lot going on. See “This Week in TYPO3″ from week 28, July 2014, with current infos on the development status of TemplàVoila and DCE (the latter was also on my list for my series, seems there’s a big update in the making) and introducing “Mask” as a relatively new extension dealing with templating (and which looks promising as well).
      Likewise you should follow the outcomes of T3DUST, especially if you’re interested in the Themes packages.
      And another extension I recently stumbled upon is “autoloader”, which may help you when you develop own custom content elements with Extbase (more on autoloader, in German, here and on creating custom content elements using Extbase in general here). Personally I like the idea of using TYPO3’s core functionalities (what Extbase is for me) for content element development, as it doesn’t make you dependent from third party extensions, though you may face some limitations (e. g. it’s not really suitable for container elements).

      Hope that will help you a little bit.


  3. Hello Martin, I’m interested in knowing what your thoughts are on gridelements/flux now after some time has gone by. Having a hard time really sorting this out as we’re about to get TYPO3 7.6 LTS.

    1. Hi Charles, it’s hard to say what will be the best solution for 7.6. Lately I was doing a project with 7.x (starting with 7.1 and constantly upgrading to 7.4) and FluidTYPO3 having issues again and again regarding localization and in the backend (e.g. with drag&drop). The guys from FluidTYPO3 are doing a great job, but it always takes some time for them to adapt to the latest TYPO3 version. As far as I know 7.5 is not yet fully supported by FluidTYPO3, and I don’t know how fast they will be able to adapt to 7.6 LTS (as soon as it is out). Though, they surely will do their best, see About the status of gridelements I can’t tell you much, because I didn’t use it in the last past months. But it seems that they also are trying to keep up with all the changes in the latest TYPO3 versions. For 7.x don’t use the version from the T3 extension repository but the 7.x branches from (there’s already a 7-LTS branch…). So to answer your question: If it’s possible for you, wait until 7.6 LTS is out and see how both teams are keeping up and then decide which one to use. If it’s not possible, I would go for FluidTYPO3 in the moment – but maybe just because of my personal preferences ;-)
      And by the way, DCE is a good alternative, too. Made also big progressions in the last couple of months and is already compatible with 7.4:

Leave a Reply to François Suter Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">