hallo zusammen,
ich möchte gern ein menü mit mehreren ebenen realisieren.
dieses soll jeweils die erste ebene anzeigen und die anderen ausblenden. erst bei klick auf eine seite mit unterseite(n) werden diese angezeigt (mit anderer css klasse).
ich bin nun so weit, das mir die erste ebene angezeigt wird und der rest ausgeblendet ist.
mein problem ist nur jetzt - wie setze ich es um, das bei klick unterseiten erscheinen?
mein ts:
SUB_MENU = HMENU
SUB_MENU.special = directory
SUB_MENU.special.value = 12
SUB_MENU.entryLevel = 2
SUB_MENU {
1 = TMENU
1 {
showAccessRestrictedPages = 139
expAll = 1
wrap = <ul id="nav">|</ul>
noBlur = 1
NO = 1
NO.wrapItemAndSub = <li>|</li>
IFSUB = 1
IFSUB.wrapItemAndSub = <li class="havesub">|</li>
ACTIFSUB < .IFSUB
}
2 < .1
2.wrap = <ul id="issub">|</ul>
3 < .2
4 < .2
}
ich hoffe ihr könnt helfen...
lg, nick
Beispiel für solch ein Menü:
temp.limenu = HMENU
temp.limenu {
special = directory
special.value = 1
wrap = <h2 style="display: none;">Haupt-Navigation:</h2>|
1 = TMENU
1 {
wrap = <ul class="mainmenu">|</ul>
noBlur = 1
NO.ATagTitle.field = subtitle // title
NO.allWrap = <li>|</li>
NO.ATagParams = class="no"
NO.stdWrap.htmlSpecialChars = 1
ACT = 1
ACT.wrapItemAndSub = <li>|</li>
ACT.ATagTitle.field = subtitle // title
ACT.ATagParams = class="act"
ACT.stdWrap.htmlSpecialChars = 1
}
2 < .1
3 < .1
}
page.10.marks.left < temp.limenu
Per CSS lassen sich übrigens auch die einzelnen Ebenen ohne Klassenvergabe ansprechen:
ul.mainmenu li { blabla für die erste ebene }
ul.mainmenu li ul li { blabla für die zweite ebene}
ich weiß nicht genau, ob du das meinst was ich meine 🙂
also ich habe folgende struktur:
seite1
--unterseite
--unterseite2
seite2
--unterseite1
usw.
nun möchte ich beim aufruf der seite nur jeweils die übergeordneten seiten im menü darstellen (seite1,seite2). erst beim klick auf seite1 oder seite 2, sollen zusätzlich zum jetzigen menü, die unterseiten der aktiven übergeordneten seite erscheinen.
weißt du was ich meine?
ich habe nun folgendes ts:
SUB_MENU = HMENU
SUB_MENU.special = directory
SUB_MENU.special = directory
SUB_MENU.special.value = 12
SUB_MENU.entryLevel = 1
SUB_MENU {
1 = TMENU
1 {
showAccessRestrictedPages = 139
expAll = 1
wrap = <ul id="nav">|</ul>
noBlur = 1
NO = 1
NO.allWrap = <div id="nav_no_active"> | </div>
NO.wrapItemAndSub = <li>|</li>
ACT = 1
ACT < .NO
ACT.allWrap = <div class="nav_level_act"> | </div>
#IFSUB = 1
#IFSUB.wrapItemAndSub = <li class="menusub">|</li>
#ACTIFSUB < .IFSUB
}
2 = TMENU
2{
showAccessRestrictedPages = 139
expAll = 1
wrap = <ul id="nav2">|</ul>
noBlur = 1
NO = 1
NO.allWrap = <div id="nav2_no_active"> | </div>
NO.wrapItemAndSub = <li>|</li>
ACT < .NO
ACT = 1
ACT.allWrap = <div class="nav2_level_act"> | </div>
IFSUB = 1
IFSUB.wrapItemAndSub = <li class="menusub">|</li>
ACTIFSUB < .IFSUB
}
2.wrap = <ul id="sub">|</ul>
3 < .2
4 < .2
}
die html ausgabe ist folgend:
<ul id="nav"><li><div id="nav_no_active"><a href="index.php?id=11">Standorte</a></div></li><li><div id="nav_no_active"><a href="index.php?id=10">Das haben Sie davon</a></div></li><li><div class="nav_level_act"><a href="index.php?id=9">Kontakt</a></div><ul id="sub"><li><div id="nav2_no_active"><a href="index.php?id=13">Kontaktformular</a></div></li></ul></li><li><div id="nav_no_active"><a href="index.php?id=8">Kataloge</a></div></li><li><div id="nav_no_active"><a href="index.php?id=7">Impressum</a></div></li><li><div id="nav_no_active"><a href="index.php?id=6">AGBs</a></div></li></ul>
wie man sehen kann, ist kontaktformular eine unterseite von kontakt. es ist ja möglich mit ifsub zu ermitteln, welche seite ein untermenü besitzt. ich möchte gern ermitteln welche seite aktiv ist (mach ich ja momentan auch mit ACT) und dazu auch die unterseiten mit einer anderen klasse belegen. ist es möglich das abzufangen? also wenn die übergeordnete seite = aktiv, dann setze um die unterseiten ein anderes div.
geht das?
ACTIFSUB ermittelt ob eine untergeordnete seite aktiv ist. leider ist das nicht genau das was ich suche. ich muss ermitteln, ob das übergeordnete element aktiv ist und dann die unterseiten mit einem anderen div umschließen.
gibt es sowas wie "wenn übergeordnete seite = aktiv, dann mach folgendes" ?
ich habe nun per google ne stunde gesucht, wurde aber nicht fündig...
kann man nicht ermitteln, ob eine übergeordnete seite aktiv ist?
hähh? die übergeordnete seite ist immer aktiv wenn eine unterseite aktiv ist...
Ich hab den Eindruck das das ganze per Javascript / CSS ein und ausgeblendet werden soll? Oder wieso das expAll?
Auch dann kannst du das per CSS entscheiden indem du der übergeordneten Seite eine andere Klasse gibst und die Unterseiten darüber anders formatierst.
genau das möchte ich ja machen.
ich möchte die untergeordneten seiten entweder in ein div packen, mit einer klasse, welche die punkte ausblendet oder in einer klasse, welche die punkte einblendet. das heißt, ich muss ermitteln, ob die übergeodnete seite angeklickt wurde und in diesem fall die unterseiten einer css-klasse zuweisen, welche die unterseiten sichtbar macht. das problem ist nur, wie ermittel ich, ob die übergelordnete seite angeklickt wurde?
hab ich jetzt ein denkfehler?
das müsste doch möglich sein, alle menüpunkte aus der ersten ebene in ein menü zu schieben + die unterseiten der aktuellen angewählten seite oder nicht?
ich habe es nun fast geschafft...es klappen nun jeweils die unterseiten auf:
SUB_MENU = HMENU
SUB_MENU.special = directory
SUB_MENU.special.value = 12
SUB_MENU.entryLevel = -2|1
SUB_MENU {
1 = TMENU
1 {
showAccessRestrictedPages = 139
#expAll = 1
wrap = <ul class="nav">|</ul>
noBlur = 1
NO = 1
NO.allWrap = <div class="nav_no_active"> | </div>
NO.wrapItemAndSub = <li>|</li>
ACT < .NO
ACT = 1
ACT.allWrap = <div class="nav_level_act"> | </div>
IFSUB = 1
IFSUB.wrapItemAndSub = <li class="menusub">|</li>
ACTIFSUB = 1
ACTIFSUB.wrapItemAndSub = <li class="menusub_aktiv">|</li>
CURIFSUB = 1
CURIFSUB.wrapItemAndSub = <li class="havSub">|</li>
}
2 = TMENU
2{
showAccessRestrictedPages = 139
expAll = 1
wrap = <ul class="nav2">|</ul>
noBlur = 1
NO = 1
NO.allWrap = <div class="nav2_no_active"> | </div>
NO.wrapItemAndSub = <li>|</li>
ACT < .NO
ACT = 1
ACT.allWrap = <div class="nav2_level_act"> | </div>
IFSUB = 1
IFSUB.wrapItemAndSub = <li class="menusub">|</li>
ACTIFSUB = 1
ACTIFSUB.wrapItemAndSub = <li class="menusub_aktiv">|</li>
}
2.wrap = <ul class="sub">|</ul>
3 < .2
4 < .2
}
das habe ich durch das "SUB_MENU.entryLevel = -2|1" erreicht.
leider ist der negative nebeneffekt, das nun beim klick auf ein unterpunkt, die unterpunkte verschwinden #angry#