Problem: Man möchte ein TMENU mit mehrzeiligem Text in den Menüpunkten erzeugen. Dazu kann man eine Kombination aus einem COA und dem splitChar verwenden. Hier wird das Trennzeichen chr(13) verwendet.
Als TypoScript für den Menüaufbau verwendet man:
1 = TMENU
1.wrap = |
1.expAll = 0
1.NO = 1
1.NO {
wrapItemAndSub =
- |
| 1.20.required = 1 stdWrap.field > stdWrap.cObject = TEXT stdWrap.cObject < .1 }
Um die Felder "Navigations-Titel" (nav_title) und "Seiten-Titel" (title) im Backend mehrzeilig zu machen kann man die Datei extTables.php um folgende Zeilen ergänzen:
$TCA['pages']['columns']['title']['config']['type'] = 'text';
$TCA['pages']['columns']['title']['config']['rows'] = '2';
$TCA['pages']['columns']['nav_title']['config']['type'] = 'text';
$TCA['pages']['columns']['nav_title']['config']['rows'] = '2';
Update 2014:
Alternativ zum Beispiel oben funktioniert es auch so:
1 = TMENU
1.wrap = |
1.expAll = 0
1.NO = 1
1.NO {
wrapItemAndSub =
- |
| trim = 1 } } }
Dankedankedankeschön!
Nach vielen Versuchen mit ähnlichen Anleitungen (die für den content alle wunderbar funktioinieren, nicht aber für Menüs) hat mir dein wrap-Tipp endlich die Lösung gebracht.
Großartig – schön, dass es solch tolle Inhalte und Inhalteschreiber im Netz gibt!
Hallo,
ich habe gerade so etwas gesucht. Jetzt frage ich mich nur, wie ich in meinem Seitenbaum CHR(13) eingebe?
Die Zeilen darüber ($TCA[‚pages‘][‚columns‘] ….) machen das Feld für den Navigations-Titel mehrzeilig. Das sieht man bei Klick auf ein Blatt-Icon im Seitenbaum und dann unter den Seiteneigenschaften.
Hier kann der Umbruch eingegeben werden.
Hallo,
ich habe mein typo soweit angepasst, allerdings wird das als <br/> ausgegeben… Woran kann das liegen?
…OK html. du willst mich testen… also was ich meinte ist, dass das <br/> immer als <br/> ausgegeben wird.
Ahja. Habs gefunden.
htmlSpecialChars = 1
erzeugte den Fehler.
Für Noobs wie mich noch zur Ergänzung:
Das ganze muss auch noch in
den jeweiligen Parameter „ACT“ rein:
1.ACT = 1
1.ACT {
…
}
Danke für den Code, klappt gut, jedoch habe ich noch folgendes ergänzt, damit HTML Entities auch escaped werden und damit nicht immer am Ende ein unerwünschtes BR erscheint. Außerdem habe ich den Code „ausgelagert“, so dass er leicht an mehreren Stellen (CUR, IFSUB, ACT, …) eingesetzt werden kann.
[CODE]
lib.lineBreakNav = COA
lib.lineBreakNav {
10 = TEXT
10 {
field = nav_title // title
listNum = 0
listNum.splitChar = 13
stdWrap.htmlSpecialChars = 1
}
20 < .10
20 {
listNum = 1
required = 1
wrap = |
trim = 1
stdWrap.htmlSpecialChars = 1
}
}
1.NO {
wrapItemAndSub = |
stdWrap.cObject < lib.lineBreakNav
}
1.ACT = 1
1.ACT {
wrapItemAndSub = |
stdWrap.cObject < lib.lineBreakNav
}
[/CODE]
Da ich nicht die TCA verändern wollte, verwende ich gerne eine doppelte Pipe (||) als Trennzeichen (was für den Redakteur natürlich nicht so intuitiv ist wie bei deinem Beispiel). Hierfür muss man den splitChar = 124 anstatt 13 verwenden und da es zwei Trennzeichen sind muss auch die 20.listNum = 2 gesetzt werden.
Viele Grüße
Christian