Zum Inhalt springen

Navigation: Level 3 in Spalte Rechts darstellen.

Erstellt am 6. Juni 2005 · 17 Antworten · letzte Antwort am 9. Juni 2005

Tags: Frage

The Gardener ·

Hallo.

Ich habe folgende Frage. Mein Menü besteht zur Zeit aus 2 Ebenen die zusammen in einem vertikalen Klappmenü angezeigt werden. Manche Bereiche der Seite haben allerdings noch einen dritten Level. Diesen möchte ich nicht in dem gleichen Klappmenü darstellen. Diese sollen in der rechten Spalte dargestellt werden. Dort habe ich einen Marker LEVEL3 angelegt, weiss aber nun nicht wie ich ihn ansprechen kann.

Folgendes habe ich mir gedacht, funktioniert leider nicht.

# Die Navigation im Platzhalter NAVIGATION erstellen
# 1. Navigationslevel
               NAVIGATION = HMENU
               NAVIGATION {
                             special = directory                   
                             special.value = 3
                             entryLevel = 1
                             1 = TMENU
                             1.NO = 1
                             1.NO.ATagParams = class="nav_main"
                             1.NO.linkWrap = | |*| <br />| |*| <br />|
# 2. Navigationslevel
                             2 = TMENU
                             2.NO = 2
                             2.NO.ATagParams = class="nav_sub"
                             2.NO.linkWrap =  <br />                         
                }

# Die Navigation im Platzhalter LEVEL3 erstellen
# 3. Navigationslevel 
              LEVEL3 = HMENU
              LEVEL3 {
                             special = directory                   
                             special.value = 3
                             entryLevel = 3
                             3 = TMENU
                             3.NO = 3
                             3.NO.ATagParams = class="nav_sub"
                             3.NO.linkWrap = | |*| <br />| |*| <br />|
                 }

Ich bin über jede Anregung/Lösung dankbar und bedanke mich für eure Mühe.
Michael

The Gardener ·

Mittlerweile habe ich rausgefunden, dass es über den entryLevel wohl nicht geht, da dieser wohl nur angibt wo die Hilfsseite für die Navigation liegt. Somit bin ich ratlos wie ich den dritten Navigationslevel an einer anderen Stelle positioniere.

Hat jemand Rat?
Danke. Michael

The Gardener ·

Hi,
also es funktioniert mit special = directory wenn ich als value die betreffende Seite mit den Unterseiten als uid angebe. Das Problem ist aber, dass diese uid dynamisch sein soll. Ich weiss im Vorfeld nicht wo später mal dritte Ebenen eingefügt werden und wo nicht. Für Ebene 1 und 2 habe ich je eine Shortcutseite mit einer uid. Für die dritte Ebene geht das nicht mehr.

Beispiel mit fester uid (Special Value)

# Die Navigation im Platzhalter NAVIGATION erstellen
# 1. Navigationslevel
               NAVIGATION = HMENU
               NAVIGATION {
                             special = directory                   
                             special.value = 3
                             entryLevel = 1
                             1 = TMENU
                             1.NO = 1
                             1.NO.ATagParams = class="nav_main"
                             1.NO.linkWrap = | |*| <br />| |*| <br />|
# 2. Navigationslevel
                             2 = TMENU
                             2.NO = 2
                             2.NO.ATagParams = class="nav_sub"
                             2.NO.linkWrap =  <br />                         
                }

# Die Navigation im Platzhalter LEVEL3 erstellen
# 3. Navigationslevel
               LEVEL3 = HMENU
               LEVEL3 {
                             special = directory                
                             special.value = 26
                             entryLevel = 1
                             1 = TMENU
                             1.NO = 1
                             1.NO.ATagParams = class="nav_sub"
                             1.NO.linkWrap = | |*| <br />| |*| <br />|
}

Wenn ich einfach den gesamten Navigationsbaum abfrage und als entryLevel 3 angebe zeigt er mir leider gar nichts an. Ich hatte gehofft, dass er dann immer nur die dritte Ebene anzeigt.

