---
title: "Typoscript- Fehler im Menü"
url: "https://www.typo3.net/d/110940-typoscript-fehler-im-menue"
source: "typo3.net"
tags: ["TYPO3","Menüs","Frage"]
created: "2012-06-11"
last_reply: "2012-06-15"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# Typoscript- Fehler im Menü

TYPO3 › Menüs · 6 Antworten · gestartet 2012-06-11

## Eröffnungsbeitrag

**brainwatcher** · 2012-06-11 · [Beitrag #1](https://www.typo3.net/d/110940-typoscript-fehler-im-menue/1)

Habe ein Menü, dass auch funktioniert hat. Es wurde jedoch nötig, bei geschützten Seiten eine Extra-Klasse mitzugeben. Mir ist nicht ganz klar warum, aber der unten gekennzeichnete Code überschreibt scheinbar meine Klassen für active- und current Zustände.

Kann hier wer helfen? (Sehe den Fehler einfach nicht.)

```typoscript
temp.MENU_LINKS = HMENU
temp.MENU_LINKS.special.value = 60
temp.MENU_LINKS.entryLevel = 1
# IF-Condition Trunk – Navigationsebene
[PIDupinRootline  = 5] || [globalVar = TSFE:id=5]
temp.MENU_LINKS.special.value = 5
temp.MENU_LINKS.entryLevel = >
[end]
[PIDupinRootline  = 11] || [globalVar = TSFE:id=11]
temp.MENU_LINKS.special.value = 11
temp.MENU_LINKS.entryLevel = >
[end]
[PIDupinRootline  = 13] || [globalVar = TSFE:id=13]
temp.MENU_LINKS.special.value = 13
temp.MENU_LINKS.entryLevel = >
[end]
[PIDupinRootline  = 9] || [globalVar = TSFE:id=9]
temp.MENU_LINKS.special.value = 9
temp.MENU_LINKS.entryLevel = >
[end]
[PIDupinRootline  = 17] || [globalVar = TSFE:id=17]
temp.MENU_LINKS.special.value = 17
temp.MENU_LINKS.entryLevel = >
[global]


 
temp.MENU_LINKS { 
  special = directory
  1 = TMENU 
  1 { 
    showAccessRestrictedPages = NONE
    showAccessRestrictedPages.addParams = &redirect_url=###RETURN_URL###
    expAll = 0 
    noBlur = 1 
    wrap = <ul> | </ul> 
    
    NO = 1 
 
    
## Bereitet Probleme!!!!
  NO.ATagParams.if {
     value=0
     isGreaterThan.field = fe_group
  }    
  NO.ATagParams = class="rzcolorbox-content36"
   
  
  IFSUB = 1
  IFSUB.ATagParams.if {
     value=0
     isGreaterThan.field = fe_group
  }
  IFSUB.ATagParams = class="rzcolorbox-content36"
    
    

  IFSUB = 1
  IFSUB.wrapItemAndSub = <li class="menuparent">|</li>
  ACTIFSUB < .IFSUB  
## Bis hier
    
    NO.wrapItemAndSub = <li class="l-1">|</li> 
    NO.stdWrap = upper 
    NO.ATagTitle.field = subtitle // title 
    NO.stdWrap.htmlSpecialChars = 1
    
    ACT = 1 
    ACT < .NO 
    ACT.wrapItemAndSub = <li class="l-1 active">|</li>
    ACT.ATagParams = class="active"
  
    CUR = 1
    CUR < .NO
    CUR.wrapItemAndSub = <li class="l-1 current">|</li>
    CUR.ATagParams = class="current"
  } 
  2 < .1
  2 {
    NO.wrapItemAndSub = <li class="l-2">|</li>
    ACT = 2 
    ACT < .NO 
    ACT.ATagParams = class="active"
  
    CUR = 2
    CUR < .NO
    CUR.ATagParams = class="current"
  }
  3 < .1 
  3 {
    NO.wrapItemAndSub = <li class="l-3">|</li>
    ACT = 3 
    ACT < .NO 
    ACT.ATagParams = class="active"
  
    CUR = 3
    CUR < .NO
    CUR.ATagParams = class="current"   
  }  
  4 < .1 
  4 {
    NO.wrapItemAndSub = <li class="l-4">|</li>
    ACT = 4 
    ACT < .NO 
    ACT.ATagParams = class="active"
  
    CUR = 4
    CUR < .NO
    CUR.ATagParams = class="current" 
  } 
} # end menu

lib.field_mainnav < temp.MENU_LINKS
```

Vielen Dank im Voraus.

## Antworten

### [#2](https://www.typo3.net/d/110940-typoscript-fehler-im-menue/2) · Julian.​Hofmann · 2012-06-13

Hallo.

Etwas versteckt, aber doch logisch, warum es so ist:
Ich nehme mal die erste Ebene und dort nur ACT

Von Dir angegeben als:

```typoscript
    ACT = 1 
    ACT < .NO 
    ACT.wrapItemAndSub = <li class="l-1 active">|</li>
    ACT.ATagParams = class="active"
```

Mit aufgelöstem "ACT < .NO" (ohne den Problemabschnitt):

```typoscript
    ACT = 1 
    ACT.stdWrap = upper 
    ACT.ATagTitle.field = subtitle // title 
    ACT.stdWrap.htmlSpecialChars = 1
    ACT.wrapItemAndSub = <li class="l-1 active">|</li>
    ACT.ATagParams = class="active"
```

Mit aufgelöstem "ACT < .NO" (**mit** Problemabschnitt):

```typoscript
    ACT = 1 
    ACT.stdWrap = upper 
    ACT.ATagTitle.field = subtitle // title 
    ACT.stdWrap.htmlSpecialChars = 1

    ACT.ATagParams.if {
        value=0
        isGreaterThan.field = fe_group
    }    
    ACT.ATagParams = class="rzcolorbox-content36"

    ACT.wrapItemAndSub = <li class="l-1 active">|</li>
    ACT.ATagParams = class="active"
```

Der Wert von *ATagParams*, der für geschütze Seiten existieren soll, dürfte für ACT überschrieben sein, da nach dem Kopieren von NO auf ACT *ATagParams = class="active"* gesetzt wird. Was jedoch vond er Ausnahmebehandlung bleibt, ist der *if*-Abschnitt. Somit mit *ATagParams* nur berücksichtigt, wenn der *if*-Abschnitt wahr ist. D.h. es dürfte ein 'class="active"' da sein bei geschützten Seiten, und gar keine Klasse bei normalen Seiten.

Was hier vermutlich gewünscht ist, ist ein override.if... D.h. es soll *ATagParams* überschrieben werden mit etwas anderem, falls eine Bedingung zutrifft.

So oder so hast Du aber durch das herumkopieren noch das Problem, dass Du nirgend Deine Sonderfall-CSS-Klasse kombiniert mit "active" eingebaut hast.

Hoffe, ich konnte es halbwegs erklären...

Viele Grüße
julian

### [#3](https://www.typo3.net/d/110940-typoscript-fehler-im-menue/3) · brainwatcher · 2012-06-13

Danke für die super Erklärung, Julian.
Soweit hatte ich nicht gedacht #angry#

Das Menü war schon fertig, musste es aber nachträglich aufbohren.

Für die 1. Ebene hab ich es geschafft, hänge allerdings noch an der 2. Ebene.

```typoscript
temp.MENU_LINKS { 
  special = directory
  1 = TMENU 
  1 { 
    showAccessRestrictedPages = NONE
    showAccessRestrictedPages.addParams = &redirect_url=###RETURN_URL###
    expAll = 0 
    noBlur = 1 
    wrap = <ul> | </ul> 
    
    NO = 1 
 
    
#  IFSUB = 1
#  IFSUB.ATagParams.override.if {
#     value=0
#     isGreaterThan.field = fe_group
#  }
#  IFSUB.ATagParams = class="rzcolorbox-content36"
#    
#  IFSUB = 1
#  IFSUB.wrapItemAndSub = <li class="l-1">|</li>
#    #IFSUB.wrapItemAndSub = <li class="menuparent">|</li>
#  ACTIFSUB < .IFSUB  
    
  
    NO.wrapItemAndSub = <li class="l-1">|</li> 
    NO.stdWrap = upper 
    NO.ATagTitle.field = subtitle // title 
    NO.stdWrap.htmlSpecialChars = 1
    NO.ATagParams.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    NO.ATagParams = class="x rzcolorbox-content36"    
    
    
    ACT = 1 
    #ACT < .NO 
    ACT.wrapItemAndSub = <li class="l-1 active">|</li>
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams = class=" active rzcolorbox-content36"
    
  
    CUR = 1
    #CUR < .NO
    CUR.wrapItemAndSub = <li class="l-1 current">|</li>
    CUR.ATagParams = class="current"
    CUR.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    CUR.ATagParams = class="current rzcolorbox-content36"    
    
  } 
  2 < .1
  2 {
    NO.wrapItemAndSub = <li class="l-2">|</li>
    NO.ATagParams = class="xxxxx"
    
    ACT = 2 
    ACT < .NO 
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams = class=" active rzcolorbox-content36"    
    
  
    CUR = 2
    CUR < .NO
    CUR.override.ATagParams = class="current"
    CUR.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    CUR.ATagParams = class="current rzcolorbox-content36" 
    
    
  }
```

Hast du hier noch eine Idee?

### [#4](https://www.typo3.net/d/110940-typoscript-fehler-im-menue/4) · brainwatcher · 2012-06-13

Danke für die super Erklärung, Julian.
Soweit hatte ich nicht gedacht #angry#

Das Menü war schon fertig, musste es aber nachträglich aufbohren.

Für die 1. Ebene hab ich es geschafft, hänge allerdings noch an der 2. Ebene.

```typoscript
temp.MENU_LINKS { 
  special = directory
  1 = TMENU 
  1 { 
    showAccessRestrictedPages = NONE
    showAccessRestrictedPages.addParams = &redirect_url=###RETURN_URL###
    expAll = 0 
    noBlur = 1 
    wrap = <ul> | </ul> 
    
    NO = 1 
 
    
#  IFSUB = 1
#  IFSUB.ATagParams.override.if {
#     value=0
#     isGreaterThan.field = fe_group
#  }
#  IFSUB.ATagParams = class="rzcolorbox-content36"
#    
#  IFSUB = 1
#  IFSUB.wrapItemAndSub = <li class="l-1">|</li>
#    #IFSUB.wrapItemAndSub = <li class="menuparent">|</li>
#  ACTIFSUB < .IFSUB  
    
  
    NO.wrapItemAndSub = <li class="l-1">|</li> 
    NO.stdWrap = upper 
    NO.ATagTitle.field = subtitle // title 
    NO.stdWrap.htmlSpecialChars = 1
    NO.ATagParams.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    NO.ATagParams = class="x rzcolorbox-content36"    
    
    
    ACT = 1 
    #ACT < .NO 
    ACT.wrapItemAndSub = <li class="l-1 active">|</li>
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams = class=" active rzcolorbox-content36"
    
  
    CUR = 1
    #CUR < .NO
    CUR.wrapItemAndSub = <li class="l-1 current">|</li>
    CUR.ATagParams = class="current"
    CUR.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    CUR.ATagParams = class="current rzcolorbox-content36"    
    
  } 
  2 < .1
  2 {
    NO.wrapItemAndSub = <li class="l-2">|</li>
    NO.ATagParams = class="xxxxx"
    
    ACT = 2 
    ACT < .NO 
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams = class=" active rzcolorbox-content36"    
    
  
    CUR = 2
    CUR < .NO
    CUR.override.ATagParams = class="current"
    CUR.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    CUR.ATagParams = class="current rzcolorbox-content36" 
    
    
  }
```

Hast du hier noch eine Idee?

### [#5](https://www.typo3.net/d/110940-typoscript-fehler-im-menue/5) · Julian.​Hofmann · 2012-06-13

Bei der zweiten Ebene vermute ich auch irgendwelche übersehenen Auswirkungen der Kopie "2 < .1". Überprüf das mal, dass wirklich nur das in die 2. Ebene kommt, was da auch hin soll.
Hierfür ist der "Template Object Browser" im BE-Modul "Template" ggf.a uch hilfreich.

Was *override* angeht, hast Du noch paar Fehler drin:
1. *CUR.override.ATagParams = class="current"* dürfte nicht (wie gewollt) greifen.
2. *if* + *override*

```typoscript
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams = class=" active rzcolorbox-content36"
```

Hier überschreibt (unabhängig vom *if*) die letzte Zeile die erste. Da fehlt das *override*. Also von der Bedeutung her:
- Setze den Wert
- überschreibe den Wert
- ...aber nur wenn die Bedingung gilt
Richtig müsste es sein:

```typoscript
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams[b].override[/b] = class=" active rzcolorbox-content36"
```

### [#6](https://www.typo3.net/d/110940-typoscript-fehler-im-menue/6) · brainwatcher · 2012-06-15

Danke :-)

