edit: Beitrag noch mal stark geändert, weil die Code-Beispiele nicht sauber dargestellt wurden. Habe die Dateien angehängt, wenn jemand Interesse hat.
Hallo zusammen,
im Kurs zu TYPO3 13 hatte mich die Geschichte mit den doppelten Containern im Footer "gestört", was per CSS gelöst wurde. Irgendwie hat mich das dann nicht los gelassen und ich habe mich gefragt, ob ich nicht für jeder Contentelement selbst festlegen könnte, ob es eine Section und ein Div mit der Klasse Container haben soll.
Kurz gesagt: Es funktioniert!
Hier meine Lösung, vielleicht hilft sie euch weiter oder gibt euch einen Impuls.
Felder im Backend anlegen
akoesitepackage/Configuration/TCA/Overrides/tt_content.php
Ich habe das TCA von tt_content erweitert. Dort gibt es jetzt im Backend einen neuen Reiter (z. B. »Wrap Options«), unter dem man auswählen kann:
Soll das Element in einer Section liegen?
Welche ID oder Klassen soll diese Section bekommen?
Soll innerhalb der Section ein Container verwendet werden?
Welcher Container-Typ (z. B. .container, .container-xl, etc.)?
Zusätzliche Klassen für diesen Container?
Sprachlabels übersetzen
akoesitepackage/Resources/Private/Language/locallang.xlf
Die Auswahloptionen für Klassen, Container-Typen usw. habe ich in einer eigenen Sprachdatei organisiert. So bleibt alles sauber getrennt und leicht übersetzbar.
Ausgabe im Template anpassen
akoesitepackage/Resources/Private/Extensions/fluid_styled_content/Layouts/Default.html
Im Fluid-Template von fluid_styled_content, welches im Kurs schon gändert wurde, habe ich Bedingungen eingebaut, die den HTML-Wrap nur dann ausgeben, wenn die Felder im Backend aktiv sind und die Klassen und IDs entsprechend ausgeben.