.. include:: /Includes.rst.txt
.. _breaking-80412:
================================================================================================
Breaking: #80412 - New shared content element TypoScript library object for Fluid Styled Content
================================================================================================
See :issue:`80412`
Description
===========
To solve an inconsistency issue for API based content element registration between
CSS Styled Content (CSC) and Fluid Styled Content (FSC) through `Extbase` or
:php:`addPItoST43` we are now introducing a new shared content object for content elements
and drop the active usage of :typoscript:`lib.fluidContent`.
The generated code relied on the existence of the removed :typoscript:`lib.stdheader` and also
ignored layouts, frames, spacebefore, spaceafter in context of Fluid Styled Content.
For content element registration the TypoScript :typoscript:`lib.contentElement` is now used for `CSC` and `FSC`
and replaces the usage of :typoscript:`lib.fluidContent`. The generated code was slightly
adjusted to match the requirements of all content rendering definitions and can be
adapted to the specific needs of a content element rendering definition anytime
since a reference is used now instead of a hard definition.
Generated code before change
----------------------------
.. code-block:: typoscript
tt_content.myce = COA
tt_content.myce {
10 =< lib.stdheader
20 =< plugin.myContent
}
Generated code after change
---------------------------
.. code-block:: typoscript
tt_content.myce =< lib.contentElement
tt_content.myce {
templateName = Generic
20 =< plugin.myContent
}
CSS Styled Content
------------------
CSS Styled Content adds the missing :typoscript:`lib.stdheader` and everything works as
before, no migration or adjustments to your code necessary. Because :typoscript:`COA`
does not understand the option :typoscript:`templateName` it will simply be ignored.
.. code-block:: typoscript
lib.contentElement = COA
lib.contentElement {
10 =< lib.stdheader
}
Fluid Styled Content
--------------------
Fluid Styled Content adds the logic it needs through :typoscript:`lib.contentElement`.
All content elements registered through the TYPO3 APIs will now share a
multifunctional `Generic` template. That will provide the necessary layouts
and overriding options known from FSC.
.. code-block:: typoscript
lib.contentElement = FLUIDTEMPLATE
lib.contentElement {
templateRootPaths {
0 = EXT:fluid_styled_content/Resources/Private/Templates/
10 = {$styles.templates.templateRootPath}
}
partialRootPaths {
0 = EXT:fluid_styled_content/Resources/Private/Partials/
10 = {$styles.templates.partialRootPath}
}
layoutRootPaths {
0 = EXT:fluid_styled_content/Resources/Private/Layouts/
10 = {$styles.templates.layoutRootPath}
}
...
}
.. code-block:: html
This templates is used to provide necessary functionality for external processed content and could be used across multiple sources, for example the frontend login content element.
{content -> f:format.raw()}
The TypoScript object :typoscript:`lib.fluidContent` will be kept as copy of :typoscript:`lib.contentElement`
for compatibility for the duration of TYPO3 v8 LTS and will be removed in TYPO3 v9.
Impact
======
Assignments and overrides made directly to :typoscript:`lib.fluidContent` are not recognized
anymore for core content elements provided by Fluid Styled Content. They need to be
migrated to :typoscript:`lib.contentElement`. Only not modified versions of :typoscript:`lib.fluidContent`
will keep working as expected.
Affected Installations
======================
Installations that directly modify :typoscript:`lib.fluidContent`.
Migration
=========
Rename assignments and modifications to :typoscript:`lib.contentElement`.
.. index:: Fluid, Frontend, TypoScript, ext:fluid_styled_content