SlideShare a Scribd company logo
TYPO3 Content Blocks
Deep Dive
André Kraus
#cig-structuredcontent
Content Types Team 08.08.2025
André Kraus
Team lead,
developer
Lidia Demin
Ex-Lead (silent
member)
Content Types Team
Jonas Eberle
Frontend
development
Nikita Horvatov
API development
lead, Core Team
bridge
Manuel Schnabel
developer, article
author, social
media
Filippos Karpouchtsis
Frontend development
Philipp Kuhlmay
developer, testing,
documentation
Content Types Team 08.08.2025
Content Blocks - Deep Dive
Best Practices and technical edge cases while creating content
elements with the content blocks approach.
Content Types Team 08.08.2025
CLI Commands
● kickstart command
● list command
● language generate command
● publish assets command
speed up setup process
reduce repetitive tasks
Content Blocks comes with a few CLI commands
Content Types Team 08.08.2025
● pre-defined assets, templates and config
● for content elements, page types, record types
● except: language/labels.xlf and config.yaml
● use content-blocks.yaml for config.yaml default values
speed up setup process
reduce repetitive tasks, reduce bugs
Skeleton for CLI Command
Predefined standards for creating a new Content Block
Content Types Team 08.08.2025
Basics
● pre-defined Basics from Content Blocks
● custom Basics
● nested Basics
● e.g. header palette, link palette, appearance tab
shared code: take care when moving a Content Block
reduce complexity
Reduce redundant YAML code with Basics
Content Types Team 08.08.2025
Extending Field Types
● implements Content Blocks FieldTypeInterface
● it is just one single field, not a group of fields
● e.g. field type “Image” instead of type “File” with additional config
● e.g. type “SingleSelect” instead of renderType “selectSingle”
provide better fitting defaults
improve semantic
You can add complete new field types to your system
Content Types Team 08.08.2025
Extend TypoScript
● global Content Blocks TypoScript overrides
● override TypoScript of a single Content Block to add specific
definition
● e.g. to add Data processing, Shared Partials, layouts, settings
add global definitions or additional information
customize a Content Block
Override Content Blocks boilerplate TypoScript
Content Types Team 08.08.2025
Shared partials
● use own partials from your site package, e.g. for header or image
rendering
● for content elements via TypoScript
● for backend preview via page TSconfig
reduce redundant code
streamline rendering
Reduce redundant code with shared partials
Content Types Team 08.08.2025
Extend TCA
● it works exactly like overriding core TCA
● find the correct identifier for the field you want to override
● remember collections creating a new custom table
● (RecordTypes creating a new custom table too)
typo3/cms-lowlevel is your friend (Configuration module)
extend the TCA in Configuration/TCA/Overrides/
Override Content Blocks boilerplate TCA
Content Types Team 08.08.2025
Data Processing
● old way works only for new variables alongside
$processedData['data']
● use RecordCreationEvent to modify the record object
● page data processing has to be added manually via TypoScript
you can use your own models and repositories
for low complexity or simple data collection,
consider this approach instead of Extbase
Content Blocks is based on the new Record API in TYPO3 v13
Content Types Team 08.08.2025
Display conditions
● it works exactly like in TCA
● you need the correct identifier and value
● fields used in a condition should have the column option
“onChange” set to reload
typo3/cms-lowlevel is your friend (Configuration module)
please also take a look at the official documentation
Display conditions in Content Blocks is writing TCA in YAML
Content Types Team 08.08.2025
Handle common fields in CE’s
● re-defining root fields in every content element (tt_content)
can lead to table row size to large issue
● re-use existing fields in content elements
● consider to share common root fields
Attention: some columns aren’t meant to re-use!
Some properties aren’t meant to override, e.g. type
Fields needed in nearly every content element like header,
header_layout, background_color, background_image
Content Types Team 08.08.2025
Nested Content Elements
● this can not replace e.g. EXT:container
● special setting in YAML file
● take care to prevent duplicate rendering in frontend & backend
● this solution does not provide drag and drop or creation of new
child elements in the Page module
It is possible to nest content elements within Content Blocks
Content Types Team 08.08.2025
Link.editRecord ViewHelper
● adds the return anchor on custom edit links - jumps back to the
previous position on close element
● only in Page layout context
● also works for linking directly to collection items
Improve UX in TYPO3 backend while using Content Blocks
Content Types Team 08.08.2025
Extbase Plugin
● faster and easier registration
● easier configuration and maintenance
● TODO: register controller actions manually
● TODO: add custom TypoScript
Attention: experimental feature!
How to create Extbase plugins via Content Blocks
Content Types Team 08.08.2025
Type Overrides
● reorder fields of the child record
● remove fields from the child record
● add completely new fields to the child record
● override options like “label”, “description”, “renderType”, etc.
override the showitem string for specified type
can be used to re-define file definitions
For field type “Collection” and “File”
Content Types Team 08.08.2025
File Types
● re-define file types
● e.g. add new custom fields
● use carefully, since this changes the arrangement of fields
globally
a Basic could be a better way to do so
consider using Type Overrides instead
Override file types globally
Content Types Team 08.08.2025
Restrict Collection child types
● e.g. restrict tt_content element types within a slider or an
accordion
● easy configuration via YAML
improve user experience
avoid rendering issues
Improved control over collection children
Content Types Team 08.08.2025
Content Blocks Documentation
Go ahead and find further information:
https://docs.typo3.org/p/friendsoftypo3/content-blocks/main/en-us/Index.html
Content Types Team 08.08.2025
JSON Schema for IDEs
currently available via:
https://github.com/nhovratov/content-blocks-json-schema
Content Types Team 08.08.2025
These slides available here
Link to the slides:
https://github.com/krausandre/cb-demo-25
Content Types Team 08.08.2025
Coming soon:
Moving forward to migrate to TYPO3 core
Content Blocks GUI
EXT:content_blocks_styled_content
JSON Schema moving to public API
Content Types Team 08.08.2025
Try it out now!
friendsoftypo3/content-blocks
#cig-structuredcontent

