Zum Inhalt springen

Menüpunkte werden unvollständig angezeigt

Erstellt am 10. Mai 2011 · 21 Antworten · letzte Antwort am 13. Mai 2011 · Seite 1 von 2

Tags: TYPO3 4, Frage

SaxenPower ·

Hallo,

ich versuche ein vertikales Textmenü mit der Struktur

Home (Ebene 1)
|-Impressum (Ebene 2)
|-Kontakt (Ebene 2)
|-Über uns (Ebene 2)
|-Produkte (Ebene 2)
|-Produkt 1 (Ebene 3)
|-Produkt 2 (Ebene 3)

auf TYPO3 4.5.2 abzubilden.

config {
   doctype = xhtml_trans
   sys_language_uid = 1
   language = de
   locale_all = de_DE
   locale_all = german
   locale_all = de.UTF-8
}

temp.mainTemplate = TEMPLATE
temp.mainTemplate {
   template = FILE
   template.file = fileadmin/templ/maintemplate.html
}

temp.menu = COA
temp.menu {
   10 = HMENU   
   10.entryLevel = 0
   10.1 = TMENU
   10.1 { 

         allWrap = <div id="col2_contents" class="clearfix"><div id="menuebox"><ul>|</ul></div></div>
         NO {
               wrapItemAndSub = <li>|</li> 
         }
         RO = 1
         RO {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_inactive.png
          }
         ACT = 1
         ACT {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_active.png
          }
         CUR = 1
         CUR {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_inactive.png
          }          
    }
   10.2 = TMENU
   10.2 { 


         allWrap = <div id="col2_contents" class="clearfix"><div id="menuebox"><ul>|</ul></div></div>
         NO {
               wrapItemAndSub = <li>|</li> 
         }
         RO = 1
         RO {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_inactive.png
          }
         ACT = 1
         ACT {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_active.png
          }
         CUR = 1
         CUR {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_inactive.png
          }  
    }
   10.3 = TMENU
   10.3 { 

         allWrap = <div id="col2_contents" class="clearfix"><div id="menuebox"><ul>|</ul></div></div>
         NO {
               wrapItemAndSub = <li>|</li> 
         }
         RO = 1
         RO {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_inactive.png
          }
         ACT = 1
         ACT {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_active.png
          }
         CUR = 1
         CUR {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_inactive.png
          }  
    }
   10.4 = TMENU
   10.4 { 

         allWrap = <div id="col2_contents" class="clearfix"><div id="menuebox"><ul>|</ul></div></div>
         NO {
               wrapItemAndSub = <li>|</li> 
         }
         RO = 1
         RO {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_inactive.png
          }
         ACT = 1
         ACT {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_active.png
          }
         CUR = 1
         CUR {
               wrapItemAndSub = <li>|</li>
               beforeImg = fileadmin/image/icons/pfeil_inactive.png
          }
     }
}

temp.header = IMAGE
temp.header {
    file.import.data = levelmedia: -1,slide
    file.import = uploads/media/
    file.import.listNum = 0
    file.width = 1000
    file.height = 285
    stdWrap.stdWrap.typolink.parameter = 1
}
   
page = PAGE
page.typeNum = 0

page.headerData.10 = HTML
page.headerData.10.value = <link rel="stylesheet" href="fileadmin/css/my_layout.css" type="text/css" /><!--[if lte IE 7]><link rel="stylesheet" href="fileadmin/css/yaml/core/iehacks.css" type="text/css"><![endif]-->
[global]



page.bodyTag = <body bgcolor  ="#ffffff">
page.config.index_enable = 1
page.10 < temp.mainTemplate
page.10 {
   workOnSubpart = DOKUMENT
   marks.CONTENT < styles.content.get
   marks.LEFT < styles.content.getLeft
   marks.RIGHT < styles.content.getRight
   marks.BORDERRIGHT < styles.content.getBorder

   marks.NAVIGATION < temp.menu
   marks.HEADERIMAGE < temp.header

}

