Manchmal erfordert das Screendesign, dass man Überschriften aus den Seitenelementen mehrzeilig darstellt.
Das geht ganz einfach – man muss diesen TypoScript-Code lediglich in das Setup-Feld (auf deutsch „Konfiguration“) eintragen:
// break row in headings (with two hashes as placeholder) lib.stdheader.10.setCurrent.htmlSpecialChars = 0 lib.stdheader.10.setCurrent.split { token = ## cObjNum = 1 |*| 1 |*| 1 || 0 1.current = 1 1.wrap = |<br /> 1.htmlSpecialChars = 1 } // no break row in sitemaps tt_content.menu.stdWrap.split < lib.stdheader.10.setCurrent.split tt_content.menu.stdWrap.split { 1.wrap > 1.noTrimWrap = || | 1.htmlSpecialChars > } |
Nun kann man mit dem Platzhalter „##“ einen Umbruch in Überschriften erzwingen.
Da von der split-Anweisung auch die Links bei Überschriften betroffen sind, sollte man als token keine Zeichen verwenden, die in einem Link verwendet werden könnten, schlecht ist also z.B. # (eine Raute) oder _ (Unterstrich): <a target=“_blank“ href=“#top“ …>
Problematisch wird es, wenn das Überschriften-Feld noch an anderen Stellen auf der Webseite verwendet wird, z.B. im Inhaltselement „Menü/Sitemap“: hier gibt es den Menü-Typ „Abschnittsübersicht“, der alle Überschriften einer Seite ausgibt. Die letzten paar Zeilen in dem obigen TypoScript-Code verhindert dies (Herzlichen Dank an Jan Bartels für diese Lösung). Auch bei diversen TYPO3-Erweiterungen, welche die Überschrift ausgeben und diese womöglich direkt aus der Datenbank auslesen, hat man dieses Problem. An diesen Stellen wird der Platzhalter angezeigt, wenn dieser nicht entfernt bzw. ersetzt wird.
Alternativ kann man das Überschriften-Feld auch als Textarea anlegen und die Umbrüche darin durch den HTML-Tag „<br>“ ersetzen. Oder aber man trägt den HTML-Code direkt in das Überschriften-Feld ein, in diesem Fall muss man aber verhindern, dass dieser sichtbar ausgegeben wird:
lib.stdheader.10.setCurrent.htmlSpecialChars > |
Ich verwende eine andere cObjNum. Das erleichtert den wrap.
lib.stdheader.10.setCurrent.htmlSpecialChars = 0
lib.stdheader.10.setCurrent.split {
token = |
cObjNum = 1 |*| 1 |*| 1 ||0
1.current = 1
1.wrap = |<br />
1.htmlSpecialChars = 1
}
Hallo Fritz,
vielen Dank für deinen Beitrag. Dein TypoScript gefällt mir besser, es ist schlanker und man muss es nicht auf alle verfügbaren Überschriften-Typen anwenden, ich habe es daher für diesen Artikel übernommen.
Hi, coole Funktion.
Nur leider gebe ich bei mir die Überschriften auch im HTML Quelltext als Title aus.
Jetzt funktioniert das nichtmehr… Habe schon alles probiert, aber geht leider nicht.
Hättet ihr ein paar Tipps?
headerData.1 = TEXT
headerData.1.field = subtitle
headerData.1.stdWrap.noTrimWrap = |||
Hi Marcel,
ich verstehe nicht, was du meinst. Da du etwas von „headerData“ und „subtitle“ schreibst, vermute ich, deine Frage bezieht sich auf Seiten (pages) und nicht auf Seiteninhalte (tt_content). Oben geht es aber um Überschriften von Seiteninhalten.
Danke für das Snippet, funktioniert bei mir auch noch unter TYPO3 6.2 :)