Vieleicht bin ich auch zu blöd und sehe die Lösung in dem PDF das Du als Referenz angegeben hast nicht ganz. (http://typo3.net/uploads/media/dokumentation.pdf, 64ff).

Vielleicht hast Du oder jemand anderes noch einen Rat?
Danke
Michael

toyde ·

Hi.

Habe es bisher immer so gelöst, dass ich im Level2 Subtemplates mit eben "special directory" benutzt habe.
Wenn du einfach den entryLevel3 angibst, weiss deine Navigation ja nicht, welcher Menüpunkt, bzw. welches Unterlevel des Level2 angezeigt werden soll - leuchtet das ein?

Du hast einen Baum mit Level2 und Level3 Ästen. Sinn und Zweck des HMENU - doch wenn du ein Level2-Ast aktiv hast, ist die Verknüpfung zum zugehörigen Level3-Ast nicht gegeben, und das löse ich mit special.

cya

The Gardener ·

Hi toyde 😃 ,

mir leuchtet jetzt ein, dass meine navi für den 3. Level nicht weiss welche Unterseiten sie darstellen soll. Meinst Du demnach mit subtemplate eine Hilfseite als Shortcut wie für die Navigation des ersten Levels? Vermutlich nicht. Sonst müsste man ja für jeden Menüpunkt des ersten Levels eine solche einfügen und hat viele uid's. Bin leider immer noch ratlos :o .

Gruß
Michael

toyde ·

Lol, hab bald nen Knoten von den 2 Threads ;P

Habe irgendwo *g* doch die Seitenzahl der deutschen Doku gepostet. Lies dir Seite 64/65 doch durch - es steht samt Code und Screenshot alles dort.

The Gardener ·

Hi,

die Seiten habe ich gelesen und anhand dessen meine Hauptnavi mit den 2 Level erstellt, was auch prima funktioniert. Ich kann darin aber nicht entdecken wie ich die abgeschnittene, separate Subnavi für den dritten Level in einem anderen Bereich der Seite erstelle. Mir ist nicht klar wie mir die Doku dabei helfen kann. Mit meinem Typoscript KnowHow ist es auch noch nicht besonders weit.

Gruss
Michael

toyde ·

- 1 Marker/Subpart für Hauptmenü
- 1 Marker/Subpart für dein 2.Menü / Untermenü

Im HTML logischerweise also die beiden Marker/Subparts platzieren. Das Hauptmenü hast du ja. Davon ausgehend zusammen mit den Codesnippets aus der Doku bastelst du dir dein Untermenü, das mit special wunderbar klappt.

Falls du Probleme mit Markern/Subparts oder Navigationen hast, dann würde ich dir raten mehr über HMENU und Special nachzulesen.

The Gardener ·

Hi,

ich habe 2 Submarker (NAVIGATION und LEVEL3) erstellt. Mit folgendem Script spreche ich beide an und es werden zur Zeit in beiden Submarkern alle 3 Ebenen angezeigt. Nun weiss ich nicht weiter. Wie blende ich in LEVEL§ die ersten beiden Ebenen aus? Da brauche ich nochmal einen Hinweis.

Gruß
Michael

10.subparts {
# Navigation linke Spalte
# 1. Navigationslevel
               NAVIGATION = HMENU
               NAVIGATION {
                             special = directory                   
                             special.value = 3
                             entryLevel = 1
                             1 = TMENU
                             1.NO = 1
                             1.NO.ATagParams = class="nav_main"
                             1.NO.linkWrap = | |*| <br />| |*| <br />|
                             
# 2. Navigationslevel
                             2 = TMENU
                             2.NO = 2
                             2.NO.ATagParams = class="nav_sub"
                             2.NO.linkWrap =  <br />   

# 3. Navigationslevel NUR VORÜBERGEHEND
                             3 = TMENU
                             3.NO = 3
                             3.NO.ATagParams = class="nav_sub"
                             3.NO.linkWrap =  <br />  
                }                      

# Navigation rechte Spalte
# 1. Navigationslevel
               LEVEL3 = HMENU
               LEVEL3 {
                             special = directory                   
                             special.value = 3
                             entryLevel = 1
                             1 = TMENU
                             1.NO = 1
                             1.NO.ATagParams = class="nav_main"
                             1.NO.linkWrap = | |*| <br />| |*| <br />|
                             
# 2. Navigationslevel
                             2 = TMENU
                             2.NO = 2
                             2.NO.ATagParams = class="nav_sub"
                             2.NO.linkWrap =  <br />   

# 3. Navigationslevel NUR VORÜBERGEHEND
                             3 = TMENU
                             3.NO = 3
                             3.NO.ATagParams = class="nav_sub"
                             3.NO.linkWrap =  <br />  
                }   
}
toyde ·

hi

weshalb möchtest du das Hauptmenü ausblenden?
Verstehe die Logik betreffend der Hierarchie nicht ganz, dann kann ich evtl. noch weiterhelfen.

Wenn du ein Menü/Subpart ausblenden/löschen/leeren möchtest, kannst du ja

NAVIGATION =
#oder 
NAVIGATION >

verwenden.. (das leert den Parameter, bzw. überschreibt ihn mit "")
Aber wie das bei einer Homepage Sinn macht, musst du mir etwas auf die Sprünge helfen. (evtl. sogar Screenshot/Link?. Wenn's sein muss auch PM).

cya

edit:
------
sry, jetzt komm ich erst nach, was du meinst.
Du hast in deiner rechten Spalte das ganze Menü ja nochmals definiert!
Finde ich etwas seltsam deine Frage, da du das Menü ja selbst mit den Levels 1+2+3 nachgebaut hast ;P Was du machst: Du baust auch level1+2 ein, und möchtest es wieder ausblenden - macht das Sinn? Überleg mal.

Ausserdem:
Bist du sicher, dass du special directory verstanden hast? Ich glaube du hast ein kleines Durcheinander wie man HMENU (hierarchisches Menü bezogen auf Page-Tree) und das special-Menü unterscheidet. Kennst du den Unterschied?

The Gardener ·

Hi.

ich hatte befürchtet, dass wir eventuell aneinander vorbeireden.
Liegt vielleicht an meiner Darstellungsweise.

Worum es mir geht: Ich habe eine Navigation mit max 3 Ebenen. In
einer linken Spalte möchte ich die ersten beiden Ebenen ausgeben.
Die dritte Ebene, die es nicht immer gibt, soll in der rechten Spalte
erscheinen.

Ich habe in meinem letzten Post einfach die Navi nochmal aufgezogen um
zu sehen ob es funktioniert den Submarker anzusprechen. Aber eigentlich soll
da nur die dritte Ebene erscheinen. Wenn es keine dritte Ebene gibt, dann
bleibt der Bereich leer.

In dem Shot, den Du unter http://www.limbic-entertainment.de/screenshot.gif findest, siehst Du:
Ebene 1: Unternehmen
Ebene 2: Partner
Ebene 3: RTL
Jeder Partner, wie RTL, hat je eine eigene Seite, die dritte Ebene.

Die Navi dazu soll in der rechten Spalte erscheinen. Die fehlt mir.
In dem Shot als Partner 1 bis Partner n eingezeichnet.
Vielleicht ist es jetzt etwas klarer.

Michael

The Gardener ·

Nochmal zu Deiner Frage:

Wie ich das verstehe mit HMENU und special.

HMENU ist ein hierarchisches Menü. Davon gibt es verschiedene Arten: Text, Grafisch usw.

Special definiert praktisch die Hierachie.
Directory ist eine Baumstruktur ausgehend von einer Seite und stellt alle
verknüpften Seiten dar. Dafür nimmt man dann z.B. Die Hilfsseite "Navigation".
als Shortcut.

Für die dritte Ebene kann ich leider keine eindeutige Shortcutseite definieren. Deswegen dachte ich mir, es müsste irgendwie gehen den
ganzen Baum abzufragen aber nur die dritte Ebene darzustellen.

toyde ·
The Gardener schrieb

Special definiert praktisch die Hierachie.
Directory ist eine Baumstruktur ausgehend von einer Seite und stellt alle
verknüpften Seiten dar. Dafür nimmt man dann z.B. Die Hilfsseite "Navigation".
als Shortcut.

Special definiert welche Art Menü. "Hierarchie" stellt HMENU dar ;P Directory sagt einfach von welcher Seite aus der Ast angezeigt werden soll (nenne es nicht shortcut, das verwirrt die Leser 😉.

The Gardener schrieb

Für die dritte Ebene kann ich leider keine eindeutige Shortcutseite definieren. Deswegen dachte ich mir, es müsste irgendwie gehen den
ganzen Baum abzufragen aber nur die dritte Ebene darzustellen.

Und weshalb kannst du das nicht? Wo liegt das Problem? Doku nicht gelesen? - Wie hast du denn das rechte obere Menü gezaubert? ;P

Schau, alles was du für deine rechte Spalte brauchst ist (beziehe mich jetzt auf deinen Screenshot):
"Wenn Seite 'Partner' aktiv, dann Partner 1-n rechts anzeigen"..
Dann sagst du im TypoScript deiner Seite 'Partner' doch logischerweise;

special = directory
# 31= ID der 'Partner'-Seite
special.value = 31

Das heisst zwar subTemplates erstellen, aber klappt.

cya

toyde ·

Zusatz:
Eines meiner subTemplates für das 2. Level(bei dir als subTemplate der Seite "Partner" anzusehen). Bei mir werden Hauptmenü oben und 2.-Submenü links dargestellt.

### NAVIVER-Configs - werden je nach Submenu ueberschrieben
temp.menu_2 = HMENU
temp.menu_2.special = directory
temp.menu_2.special.value = 96
temp.menu_2.1 = TMENU
temp.menu_2.1.NO.linkWrap = <tr><td height="10" class="NAVIVERLINK" valign="top"> | ::</td></tr>
temp.menu_2.1.ACT = 1
temp.menu_2.1.ACT.linkWrap = <tr><td height="10" class="NAVIVERLINKACT" valign="top"> | ::</td></tr>

### Konfiguration in Haupttemplate beruecksichtigen
page.10 {
 subparts.TPL_NAVIVER = COA
 subparts.TPL_NAVIVER {
   10 < temp.menu_2
 }
}

TPL_NAVIVER stellt meine vertikale Navigation im HTML-Template dar.

subTemplates erstellen(alle drei Häckchen raus) und den oberen Code in's Setup rein. Der untere Teil meines Codes dient dazu, die Navigation in mein Haupt-TypoScript-Template aufzunehmen(page.10).

The Gardener ·

Hey Toyde,

vielen Dank für Deine Mühe. Jetzt habe ich auch das Prinzip verstanden auf das Du hinaus wolltest. Im Subtemplate wird die dritte Ebene ausgehend von der Seite der 2. Ebene aufgebaut. Dieses Subtemplate muss man für jede Seite der 2. Ebene erstellen (Sofern man die dritte Ebene ermöglichen möchte). Das Haupttemplate kopiert oder übernimmt die Werte aus dem Subtemplate und stellt entsprechend die dritte Ebene dar. Richtig?

So weit so gut. Habe das mal umgesetzt. Mein Submarker wird auch angesprochen, die Navi leider nicht angezeigt. Nach stundenlangem suchen finde ich den Haken nicht. Eigentlich müste es jetzt so laufen.

page = PAGE
page {
     typeNum = 0

# Designvorlage integrieren
     10 = TEMPLATE
     10 {
          template = FILE
          template.file = fileadmin/vorlage_01.html
          workOnSubpart = DOKUMENT


     marks {
# Die Hauptnavigation im Platzhalter NAVIGATION erstellen
# 1. Navigationslevel
               NAVIGATION = HMENU
               NAVIGATION {
                             special = directory                   
                             special.value = 3
                             entryLevel = 1
                             1 = TMENU
                             1.NO = 1
                             1.NO.ATagParams = class="mainmenu_no"
                             1.NO.linkWrap = | |*| <br />| |*| <br />|
                             1.ACT = 1
                             1.ACT.ATagParams = class="mainmenu_act"
                             1.ACT.linkWrap = | |*| <br />| |*| <br />|

# 2. Navigationslevel
                             2 = TMENU
                             2.NO = 2
                             2.NO.ATagParams = class="submenu_no"
                             2.NO.linkWrap =  <br />  
                             2.ACT = 2
                             2.ACT.ATagParams = class="submenu_act"
                             2.ACT.linkWrap =  <br />  

                }  
     }

             subparts.LEVEL3 = COA
             subparts.LEVEL3 {
                    10 < temp.menu_2
             }


}


}
temp.menu_2 = HMENU
temp.menu_2 {
            special = directory
            special.value = 26
            1 = TMENU
            1.NO = 1
            1.NO.ATagParams = class="submenu_no"
            1.NO.linkWrap =  <br />  
            1.ACT = 1
            1.ACT.ATagParams = class="submenu_act"
            1.ACT.linkWrap =  <br />
             }

Habe zur Zeit keine Idee. Vielleicht seh ich den Wald vor lauter Bäumen wieder nicht.

Gruss
Michael

The Gardener ·

Eine andere Sache, die ich mich frage. Wenn jetzt ein Redakteur eine neue Seite in der 2. Ebene einfügt und dazu auch unterseiten, dann wird die Navigation nicht angezeigt. Das Subtemplate fehlt ja. Das ist ein Nachteil an dieser Methode.

Gruss
Michael