More Related Content

PDF
AtoZ about TYPO3 v8 CMS
PDF
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
PDF
TYPO3 6.1. What's new
PDF
Little Gems in TYPO3 v12
PDF
TYPO3 Extension development using new Extbase framework
ODP
TYPO3 Housekeeping
PPTX
ExtBase workshop
PDF
TYPO3 v8 most important changes
AtoZ about TYPO3 v8 CMS
What's new in TYPO3 6.2 LTS - #certiFUNcation Alumni Event 05.06.2015
TYPO3 6.1. What's new
Little Gems in TYPO3 v12
TYPO3 Extension development using new Extbase framework
TYPO3 Housekeeping
ExtBase workshop
TYPO3 v8 most important changes

Similar to T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus (20)

ODP
FED presentation
PDF
The radically new interface for TYPO3 5.0
PDF
TYPO3 5.0 Experience Concept
PDF
DevOps for TYPO3 Teams and Projects
PPTX
"Just Put That In The Zip Code Field..."
PDF
TYPO3 6.2 LTS - TYPO3 Conference Stuttgart, 2013
KEY
Cross Media Publishing with TYPO3
PPTX
Typo3 Tips and tricks
PDF
TYPO3 6.2. What's new
PPTX
2017 - TYPO3 CertiFUNcation: Mathias Schreiber - TYPO3 CMS 8 What's new
PDF
TYPO3 Inline Relational Record Editing (IRRE)
PDF
Keeping a codebase fresh for over a decade
PDF
TYPO3 6.0. What's new
PDF
PDF
PDF
PDF
PPTX
File Access and Storage with the TYPO3 Content Repository
DOC
Typo3 Development Services Make CMS More Efficient and Powerful
PPTX
The one thing to list everything
FED presentation
The radically new interface for TYPO3 5.0
TYPO3 5.0 Experience Concept
DevOps for TYPO3 Teams and Projects
"Just Put That In The Zip Code Field..."
TYPO3 6.2 LTS - TYPO3 Conference Stuttgart, 2013
Cross Media Publishing with TYPO3
Typo3 Tips and tricks
TYPO3 6.2. What's new
2017 - TYPO3 CertiFUNcation: Mathias Schreiber - TYPO3 CMS 8 What's new
TYPO3 Inline Relational Record Editing (IRRE)
Keeping a codebase fresh for over a decade
TYPO3 6.0. What's new
File Access and Storage with the TYPO3 Content Repository
Typo3 Development Services Make CMS More Efficient and Powerful
The one thing to list everything
Ad

