Repository navigation
5.3.56 — Classes in the RTE, backend layout inheritance
New — "Classes" in the RTE toolbar
Requested by a user of the Columns tool: a dropdown right behind Columns that
sets Bootstrap utility classes on the row and on a single column — gutter,
alignment, padding, border.
The list has two groups, Row and Column, and every entry is a switch; the
panel stays open, because several classes are almost always set together. Outside
a column row the button is off and the tooltip says why, otherwise it names the
classes currently set. Width classes are not offered and cannot be removed — the
column layout belongs to the Columns tool.
Nothing new reaches the markup: the classes go into the same model attribute in
which Columns has always preserved foreign classes and written them back
unchanged. A class someone typed in the source view shows up as set.
The project decides what is offered. The list lives in the RTE YAML as
t3sbClassPicker, split into row and col. A sitepackage renames an entry,
drops it with null, or adds its own; one entry may carry several classes, set
and removed together. There is deliberately no free-text field. A map and not a
list on purpose: TYPO3 merges imported YAML by key and appends plain lists, so
only this form lets a sitepackage override a single entry.
Switchable off like every other tool: rteClasses in the extension configuration
under RTE, overridable per page tree through RTE.t3sbootstrap.features.
Fixed — "Backend layout (subpages of this page)" was never inherited
Choosing a backend layout for subpages had no effect: a newly created subpage
still showed "1 column". The extension's page TSconfig carried
TCAdefaults.pages.backend_layout = pagets__OneCol, which wrote the layout into
every new page's own field — and inheritance only applies while that field is
empty, in the backend through BackendLayoutView and in the frontend through
override.field = backend_layout. The setting was never broken, it was always
overruled. The default is removed; with no layout set, OneCol still applies.
Existing pages keep what is stored in their database row. An upgrade wizard is not
possible here, because a deliberately chosen "1 column" is indistinguishable from
a defaulted one — clear the field on those subpages to let inheritance take over.
Upgrade
No new database columns, no upgrade wizard. Flush the caches after updating.