Skip to content

Releases: FriendsOfTYPO3/content-blocks

0.7.2

09 Apr 14:22
Compare
Choose a tag to compare

Minimum TYPO3 version raised to 12.4.14

Full Changelog: 0.7.1...0.7.2

0.7.1

01 Apr 11:53
Compare
Choose a tag to compare

Fixes an issue with deployment. Icons are now resolved after symlinked asset paths have been published.

0.7.0

01 Apr 07:32
Compare
Choose a tag to compare

Last sprint release. No april fools joke!

Yes, this is the last minor version for now. Many last minute features got in, though. Now the focus will shift in preparing the Core patch. Development of additional features will pause for this time. Of course, bug fix releases will be provided if needed. Now let's see what's changed!

JSON Schema ✍️

Bildschirmfoto von 2024-03-31 21-06-37

We have worked on a JSON schema definition for Content Blocks and have now reached a good state. This is not only relevant for validation, but helps you write EditorInterface.yaml files with auto-completion if your IDE supports it. Many thanks to @PKuhlmay for helping me out there! You can find the separate repository containing the schemas here: https://github.com/nhovratov/content-blocks-json-schema
There you can find information on how to include them in commonly used IDEs.

Extending native Record Types

It is now possible to define a new Record Type for existing, native Record Types. You can for example add a custom type for News records. This is especially handy if there is need to extend the basic functionality of extensions with custom definitions and fields. Of course, this is only one part of multiple steps to achieve the final goal, but a major and annoying one. Read this guide for more information: https://docs.typo3.org/p/contentblocks/content-blocks/main/en-us/Guides/RecordTypes/Index.html#adding-new-types-to-existing-tables

Previews for Page Types

Screenshot 2024-03-24 at 22-35-46 Page · Blog · Content Blocks TYPO3 CMS 12 4 13

Just like for Content Elements, you can now define previews for Page Types. The preview will be displayed on top of the content area. Everything works exactly like you already know it from the EditorPreview.html file of Content Elements. The screenshot is just an example of what it could look like and is not included by default. Special thanks to @DanielSiepmann again for pioneering this feature.

Custom Field Types

This is more of a developer feature. Nevertheless, it is important to be able to define custom Field Types for Content Blocks if special needs arise. With this feature it is possible to define funny things like a "Map Selector" or type "Money". Read more in this article: https://docs.typo3.org/p/contentblocks/content-blocks/main/en-us/DeveloperCorner/ExtendFieldTypes/Index.html

Pre-rendered nested elements in frontend

Screenshot 2024-03-31 at 21-17-30 Blog

Up until now it was needed to use the f:cObject view helper to render nested content elements in the frontend. This is a bit confusing for many people. Also, it is weird to jump to TypoScript rendering within Fluid back and forth from a technical point of view. A more elegant solution is to pre-render child elements and just to output the content. This has now be accomplished. The rendered "grids" can now be accesed by {data._grids.identifier.content}. Read the updated guide for nested content for more insight: https://docs.typo3.org/p/contentblocks/content-blocks/main/en-us/Guides/NestedContentElements/Index.html#render-nested-content-elements-in-the-frontend

Again, credits to @DanielSiepmann for the idea.

More features

Documentation

The Content Blocks documentation rendering is now based on PHP. A BIG thanks to @linawolf for providing the patch. Not only is it now much faster, but a lot more accessible: https://docs.typo3.org/p/contentblocks/content-blocks/main/en-us/Index.html

At this point I also want to thank @garvinhicking for providing a redirect from an older version of the documentation to the current one.

Bugfixes

  • f6c0dec [BUGFIX] Avoid endless recursion
  • 8fd2ed7 [BUGFIX] Convert category relations to ContentBlockData
  • 4ac051e [BUGFIX] Avoid NotInstantiableTypeException for type Folder
  • 968e839 [BUGFIX] Invalidate backend preview caches on each DataHandler operation

And as always many code refactorings, documentation improvements and bugfixes. Thanks to all supporters and the valuable feedback! This would not be possible without you!

Nikita Hovratov - Content Blocks developer

0.6.4

06 Mar 19:16
Compare
Choose a tag to compare

Full Changelog: 0.6.3...0.6.4

0.6.3

05 Mar 13:46
Compare
Choose a tag to compare

Full Changelog: 0.6.2...0.6.3

0.6.2

27 Feb 20:27
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.6.1...0.6.2

0.6.1

26 Feb 11:07
Compare
Choose a tag to compare

Full Changelog: 0.6.0...0.6.1

0.6.0

26 Feb 07:22
Compare
Choose a tag to compare

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

0.5.2

03 Feb 16:20
Compare
Choose a tag to compare

[BUGFIX] Lift hard requirement for labelField type (#112)
[BUGFIX] Add more foreign_* option as non-overridable (#110)
[BUGFIX] Allow integers as item labels and allow to omit them (#108, #111)
[BUGFIX] Expand searchable fields

0.5.1

31 Jan 09:39
Compare
Choose a tag to compare

[BUGFIX] Prevent PHP warning "iteration on nullable"