Angezeigt aber immer nur die gerade aktuelle Ebene, nicht aber die Ebenen davor. Ebenso wird die Ebene "Home" nicht angezeigt. Ich hatte dieses Menü in dieser Struktur bereits bei einer Vorgängerversion im Einsatz.
Könnt ihr zeigen, wo mein Denkfehler liegt? Oder muss man bei 4.5.2 irgendwo die mehrschichtige Menüanzeige freischalten?

Grüße

SaxenPower

Julian.​Hofmann ·

Hallo.

Sieht vom Lesen her eigentlich korrekt aus.

Heißt "Angezeigt", dass es auch im Quelltext nicht erscheint, oder nur nicht sichtbar ist?
Was mir auffällt, Du verwendest in allen Ebenen beim allWrap die gleichen IDs. Beißt sich hier evtl. Dein CSS dran?

Viele Grüße
Julian

SaxenPower ·

Hallo Julian,

vielen Dank für das Feedback.

Julian.Hofmann schrieb

Sieht vom Lesen her eigentlich korrekt aus.

Heißt "Angezeigt", dass es auch im Quelltext nicht erscheint, oder nur nicht sichtbar ist?
Was mir auffällt, Du verwendest in allen Ebenen beim allWrap die gleichen IDs. Beißt sich hier evtl. Dein CSS dran?

Auf der Homepage sieht der Menü-Quelltext so aus

<div id="col2_contents" class="clearfix"><div id="menuebox"><ul><li><a href="index.php?id=2" onfocus="blurLink(this);"  >Über uns</a></li><li><a href="index.php?id=3" onfocus="blurLink(this);"  >Impressum</a></li><li><a href="index.php?id=5" onfocus="blurLink(this);"  >Kontakt</a></li></ul></div></div>

Das ist noch okay so. Aber spätestens eine Ebene drunter fehlen die erste Ebene und die aktuelle Ebene, die Ebene darunter wird angezeigt:

<div id="col2_contents" class="clearfix"><div id="menuebox"><ul><li><a href="index.php?id=6" onfocus="blurLink(this);"  >Level 2</a></li><li><a href="index.php?id=9" onfocus="blurLink(this);"  >Level 2-2</a></li></ul></div></div>

Was meinst Du mit "die gleichen IDs"? Ich checke das nachher mal ohne css.

Grüße

SaxenPower

Julian.​Hofmann ·
SaxenPower schrieb

Was meinst Du mit "die gleichen IDs"? Ich checke das nachher mal ohne css.

Meine, Du baust um jede Menüebene ein DIV mit ID "col2_contents" und eines mit ID "menuebox". HTML-ids müssen aber innerhalb der Seite unique sein. Scheint aber keine Ursache für dein eigentliches Problem zus ein.

Hast Du Deiner Rootseite mitgeteilt, dass sie die Rootseite ist (Behaviour -> Use as Root Page)? Könnte sein, dass die Menügenerierung einfach etwas orientierungslos ohne ist... o.O

SaxenPower ·
Julian.Hofmann schrieb

Hast Du Deiner Rootseite mitgeteilt, dass sie die Rootseite ist (Behaviour -> Use as Root Page)? Könnte sein, dass die Menügenerierung einfach etwas orientierungslos ohne ist... o.O

So was vermute ich ja auch. Also meiner "Home" habe ich unter Template Reiter "Optionen" den Punkt "Wurzelebene" einen Hacken mitgegeben. Allerdings "(Behaviour -> Use as Root Page)" finde ich jetzt nicht.
Ehrlich gesagt, ich habe zuletzt die Seite neu aufgebaut mit 4.2.9, deswegen vermute ich, dass ich unter 4.5.2 etwas falsch mache.

Und das mit dem CSS klappte an sich bisher, aber ich werde es berücksichtigen.

Grüße

SaxenPower

Julian.​Hofmann ·

Jepp, den Haken meinte ich. In 4.5 wurden die Begriffe etwas verändert (und ich hab es auf Englisch angegeben), aber letztens geht es genau um diese Spalte is_siteroot der Tabelle pages.

Du bist Dir auch ganz sicher, dass Dein TypoScript in der geposteten Form TYPO3 einliest? Wird vielleicht irgendwas nochmal überschrieben odgl.?
"TypoScript Object Browser" zeigt Dir auf unteren Seitenebenen korrekt die TypoScript-Werte an, die Du gesetzt hast?

