Zum Inhalt springen

Fehler im Marker ###MENU_LINKS### und ###MENU_RECHTS###

Erstellt am 5. September 2008 · 6 Antworten · letzte Antwort am 9. September 2008

Tags: Frage

Marion_1977 ·

Hallo,

ich komm mal wieder nicht weiter mit meinen beiden Menüs.
Das Endergebnis ist wie folgt:
http://www.typo3-testseite.de

Mein Typoscript-Code lautet inkl. meiner Kommentare:

//Cache ausschalten
config.no_cache = true


      seite = PAGE

      seite {

              stylesheet = fileadmin/layout/stylesheet.css

              10 = TEMPLATE

              10 {

                      template = FILE

                      template.file = fileadmin/layout/vorlage.html

                      workOnSubpart = DOCUMENT

                      marks {

                              INHALT < styles.content.get

			      //hierarchisches Menü LINKS im Marker MENU_LINKS als Liste	
                              MENU_LINKS = HMENU

                              MENU_LINKS {
                              
                              	      //alle Unterseiten des linken Menüs sollen angezeigt werden (bei mir Page id=127)
				      //special = directory
				      //special.value = 127
                              
                              	      // Einstiegsebene für das Menü: IMMER notwendig bei Menü mit mehreren Ebenen: entryLevel
                              	      // entrylevel = 1 
                              	      
				      // Liste
                                      wrap = <ul>|</ul>
                                      
				      // 1. Navigationsebene
                                      1 = TMENU

                                      1 {

                                              NO = 1
  
                                              NO {

                                                        wrapItemAndSub = <li>|</li>
                                                        
                                        }
                                        
                                     // 2. Navigationsebene
                                     2 = TMENU
                                     2 {

                                              NO = 1
  
                                              NO {

                                                        wrapItemAndSub = <li>|</li>
                                                        
                                        }
                                                        
                              //hierarchisches Menü RECHTS im Marker MENU_RECHTS als Liste ( ab id = 130 )
                              MENU_RECHTS = HMENU

                              MENU_RECHTS {
                              
                              	      //alle Unterseiten des rechten Menüs sollen angezeigt werden (bei mir Page id=130)
				      special = directory
				      special.value = 130
				      
				      //Liste
                                      wrap = <ul>|</ul>
                                      
				      // 1. Navigationsebene mit Listenpunkten
                                      1 = TMENU

                                      1 {

                                              NO = 1
  
                                              NO {

                                                        wrapItemAndSub = <li>|</li>

                                              }
                                              
                                      

                                      }

                              }

                      }

              }

      } 
      
     }
     
    }
    
   }

Warum wird im Marker MENU_RECHTS gar nichts angezeigt und die Seiten mit id > 130 werden im Marker MENU_LINKS mit angezeigt?
Wo liegt mein Fehler? Wie kann ich ihn beheben?

Vielen Dank,
Marion

einpraegsam.​net ·

1. .NO ist immer an also ist .NO = 1 überflüssig

2. Ich glaube dass deine geschweiften Klammern nicht stimmen - check das mal

3. Finde diesen Satz gut:

Früher hab ich gearbeitet mit Macromedia Dreamweaver 4
doch die CD mit dem Programm ist nicht mehr hier.
Drum probier ich es nun mit Typo 3 und Open Source

Grüße, Alex

Unbekannter Benutzer ·

Alex hat recht... Die Klammersetzung ist schwer im argen... Da passt nicht viel.

ich habs dir mal ordentlich eingerückt und die vielen verwirrenden kommentare rausgenommen:

seite = PAGE
seite {
	stylesheet = fileadmin/layout/stylesheet.css
	10 = TEMPLATE
	10 {
		template = FILE
		template.file = fileadmin/layout/vorlage.html
		workOnSubpart = DOCUMENT
		marks {
			INHALT < styles.content.get
			MENU_LINKS = HMENU
			MENU_LINKS {
				wrap = <ul>|</ul>
				1 = TMENU
				1 {
					NO = 1
					NO {
						wrapItemAndSub = <li>|</li>
					}
################ Oh Oh ###################
					
				2 = TMENU
				2 {
					NO = 1
					NO {
						wrapItemAndSub = <li>|</li>
					}
################ Oh Oh ###################
################ Oh Oh ###################
					
			MENU_RECHTS = HMENU
			MENU_RECHTS {
				special = directory
				special.value = 130
				wrap = <ul>|</ul>
				1 = TMENU
				1 {
					NO = 1
					NO {
						wrapItemAndSub = <li>|</li>
					}
				}
			}
		}
	}
}
}
}
}

Überall, da wo du den Kommentar ####### Oh Oh ###### findest ;-) fehlen dir schließende Klammern.

Die letzten drei schließenden Klammern sind dann natürlich überflüssig.

Wenn du dein TS immer vernünftig einrückst, dann passieren solche fehler eigentlich nicht mehr.

Alternativ kann man auch mal das TS im template Analyzer anschauen. Der gibt einem dann auch sehr übersichtlich die Fehler in dem Script aus.

Marion_1977 ·

Vielen Dank für Eure Hilfe.
Nur leider ist das Ergebnis im Frontend immer noch dasselbe.
Im Marker rechts wird nix angezeigt und das was rechts reingehört ist weiterhin im linken Menü.

Wo ihr auf jeden Fall recht habt: Mit den Klammern komm ich nicht zurecht. Der Template Analizer hatte zwar auch in meinem Skript keinen Fehler mehr ausgewiesen, jedoch kapier ich die Regeln der Klammersetzung nicht.
Kann mir jemand die Regel in einfachen Wörtern beschreiben?
Offensichtlich reicht es nicht, wenn man fehlende Klammern ( die der Template Analizer bemängelt ) einfach am Schluss des Skriptes schliesst.

Marion

Unbekannter Benutzer ·

Nein, du kannst nicht einfach fehlende Klammern am Ende hinzufügen.

Erstmal müssen alle Klammern, die geöffnet werden, auch wieder geschlossen werden. Also soviele wie es offene Klammern gibt, muss es auch Geschlossene geben.

Die schließende Klammer muss natürlich dann folgen wenn das geöffnete Element beendet ist und ein Neues folgt, dass nicht zu dem zuvor Geöffneten gehört.

Rück dein Script mit TAB ein und du siehst ganz von alleine wann eine Klammer geschlossen werden muss... ist doch ganz einfach logisch, dass z.B. ein NO-Zustand geschlossen sein muss, bevor du einen ACT-Zustand beginnst, oder dass erst ein Marker geschlossen werden muss, bevor man einen Neuen beginnen kann.

Marion_1977 ·

hmm, und warum werden die Seiten mit id= 130 und größer nicht im Marker ###MENU_RECHTS### dargestellt?
Brauch ich noch eine Bedingung um die Menüs zu trennen?

Die schließenden Klammern hab ich bei:
####### Oh Oh ######
eingesetzt.

Gruss,
Marion

Marion_1977 ·

Hat keiner eine Idee warum bei im ###Menu_RECHTS### die Seiten mit id=130 und größer nicht angezeigt werden und wie ich das Problem lösen könnte?

Danke,
Marion