Structured Content Initiative—What Happened Between November 2021 and April 2022?

Categories: Community, TYPO3 CMS Created by Lidia Demin
With the UX Initiative working on the Page Module Pilot, the Structured Content Initiative can now concentrate on our two main projects: Content Blocks Registration API and the Dynamic Grid.

The Structured Content Initiative is the core Strategic Initiative focused on improving the content editing user experience in TYPO3 CMS. Read our last update to learn more about what we’ve been working on. 

Content Blocks Registration API—New Major Release

As announced at the recent TYPO3 Camp Mitteldeutschland in Dresden, we were able to finalize and release version 2.0 of our Content Blocks Registration API during the recent TYPO3 Community Sprint at the TYPO3 GmbH.

The biggest change of this new major release is the refactored data storage method. Whilst we used the Flexform approach to create a POC, we never intended to retain it for the final release. We analyzed and re-evaluated the available storage alternatives. We decided to go with extending the tt_content table and follow the example set by stable solutions like Bootstrap Package and Mask, and have custom tables for collection items (inline relations). The other approaches of JSON blob and EAV are not on the priority list right now, and furthermore, require major changes to the TYPO3 Core.

Our new version supports PHP 7.2 to 8.0, and both TYPO3 10.4 LTS and 11.5 LTS. Other work completed for this release: 

  • Testing with a multi-language setup, and testing with Workspaces.
  • Updates to the Documentation to include an example containing all properties per field type.
  • Minor improvements to the Content Blocks Builder.

A major refactoring of the GUI is targeted for version 3. You can check out our plans for future versions by taking a look at our milestones planning. Compatibility with TYPO3 12 will be targeted step-by-step, for example, compatibility with TYPO3 12.0 when 12.1 is released.

Dynamic Grid

We have been planning the Dynamic Grid for a long time now. The concept is basically to store the grid information of a page as JSON in the page properties. The Dynamic Grid can be enabled per colPos in the backend layout configuration. The visual representation in the backend is handled by the CSS Grid.

With the development of TYPO3 12 in progress, we decided to create the POC as an extension for TYPO3 11.5 LTS, just like we did for the Content Blocks, so that it can be tested easily in a stable environment.

The most difficult part about the technical implementation was to pass the data regarding the placement of a new content element in the grid to DataHandler. This was tricky because the NewContentElementController currently does not have any suitable hooks. With some additional XClassing we managed to create a working prototype, which handles the following cases when adding new content elements:

  • Add a new row
  • Add a new column in an existing row (left, right and in between)
  • Add an element in an existing column (above,below and in between)

We also decided to do some refactoring based on the insights from the TYPO3 Community Sprint. As jQuery will soon be removed from the backend, the work to replace it in our extension is in progress. Using LitElement, we can dynamically reorganise the HTML content as a grid in the backend.

The POC is still experimental, but there is a setup guide if you would like to try it out already. 

Keep In Touch

Thank you for your great feedback so far! Please keep testing and sharing your thoughts with us! You can reach us at #cig-structuredcontent on Slack via chat or join our weekly calls on Mondays at 7 p.m. CET

The Structured Content Initiative

Additional contributors for this article
  • Proofreader : Felicity Brand
  • Content Publisher : Mathias Bolt Lesniak