packagist contentblocks/content-blocks 0.6.0

latest releases: dev-main, 1.0.4, 1.0.3...
8 months ago

Lightning fast Content Blocks ⚡

This version requires the minimum TYPO3 version 12.4.11

This release includes a breaking change 💥 :

Content Blocks started as a new realm on top of TYPO3, which only new about its own defined Content Types. This led to confusion among users, who expected seamless integration between natively defined types and Content Blocks. In the first step, native types are now also converted to the so called ContentBlockData object. This is the object, which is available in the {data} variable and holds the {data._raw} and {data._processed} data of the current database row. This was e.g. needed in order to use Nested Content Elements in a unified way. If you used native types as nested child elements (or native page types), adjustments to Fluid might be necessary.

More caches for Content Blocks

More dedicated caches were added for each aspect of Content Blocks. To create a new Content Type basically three steps are happening:

  1. Look for defined Content Blocks in each extension and parse the YAML -> first level PHP cache of the raw yaml + separate Basics cache
  2. Compilation of Content Blocks to the internal data structure called TableDefinitionCollection -> second level PHP cache of the object state.
  3. Code generation (TypoScript, TsConfig, Icons, ...) -> third level cache. Each type of generated code has now a dedicated cache entry.

All these caches are stored in the group system. Flushing this cache means all these steps have to be repeated. The first step is the most expensive as it includes file system lookups and YAML parsing.

Backend Previews: In general, the backend view of TYPO3 is not completely cached. Expensive database lookups are done on every click in the backend. So it was for automatic relation resolving for Content Block data. If you had a preview for your slider or nested content, then this could take a while in case you had plenty of elements on a page. This result is now also cached and will only be resolved again when the Content Element changes. In my tests this approximately cut the loading time in half.

Nested Content part 2

NestedContentPreview

In the last version we introduced the possibility to define Nested Content and render it in the frontend. Now it is also possible to automatically create backend previews. These previews reuse the native grid templates so it looks and feels as if it was natively in TYPO3:

 <f:render partial="PageLayout/Grid" arguments="{data: data, identifier: 'tabs_item'}"/>

Thanks to @DanielSiepmann for pioneering this feature.

Two new guides

A guide for the migration from Mask to Content Blocks is now available: https://docs.typo3.org/p/contentblocks/content-blocks/main/en-us/Migrations/Mask/Index.html

A guide on how to add custom groups is added: https://docs.typo3.org/p/contentblocks/content-blocks/main/en-us/Guides/AddingNewGroups/Index.html

Roadmap

As TYPO3 v13 approaches we needed a plan for the transition into the Core. This release is the first milestone of the roadmap. There will be one more version before the port for the Core patch begins. During this time, there will be no more features. After successfull merge into the Core (which is expected), we declare Content Blocks as stable version v1.0.0. The v13 and v12 version will be kept in sync from there on.

Milestone Date
Content Blocks v0.6 26.02
Content Blocks v0.7 01.04
Core patch 01.04 - 23.04
TYPO3 v13.1 23.04
Review period 23.04 - 14.06
Patch merged latest 01.07
TYPO3 v13.2 02.07
Content Blocks v1.0.0 02.07

What's Changed

  • [!!!][FEATURE] Transform Core Content Types to ContentBlockData objects (#119)
  • [FEATURE] Backend Previews for Nested Content
  • [FEATURE] Add caches for editor preview database operations
  • [FEATURE] Fieldtype Language (#123) - thanks to @PKuhlmay
  • [FEATURE] Support for mixed relations in type Relation (#120)
  • [FEATURE] Custom properties for Select, Checkbox and Radio types (#131)
  • [BUGFIX] Allow empty items for FlexForm Select (#131)
  • [DOCS] Document the migration path for Mask
  • [DOCS] Add guide on how to add custom groups

And like always some bugfixes, documentation improvements and much much code refactoring along the way.

Nikita Hovratov - Content Blocks developer

Don't miss a new content-blocks release

NewReleases is sending notifications on new releases.