Hallo,
ich bin neu in TYPO3 und grübel nun schon rund 2 Stunden über einem Problem. Das Forum konnte mir nur Ansatzweise weiterhelfen.
Mein anliegen:
Ich hab ein auf Tabs basierendes horizontales Menü. Dort sollen die Seiten der 1. Ebene angezeigt werden. Klappt! Doch unter dem Namen der jeweiligen Seite soll der Subtitle stehen. Hier ein Ausschnitt meines TS:
# Menu 1 cObject
temp.tab_menu_1 = HMENU
temp.tab_menu_1.1 = TMENU
temp.tab_menu_1.1 {
# Normal state properties
NO {
wrapItemAndSub = <li>|</li>
allWrap.insertData = 1
stdWrap.htmlSpecialChars = 1
ATagTitle.field = subtitle//title
ATagParams.insertData = 1
linkWrap = | <br><span> => SUBTITLE HIER <= </span>
ATagBeforeWrap = 1
ATagParams = class="passive"
}
# Enable active state and set properties:
ACT = 1
ACT.ATagParams = class="active"
ACT.allWrap = <li> | </li>
}
Das ganze muss natürlich für ACT auch definiert werden. Aber hier erstmal vernachlässigt. Die Stelle wo Subtitle auftauchen soll ist mit "=> SUBTITLE HIER <=" markiert.
So, hoffe mal das mir jemand helfen kann 🙂
Danke schonmal für jede Hilfe!
Hi,
du kannst einfach den afterWrap (oder so ähnlich -> Schau mal in der TS-Referenz) nehmen, bei dem du ein cObject einfügen kannst. Für dieses Object setzt du dann das Field auf "subtitle" und kannst es entsprechend wrappen....
Gruß
Malte
Wenn beides den selben Link haben kann, dann würde ich append nehmen. Es handelt sich dabei einfach um ein Objekt, das dem Inhalt folgt.
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Stdwrap.html
Wenns keinen Link braucht, oder keinen haben soll, dann würde ich after (nicht afterWrap) nehmen.
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Hmenu/Tmenu/Tmenuitem.html
Ansonsten bleibt auch noch die Möglichkeit das mit einem COA zu machen.
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/CoaAndCoaInt/Index.html
Hallo,
danke erstmal aber öhm leider verstehe ich nicht was ihr mir sagen wollt. Beschäftige mich erst seit dem WE mit TS und das ist schon sehr mächtig.
@SLAng
Das ist einfach ein Menü der ersten Ebene. Haben also alle einen unterschiedlichen Link.
Mit dem Link soll der Subtitle der verlinkten Seite angezeigt werden.
Vielleicht ist es so etwas klarer 🙁
MfG
Na dann würde ich es mit append machen: (bei dem br musst den Unterstrich natürlich rausnehmen
temp.tab_menu_1 = HMENU
temp.tab_menu_1.1 = TMENU
temp.tab_menu_1.1 {
# Normal state properties
NO {
wrapItemAndSub = <li>|</li>
allWrap.insertData = 1
stdWrap {
htmlSpecialChars = 1
append = TEXT
append {
field = subtitle
wrap = <br_/><span>|</span>
}
}
ATagTitle.field = subtitle//title
ATagParams.insertData = 1
ATagBeforeWrap = 1
ATagParams = class="passive"
}
# Enable active state and set properties:
ACT = 1
ACT.ATagParams = class="active"
ACT.allWrap = <li> | </li>
}
Hi SLAng,
das klappt. Danke! Da wäre ich so wohl erstmal nicht drauf gekommen.
Grüße
Hallo SLang,
danke für den Code, ich hatte eine schlanke Version bei der ich aber am html encoden gescheitert bin. Aber vorenthalten möchte ich sie nich, da sehr kompakt. Hier der Ausschnitt ohne die ATag Settings:
NO {
stdWrap.wrap.insertData = 1
stdWrap.wrap = | <br/><span>{field:subtitle}</span>
wrapItemAndSub = <li> | </li>
}
Bei deinem Script ist mir aufgefallen, dass die Werte von Subtitle nicht als html special chars ausgegeben werden, spricht ein Subtitle "Das <ist> toll" würde als "Das toll" angezeigt. Außerdem gab es einige unnötige Zeilen. Hier also für's Archiv und für Leute, die ebenfalls eine entsprechende Lösung suchen, der korrigierte Code, der zusätzlich auch den Zeilenumbruch und den Span weg lassen, wenn kein Subtitle vorhanden ist.
NO {
stdWrap {
append = TEXT
append {
field = subtitle
wrap = <br/><span> | </span>
htmlSpecialChars = 1
required = 1
}
}
wrapItemAndSub = <li> | </li>
ATagTitle.field = subtitle//title
ATagParams = class="passive"
}
Happy TYPO
Christian