Hallo Leute, dies ist mein erstes Posting hier. Ich arbeite gerade an meinem ersten TYPO3-Projekt und bin, bis auf zwei Kleinigkeiten, fast fertig.
Meine Webseite hat eine horizontale Navi, die als Untermenu fürs Hauptmenü dient. In dieser Navi soll der jeweils aktive Artikel markiert werden. Das klappt auch, solange ich mich direkt im Artikel befinde.
Abb.1: Artikel ist ausgewählt und markiert
Home
...|_Menupunkt
*......|_Artikel
...........|_Unterseite
Wenn ich jetzt die Unterseite des Artikels wähle, dann ist diese Unterseite markiert.
Abb.2: Unterseite ist gewählt und markiert
Home
...|_Menupunkt
......|_Artikel
*............|_Unterseite
Ich möchte aber, dass der Artikel markiert bleibt. Was muss ich ändern?
Abb.3: Soll-Zustand.
Home
...|_Menupunkt
......|_Artikel
*.........|_Unterseite
Hier ist das verwendete TYPO-Skript:
temp.nav_main = COA
temp.nav_main.1 = HMENU
temp.nav_main.1 {
entryLevel = 1
1 = TMENU
1 {
wrap = <ul>|</ul>
noBlur = 1
# no state: normale Formatierung
NO = 1
NO.wrapItemAndSub = <li>|</li>
# cur state: gültig für die aktuelle Seite
CUR = 1
CUR < .NO
CUR.allWrap = <li id="current">|</li>
# sub state: gültig für Menüelemente mit Unterseiten.
IFSUB = 1
IFSUB.wrapItemAndSub = <li>|</li>
ACTIFSUB < .IFSUB
}
}
# Seiten ohne Unterseiten haben leider keine Navi, also muss ich die hiermit einblenden.
#Wäre super, wenn wir das auch noch erledigen könnten.
[globalVar = TSFE:id=37, TSFE:id=71, TSFE:id=72, TSFE:id=112, TSFE:id=143, TSFE:id=145]
temp.nav_main.20.wrap = <ul><li> | </li></ul>
temp.nav_main.20 = TEXT
temp.nav_main.20.value =
[global]
Hallo und willkommen im Forum,
kein Wunder dass da nichts angezeigt wird, du willst es ja auch nicht anders, denn ACTIFSUB.wrapItemAndSub ist bei dir <li>|</li>... gib dem Zustand einen eigenen Tag und style das per CSS
georg
Sauber!! Vor 6 Minuten erst gefragt, und schon eine Antwort, und sogar die richtige! Vielen Dank!
Habe den Code jetzt dementsprechend angepasst:
# sub state: gültig für Menüelemente mit Unterseiten.
IFSUB = 1
IFSUB.wrapItemAndSub = <li>|</li>
# actifsub state: gültig für Menüelemente mit Unterseiten, die in der rootLine gefunden wurden.
ACTIFSUB = 1
ACTIFSUB.wrapItemAndSub = <li id="current">|</li>
Das ist ja klasse. Weiß vielleicht noch jemand, wie ich das mit den Seiten OHNE Unterseiten eleganter lösen kann (siehe TYPO-Skript in meinem ersten Post unten)?
noch ein Hinweis: current wird dann 2x verwendet, sollte also eine class="current" sein um konform zu sein
das 2. Problem versteh ich leider nicht
georg
Es wird immer nur eine Ebene zur Zeit angezeigt, und deswegen ist auch immer nur ein Menupunkt "current".
Das zweite Problem habe ich nicht gut genug beschrieben. Es geht darum, dass Seiten, die keine Unterseiten mehr haben, auch keine nav_main haben also auch keine <ul>...
Diese <ul> (Zeile 7) ist aber ein wichtiges Gestaltungselement, das nicht fehlen darf. Für Seiten ohne Unterseiten blende ich also ein <ul><li> </li></ul> ein. Geht das nicht einfacher?
Meine Güte, seit drei Wochen nur noch TYPO3 und ich denke immer noch so kompliziert. Aber ich bin trotzdem begeistert.
Hi,
habe noch einen Fehler gefunden: Der aktive Menüpunkt, der auch noch Unterseiten hat, wird doppelt gewrappt. Das sieht dann so aus:
<ul>
<li>
<li id="current"><a href="index.php?id=2">Punkt 1</a></li>
</li>
<li><a href="index.php?id=3">Punkt 2</a></li>
<li><a href="index.php?id=4">Punkt 3</a></li>
<li><a href="index.php?id=5">Punkt 4</a></li>
</ul>
hier das Typoscript:
1 = TMENU
1 {
wrap = <ul>|</ul>
noBlur = 1
# no state: normale Formatierung
NO = 1
NO.wrapItemAndSub = <li>|</li>
# cur state: gültig für die aktuelle Seite
CUR = 1
CUR < .NO
CUR.allWrap = <li id="current">|</li>
# sub state: gültig für Menüelemente mit Unterseiten.
IFSUB = 1
IFSUB.wrapItemAndSub = <li>|</li>
# actifsub state: gültig für Menüelemente mit Unterseiten, die in der rootLine gefunden wurden.
ACTIFSUB = 1
ACTIFSUB.wrapItemAndSub = <li id="current">|</li>
}
Ich möchte den doppelten Wrap entfernen. Muss ich da mit einer Abfrage arbeiten, oder habe ich was ganz einfaches übersehen? Vielen Dank schonmal fürs Lesen![/b]
du kannst nicht 1x wrapItemAndSub verwenden und 1x allWrap.
Lösung: einfach nur wrapItemAndSub nehmen
CUR.wrapItemAndSub= <li id="current">|</li>
georg
Danke sehr, das hat funktioniert, und war auch einleuchtend. Problem gelöst.