Files
typo3-13/packages/ep_theme/Configuration/TypoScript/ContentElements/container.typoscript
T
frommeandClaude Opus 5.5 4172ed978d feat: gridelements grids become container elements
TYPO3 13 does not know gridelements_pi1, so grids rendered nothing: the
inquiry form on /haus-christiler/ was missing. The five grid layouts are
container CTypes now (ep_container_halves, _thirds, _columns_quarters,
_half_and_two_quarters, _two_quarters_and_half; colPos 201-243) with the
TYPO3 10 templates ported. TwoQuartersAndHalf had no setup and output the
wrong columns; it renders its own columns now. As before, no container
inside these columns and the column rules of the old TSconfig apply.

ep:migrate-gridelements converts the data in place (plain SQL, idempotent,
--dry-run and --report): grids get their container CType, children in a
valid column move into it. Children in a column their layout lacks and
leftovers whose parent is no grid any more were invisible in TYPO3 10 and
are soft deleted. TYPO3 10 did not apply defaultHeaderType inside grids,
so text/textmedia/textpic children with header layout "default" get
"hidden" to keep their headers invisible.

Checked against TYPO3 10 on the 101 pages with grids that TYPO3 13 renders:
the container markup is identical; remaining differences are inside not
yet ported child elements.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 17:41:40 +02:00

79 lines
2.2 KiB
Plaintext

# Column layouts (formerly gridelements)
tt_content.ep_container_halves =< lib.contentElement
tt_content.ep_container_halves {
templateName = Halves
templateRootPaths {
10 = EXT:ep_theme/Resources/Private/Templates/Container
}
dataProcessing {
100 = B13\Container\DataProcessing\ContainerProcessor
}
}
tt_content.ep_container_thirds =< lib.contentElement
tt_content.ep_container_thirds {
templateName = Thirds
templateRootPaths {
10 = EXT:ep_theme/Resources/Private/Templates/Container
}
dataProcessing {
100 = B13\Container\DataProcessing\ContainerProcessor
}
}
tt_content.ep_container_columns_quarters =< lib.contentElement
tt_content.ep_container_columns_quarters {
templateName = ColumnsQuarters
templateRootPaths {
10 = EXT:ep_theme/Resources/Private/Templates/Container
}
dataProcessing {
100 = B13\Container\DataProcessing\ContainerProcessor
}
}
tt_content.ep_container_half_and_two_quarters =< lib.contentElement
tt_content.ep_container_half_and_two_quarters {
templateName = HalfAndTwoQuarters
templateRootPaths {
10 = EXT:ep_theme/Resources/Private/Templates/Container
}
dataProcessing {
100 = B13\Container\DataProcessing\ContainerProcessor
}
}
tt_content.ep_container_two_quarters_and_half =< lib.contentElement
tt_content.ep_container_two_quarters_and_half {
templateName = TwoQuartersAndHalf
templateRootPaths {
10 = EXT:ep_theme/Resources/Private/Templates/Container
}
dataProcessing {
100 = B13\Container\DataProcessing\ContainerProcessor
}
}
# Teaser rows
tt_content.ep_container_quarters =< lib.contentElement
tt_content.ep_container_quarters {
templateName = Quarters
templateRootPaths {
10 = EXT:ep_theme/Resources/Private/Templates/Container
}
dataProcessing {
100 = B13\Container\DataProcessing\ContainerProcessor
}
}
tt_content.ep_container_teasergroup =< lib.contentElement
tt_content.ep_container_teasergroup {
templateName = Teasergroup
templateRootPaths {
10 = EXT:ep_theme/Resources/Private/Templates/Container
}
dataProcessing {
100 = B13\Container\DataProcessing\ContainerProcessor
}
}