Überschriften mit Umbruch in TYPO3

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 >

5 Kommentare zu “Überschriften mit Umbruch in TYPO3”

  1. 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
    }

  2. 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.

  3. 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 = |||

  4. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.