Guten Abend allerseits,
ich habe ein Menu ab der 2. Ebene und lasse über diesem Menu den Navigationspunkt der 1. Ebene ausgeben.
Wenn ein Navigationspunkt 1. Ebene keine weiteren Unterpunkte hat, dann soll eine andere Navigation ausgegeben werden (bei mir ein paar News-Seiten).
Das löse ich so:
# Name des Hauptnavigationspunktes
tmp.titleLevel1 = TEXT
tmp.titleLevel1 {
data = fullRootLine : 1, nav_title // fullRootLine : 1, title
required = 1
wrap = <div id="titleLevel1">|</div>
}
# NaviMain Ebene 2+
tmp.naviMain2 = HMENU
tmp.naviMain2 {
entryLevel = 1
1 = TMENU
1 {
wrap = <ul id="naviMain2">|</ul>
NO ...
ACT ...
}
2 = TMENU
2 {
wrap = <ul>|</ul>
NO ...
ACT ...
}
3 = TMENU
3 {
wrap = <ul>|</ul>
NO ...
ACT ...
}
}
tmp.naviNews = COA
tmp.naviNews {
# Name des Hauptnavigationspunktes (News)
# 5 = TEXT
# 5 {
# data = DB : pages : 8 : title
# required = 1
# wrap = <div id="titleLevel1">|</div>
# }
# 5.stdWrap.override.cObject < tmp.titleLevel1
# 5.stdWrap.override.if.isTrue.cObject < tmp.naviMain2
# HIER STECKT MEIN PROBLEM
# Wenn Navigation 2. Ebene vorhanden ist,
# dann soll "tmp.titleLevel1" geladen werden
# - ansonsten "tmp.naviNews.5".
# Das News-Menu anzeigen
10 = HMENU
10 {
special = directory
special.value = {$pid.news}
1 = TMENU
1 {
wrap = <ul id="naviMain2">|</ul>
NO ...
ACT ...
}
2 = TMENU
2 {
wrap = <ul>|</ul>
NO ...
ACT ...
}
3 = TMENU
3 {
wrap = <ul>|</ul>
NO ...
ACT ...
}
}
# ODER: wenn vorhanden die Unterpunkte anzeigen
10.stdWrap.override.cObject < tmp.naviMain2
}
# Ab in einen Marker damit
page.10.marks.NAVI_MAIN2 < tmp.naviNews
(Bei "..." habe ich stark gekürzt, um es übersichtlicher zu gestalten.)
Die Anzeige der passenden Navigation (News anzeigen, wenn aktuelle Navigation keine 2. Ebene hat) funktioniert prima.
Das Problem ist nur der Titel aus dem Level1. Hier funktioniert das mit dem "override" ja nicht, weil der 1. Level ist immer vorhanden.
Wie kann ich eine Abfrage machen, ob ein cObject vorhanden ist und wenn ja, dann ein anderen "overriden"?
Vielen Dank schon mal im vorraus für Tipps.
Gruß sunixzs
EDIT: Folgendes scheint zu funktionieren...
tmp.naviNews = COA
tmp.naviNews {
# Name des Hauptnavigationspunktes
5 = TEXT
5 {
data = DB : pages : 8 : title
required = 1
wrap = <div id="titleLevel1">|</div>
}
5.stdWrap.override.cObject < tmp.titleLevel1
5.stdWrap.override.if.isTrue.cObject < tmp.naviMain2
...
(Keine Ahnung warum das vorher nicht ging)