SaxenPower ·

Okay,

das schaue ich mir bis Morgen mal in aller Ruhe an. Das muss ich verstehen und interpretieren können. Vielleicht finde ich den Fehler auch selber. Ich gebe aber so oder so Bescheid.
Immerhin bin ich jetzt mal weiter in der Fehlersuche.

Julian.Hofmann schrieb

Du bist Dir auch ganz sicher, dass Dein TypoScript in der geposteten Form TYPO3 einliest? Wird vielleicht irgendwas nochmal überschrieben odgl.?
"TypoScript Object Browser" zeigt Dir auf unteren Seitenebenen korrekt die TypoScript-Werte an, die Du gesetzt hast?

SaxenPower ·

Also ich habe jetzt in dem Objektbaum etwas gefunden und ich hatte bereits die Hoffnung das könnte es gewesen sein. Da gab es innerhalb der Setup-Wurzel ein [menu] oberhalb von [page], in Letzerem liegen meine Menüdefinitionen.
[menu] wurde von css_styled_content generiert und deswegen hatte ich css_styled_content aus wieder herausgeschmissen. Ein Löschen aller Caches und ein Neuaufruf der Webseite liefert allerdings keine Veränderung. Die Menüsituation bleibt dieselbe.

Ich hatte auch schon dieses Listing aus dem Buch "Einstieg in TYPO3" von Andreas Stöckl versucht:

marks.MENUE = HMENU
marks.MENUE.1 = TMENU
marks.MENUE.1.NO {
   allWrap = <tr><td>|</td></tr>
   beforeImg = fileadmin/img/pfeilchengrau.gif
   beforeROImg = fileadmin/img/pfeilchengruen.gif
   RO = 1
}
marks.MENUE.1.ACT = 1
marks.MENUE.1.ACT {
   allWrap = <tr><td>|</td></tr>
   beforeImg = fileadmin/img/pfeilchenrot.gif
}
marks.MENUE.2 = TMENU
marks.MENUE.2.NO {
   allWrap = <tr><td>|</td></tr> 
   beforeROImg = fileadmin/img/pfeilchengruen.gif
   RO = 1
}
marks.MENUE.2.ACT = 1
marks.MENUE.2.ACT {
   allWrap = <tr><td>|</td></tr>
   beforeImg = fileadmin/img/pfeilchenrot.gif
}

Das ja auch diese Ebenen auf jeder Webseite anzeigt und die aktuelle hervorhebt. Allerdings auch das funktioniert nicht.

Julian.​Hofmann ·

Ich bin mehr und mehr überzeugt, dass es nicht an dem TypoScript-Schnipsel liegt.

Irgendwas kommt mir in Deiner Seite seltsam vor. War das eine frische TYPO3-Installation - oder ein Upgrade?

SaxenPower ·

Das ist komplett neu aufgesetzt, weil die alte Webseite noch läuft und komplett anders aufgesetzt wird, auch mit anderen Inhalten.
Ich setze jetzt die Datenbank und das Typo3-Verzeichnis ganz neu auf, damit noch einmal alles ganz jungfräulich ist.

etux ·

Nur am Rande: allWrap ist außerhalb der Definition für die Menü-Zustände wirkungslos. Ersetze es mit „wrap“.
Brauchst Du wirklich ein der Art gewaltiges Verschachteln von div-Elementen?!

EDIT:
Du schreibst, die verschachtelte div- und ul-Elementen werden generiert (stehen im Quellcode). Wenn das wirklich so ist, dann sind die wo anders in Deinem TypoScript-Setup definiert (s. Julian.Hofmann). Aus dem in Deinem ersten Beitrag geposteten TypoScript stammen sie mit Sicherheit nicht.

SaxenPower ·
etux schrieb

Nur am Rande: allWrap ist außerhalb der Definition für die Menü-Zustände wirkungslos. Ersetze es mit „wrap“.

Ich hatte ja anfangs anstelle von "allWrap" auch "wrap" drin. Das ist bloss nicht das Problem, das liegt irgendwo anders begraben. Denn ich weiss, dass das Script früher schon lief und das Listing vom Stöckl sollte wohl auch funktionieren.