Recently uploaded (20)

PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
L1 - Introduction to python Backend.pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
AI in Product Development-omnex systems
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
medical staffing services at VALiNTRY
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Transform Your Business with a Software ERP System
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Adobe Illustrator 28.6 Crack My Vision of Vector Design
L1 - Introduction to python Backend.pptx
Upgrade and Innovation Strategies for SAP ERP Customers
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
AI in Product Development-omnex systems
VVF-Customer-Presentation2025-Ver1.9.pptx
Operating system designcfffgfgggggggvggggggggg
Softaken Excel to vCard Converter Software.pdf
medical staffing services at VALiNTRY
2025 Textile ERP Trends: SAP, Odoo & Oracle
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Design an Analysis of Algorithms I-SECS-1021-03
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Transform Your Business with a Software ERP System
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How to Choose the Right IT Partner for Your Business in Malaysia
ISO 45001 Occupational Health and Safety Management System
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Ad

T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus

  • 1. TYPO3 Content Blocks Deep Dive André Kraus #cig-structuredcontent
  • 2. Content Types Team 08.08.2025 André Kraus Team lead, developer Lidia Demin Ex-Lead (silent member) Content Types Team Jonas Eberle Frontend development Nikita Horvatov API development lead, Core Team bridge Manuel Schnabel developer, article author, social media Filippos Karpouchtsis Frontend development Philipp Kuhlmay developer, testing, documentation
  • 3. Content Types Team 08.08.2025 Content Blocks - Deep Dive Best Practices and technical edge cases while creating content elements with the content blocks approach.
  • 4. Content Types Team 08.08.2025 CLI Commands ● kickstart command ● list command ● language generate command ● publish assets command speed up setup process reduce repetitive tasks Content Blocks comes with a few CLI commands
  • 5. Content Types Team 08.08.2025 ● pre-defined assets, templates and config ● for content elements, page types, record types ● except: language/labels.xlf and config.yaml ● use content-blocks.yaml for config.yaml default values speed up setup process reduce repetitive tasks, reduce bugs Skeleton for CLI Command Predefined standards for creating a new Content Block
  • 6. Content Types Team 08.08.2025 Basics ● pre-defined Basics from Content Blocks ● custom Basics ● nested Basics ● e.g. header palette, link palette, appearance tab shared code: take care when moving a Content Block reduce complexity Reduce redundant YAML code with Basics
  • 7. Content Types Team 08.08.2025 Extending Field Types ● implements Content Blocks FieldTypeInterface ● it is just one single field, not a group of fields ● e.g. field type “Image” instead of type “File” with additional config ● e.g. type “SingleSelect” instead of renderType “selectSingle” provide better fitting defaults improve semantic You can add complete new field types to your system
  • 8. Content Types Team 08.08.2025 Extend TypoScript ● global Content Blocks TypoScript overrides ● override TypoScript of a single Content Block to add specific definition ● e.g. to add Data processing, Shared Partials, layouts, settings add global definitions or additional information customize a Content Block Override Content Blocks boilerplate TypoScript
  • 9. Content Types Team 08.08.2025 Shared partials ● use own partials from your site package, e.g. for header or image rendering ● for content elements via TypoScript ● for backend preview via page TSconfig reduce redundant code streamline rendering Reduce redundant code with shared partials
  • 10. Content Types Team 08.08.2025 Extend TCA ● it works exactly like overriding core TCA ● find the correct identifier for the field you want to override ● remember collections creating a new custom table ● (RecordTypes creating a new custom table too) typo3/cms-lowlevel is your friend (Configuration module) extend the TCA in Configuration/TCA/Overrides/ Override Content Blocks boilerplate TCA
  • 11. Content Types Team 08.08.2025 Data Processing ● old way works only for new variables alongside $processedData['data'] ● use RecordCreationEvent to modify the record object ● page data processing has to be added manually via TypoScript you can use your own models and repositories for low complexity or simple data collection, consider this approach instead of Extbase Content Blocks is based on the new Record API in TYPO3 v13
  • 12. Content Types Team 08.08.2025 Display conditions ● it works exactly like in TCA ● you need the correct identifier and value ● fields used in a condition should have the column option “onChange” set to reload typo3/cms-lowlevel is your friend (Configuration module) please also take a look at the official documentation Display conditions in Content Blocks is writing TCA in YAML
  • 13. Content Types Team 08.08.2025 Handle common fields in CE’s ● re-defining root fields in every content element (tt_content) can lead to table row size to large issue ● re-use existing fields in content elements ● consider to share common root fields Attention: some columns aren’t meant to re-use! Some properties aren’t meant to override, e.g. type Fields needed in nearly every content element like header, header_layout, background_color, background_image
  • 14. Content Types Team 08.08.2025 Nested Content Elements ● this can not replace e.g. EXT:container ● special setting in YAML file ● take care to prevent duplicate rendering in frontend & backend ● this solution does not provide drag and drop or creation of new child elements in the Page module It is possible to nest content elements within Content Blocks
  • 15. Content Types Team 08.08.2025 Link.editRecord ViewHelper ● adds the return anchor on custom edit links - jumps back to the previous position on close element ● only in Page layout context ● also works for linking directly to collection items Improve UX in TYPO3 backend while using Content Blocks
  • 16. Content Types Team 08.08.2025 Extbase Plugin ● faster and easier registration ● easier configuration and maintenance ● TODO: register controller actions manually ● TODO: add custom TypoScript Attention: experimental feature! How to create Extbase plugins via Content Blocks
  • 17. Content Types Team 08.08.2025 Type Overrides ● reorder fields of the child record ● remove fields from the child record ● add completely new fields to the child record ● override options like “label”, “description”, “renderType”, etc. override the showitem string for specified type can be used to re-define file definitions For field type “Collection” and “File”
  • 18. Content Types Team 08.08.2025 File Types ● re-define file types ● e.g. add new custom fields ● use carefully, since this changes the arrangement of fields globally a Basic could be a better way to do so consider using Type Overrides instead Override file types globally
  • 19. Content Types Team 08.08.2025 Restrict Collection child types ● e.g. restrict tt_content element types within a slider or an accordion ● easy configuration via YAML improve user experience avoid rendering issues Improved control over collection children
  • 20. Content Types Team 08.08.2025 Content Blocks Documentation Go ahead and find further information: https://docs.typo3.org/p/friendsoftypo3/content-blocks/main/en-us/Index.html
  • 21. Content Types Team 08.08.2025 JSON Schema for IDEs currently available via: https://github.com/nhovratov/content-blocks-json-schema
  • 22. Content Types Team 08.08.2025 These slides available here Link to the slides: https://github.com/krausandre/cb-demo-25
  • 23. Content Types Team 08.08.2025 Coming soon: Moving forward to migrate to TYPO3 core Content Blocks GUI EXT:content_blocks_styled_content JSON Schema moving to public API
  • 24. Content Types Team 08.08.2025 Try it out now! friendsoftypo3/content-blocks #cig-structuredcontent