So langsam verstehe ich die Syntax von .if.
Wäre mir aus der Doku nicht so schnell klar geworden.

Und ich verstehe die Syntax von TS und den Aufbau jetzt besser... War zu sehr davon ausgegangen, dass es sich um Code handelt und habe nicht beachtet, dass es ja nur ein Array ist.

Einen Fehler habe ich allerdings noch drin, kann mir aber keinen Reim machen wie das zusammen hängt:

1. Ebene
 2. Ebene
   3. Ebene

Komme ich auf die Seite, alles richtig. Die Seite ist nicht geschützt.
Klicke ich auf Ebene 1 bekommt diese anschließend die rzcolorbox-Klasse.
Diese soll aber nur dann erscheinen, wenn die Seite wirklich geschützt ist.

Das Projekt ist noch geschützt, würde also ungern die URL veröffentlichen, könnte diese dir aber mal per PN schicken wenn du dazu bereit wärst ;-).

Der Code:

```typoscript
temp.MENU_LINKS { 
  special = directory
  1 = TMENU 
  1 { 
    showAccessRestrictedPages = NONE
    showAccessRestrictedPages.addParams = &redirect_url=###RETURN_URL###
    expAll = 0 
    noBlur = 1 
    wrap = <ul> | </ul> 
    
    NO = 1  
    NO.wrapItemAndSub = <li class="l-1">|</li> 
    NO.stdWrap = upper 
    NO.ATagTitle.field = subtitle // title 
    NO.stdWrap.htmlSpecialChars = 1
    NO.ATagParams = class="L1"
    NO.ATagParams.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    NO.ATagParams = class="rzcolorbox-content36"    
    
    
    ACT = 1 
    ACT.wrapItemAndSub = <li class="l-1 active">|</li>
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams = class=" active rzcolorbox-content36"
    
  
    CUR = 1
    CUR.wrapItemAndSub = <li class="l-1 current">|</li>
    CUR.ATagParams = class="current"
    CUR.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    CUR.ATagParams = class="current rzcolorbox-content36"    
    
  } 
  2 = TMENU  
  2 {
    showAccessRestrictedPages = NONE
    showAccessRestrictedPages.addParams = &redirect_url=###RETURN_URL###
    expAll = 0 
    noBlur = 1 
    wrap = <ul> | </ul>    

    NO.wrapItemAndSub = <li class="l-2">|</li>
    NO.ATagParams.override = class="xxxxx"
    NO.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    NO.ATagParams.override = class="rzcolorbox-content36"    
 
    
    
    ACT = 2 
    ACT.wrapItemAndSub = <li class="active l-2">|</li>
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams.override = class=" active rzcolorbox-content36"  
   
  
    CUR = 2
    CUR.wrapItemAndSub = <li class="current l-2">|</li>
    CUR.ATagParams = class="current" 
    CUR.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    CUR.ATagParams.override = class="current rzcolorbox-content36"   
    
  }
  3 = TMENU
  3 {
    showAccessRestrictedPages = NONE
    showAccessRestrictedPages.addParams = &redirect_url=###RETURN_URL###
    expAll = 0 
    noBlur = 1 
    wrap = <ul> | </ul>    
    NO.wrapItemAndSub = <li class="l-3">|</li>
    NO.ATagParams = class="xxxxx"
    NO.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    NO.ATagParams.override = class="rzcolorbox-content36"    
        
    ACT = 3 
    ACT.wrapItemAndSub = <li class="active l-3">|</li>
    ACT.ATagParams = class="active"
    ACT.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    ACT.ATagParams.override = class=" active rzcolorbox-content36"  
    
  
    CUR = 3
    CUR.wrapItemAndSub = <li class="current l-3">|</li>
    CUR.ATagParams = class="current" 
    CUR.ATagParams.override.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    CUR.ATagParams.override = class="current rzcolorbox-content36"  
  }   
} # end menu
```

Vielen Dank

### [#7](https://www.typo3.net/d/110940-typoscript-fehler-im-menue/7) · brainwatcher · 2012-06-15

Okay, solved.

Wer genau liest ist klar im Vorteil. Habe override bei Ebene 1 vergessen....

Muss heißen:

```typoscript
    NO = 1  
    NO.wrapItemAndSub = <li class="l-1">|</li>
    NO.ATagParams = class="clean"
    NO.stdWrap = upper 
    NO.ATagTitle.field = subtitle // title 
    NO.stdWrap.htmlSpecialChars = 1
    NO.ATagParams = class="L1"
    NO.ATagParams.if {
       value=0
       isGreaterThan.field = fe_group
    }    
    NO.ATagParams.override = class="rzcolorbox-content36"
```

Wie markiere ich hier denn als gelöst?

---

Quelle: „Typoscript- Fehler im Menü“, typo3.net, https://www.typo3.net/d/110940-typoscript-fehler-im-menue
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