etux ·
SaxenPower schrieb

Ich hatte ja anfangs anstelle von "allWrap" auch "wrap" drin.

Das kann ich ja nicht wissen. 😉

SaxenPower schrieb

Das ist bloss nicht das Problem, das liegt irgendwo anders begraben.

Daher schrieb ich auch:

etux schrieb

Nur am Rande: ...

SaxenPower ·

Okay, da bin ich wieder mit folgenden Ergebnissen.
Ich habe das Typo3 komplett mit einer neuen Datenbank aufgesetzt. Jetzt lassen sich mit demselben Script Ebene2 und Ebene3 gemeinsam im Menü anzeigen.
Unter der "Weltenkugel" (id=0) folgt die Seite HOME, die das Template enthält. HOME (id=1) wird leider immer noch nicht angezeigt. Alles Andere muss ich wohl unterhalb HOME beginnen.

Jedenfalls vielen Dank für die Impulse, die ihr mir gegeben habt.

Viele Grüße

SaxenPower

etux ·
SaxenPower schrieb

... HOME (id=1) wird leider immer noch nicht angezeigt.

temp.menu = COA
temp.menu {
	10 = HMENU
	10.special = list
	10.special.value = 1
	10.1 = TMENU
	10.1 { 
		wrap = <div id="col2_contents" class="clearfix"><div id="menuebox"><ul>|</ul></div></div>
		NO {
			wrapItemAndSub = <li>|</li>
		}
		...............
	}
}
etux ·
Julian.Hofmann schrieb

Ist "Home" zufällig auf "not in menu" oder irgendwas "unnormales"?

Das kann, aber muss nicht sein. Wenn Home auch root ist, ist es nur normal, dass Home bei entryLevel = 0 nicht dargestellt wird.

SaxenPower ·
etux schrieb
Julian.Hofmann schrieb

Ist "Home" zufällig auf "not in menu" oder irgendwas "unnormales"?

Das kann, aber muss nicht sein. Wenn Home auch root ist, ist es nur normal, dass Home bei entryLevel = 0 nicht dargestellt wird.

Wo finde ich das "not in menu"? Ich habe jedenfalls nichts extra eingestellt, sondern habe mein Typoscript 1:1 übernommen.

Apropos, wenn ich entryLevel = 1 setze, was der ID von Home entspricht, sehe ich gar kein Menü mehr. Also habe ich entryLevel = 0 gesetzt, wie gehabt. Ich interpretiere das so, dass der Einstiegslevel bei id=0 liegt, was bei mir eben die alte Weltenkugel oder heuer das Typo3-Icon ist.

Exut, wenn ich mit

   10.special = list
   10.special.value = 1

folge, dann verschwinden bei mir wieder alle Menüs komplett.

Ist es denn nicht möglich das Root-Template nach ganz oben also nach id=0 zu legen? Dann müsste Home mit ausgewiesen werden. Wenn ich hier ein Template anlegen will, sehe ich allerdings nur eine Tabelle
Seitenname Anzahl Templates Ist Anfang der Website Ist Erweiterung
HOME 1 OK

Wenn's nicht anders geht, dann arrangiere ich mich mit einem Menüpunkt im Seitenbaum als Link auf die id=1. Alles Andere ist inzwischen zu aufwendig.

etux ·

Bei „special.value = 1“ sollte der komplete Seitenbaum unter Home(id=1) angezeigt werden, inklusive Home. Wenn das bei Dir nicht der Fall ist, dann liegt es an was anderem.
Schau Dir die Seiteneigenschaften der Home- (root-?) Seite

.

SaxenPower ·
etux schrieb

Bei „special.value = 1“ sollte der komplete Seitenbaum unter Home(id=1) angezeigt werden, inklusive Home. Wenn das bei Dir nicht der Fall ist, dann liegt es an was anderem.
Schau Dir die Seiteneigenschaften der Home- (root-?) Seite

.

Das dachte ich halt auch, ist aber umgekehrt. Und auf Home ist unter "Optionen" auch die Wurzebene aktiviert.