Hallo,
ich suche eine Lösung, um ein Menü abhängig von der aktuellen Seite in zwei Teile zu teilen, sodass sich folgende Möglichkeit ergibt:
Wenn ich auf Seite 1 bin:
(Menüpunkt 1)
Seiteninhalt Seite 1
Menüpunkt 2
Menüpunkt 3
Menüpunkt 4
Menüpunkt 5
Wenn ich auf Seite 2 bin:
Menüpunkt 1
(Menüpunkt 2)
Seiteninhalt Seite 2
Menüpunkt 3
Menüpunkt 4
Menüpunkt 5
Wenn ich auf Seite 3 bin:
Menüpunkt 1
Menüpunkt 2
(Menüpunkt 3)
Seiteninhalt Seite 3
Menüpunkt 4
Menüpunkt 5
Wenn ich auf Seite 4 bin:
Menüpunkt 1
Menüpunkt 2
Menüpunkt 3
(Menüpunkt 4)
Seiteninhalt Seite 4
Menüpunkt 5
Wenn ich auf Seite 5 bin:
Menüpunkt 1
Menüpunkt 2
Menüpunkt 3
Menüpunkt 4
(Menüpunkt 5)
Seiteninhalt Seite 5
Das ganze sollte dynamisch funktionieren, um ein späteres Hinzufügen oder Entfernen von Seiten im Seitenbaum zu ermöglichen. Momentan habe ich es pro Unterseite per Condition gelöst, was zwar funktioniert, jedoch diese dynamik verhindert. Ob der jeweils aktuelle Menüpunkt (in Klammern) gezeigt wird oder nicht, spielt keine große Rolle, da ich diesen ggf. aus dem Seitentitel generieren und per TS von Hand hinzufügen kann.
Basierend auf diesem Beitrag:
#89692
und der Lösung unter:
http://www.typo3wizard.com/de/snippets/menus/menue-dynamisch-in-2-teile-aufteilen.html
habe ich einen TypoScript-Schnipsel, welcher mein Menü in zwei Teile teilt:
lib.naviabove = COA
lib.naviabove {
10 = HMENU
10.special = directory
10.special.value = 1
10.1 = TMENU
10.1 {
wrap = <div>1.teil<br>|</div>
NO {
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10.field = title
if.value.data = register:count_HMENU_MENUOBJ
if.negate = 1
if.isLessThan.prioriCalc = 1
if.isLessThan.cObject = TEXT
if.isLessThan.cObject.insertData = 1
if.isLessThan.cObject.value = ({register:count_menuItems}+1)/2
wrap = |<br>
}
}
}
}
lib.navibeneath = COA
lib.navibeneath {
10 = HMENU
10.special = directory
10.special.value = 1
10.1 = TMENU
10.1 {
wrap = <div>2.teil<br>|</div>
NO {
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10.field = title
if.value.data = register:count_HMENU_MENUOBJ
if.isLessThan.prioriCalc = 1
if.isLessThan.cObject = TEXT
if.isLessThan.cObject.insertData = 1
if.isLessThan.cObject.value = ({register:count_menuItems}+1)/2
wrap = |<br>
}
}
}
}
Anhand der Zeile:
if.isLessThan.cObject.value = ({register:count_menuItems}+1)/2
wird die Gesamtmenge der Menüeinträge durch zwei geteilt und im ersten Teilmenü die erste und im zweiten Teilmenü die zweite Hälfte der Menüeinträge angezeigt.
Wie kann ich das Skript nun modifizieren, um die Teilung der Menüpunkte nicht in der Mitte, sondern anhand der gerade aktiven Seite vorzunehmen? Sämtliche Versuche die entsprechende Zeile (oder andere Zeilen) anzupassen, sowie mehr als 6 Stunden Recherche in diversen Büchern, Foren und bei Google haben leider bei diesem Problem nicht geholfen.
Hat hier Jemand einen Tipp?
Vielen Dank!
Thomax