Zum Inhalt springen

Menü Userfunc und Mehrsprachigkeit

Erstellt am 27. Juli 2011 · 1 Antwort · letzte Antwort am 27. Juli 2011

Tags: PHP, Frage

CrashOverride ·

Hallo Gemeinde,

ich habe ein ganz normales TMENU mit 4 Ebenen. Drei Davon werden über eine UserFunc generiert. In der Standardsprache der Seite funktioniert dies alles wunderbar und toll sobald ich aber eine andere Sprache habe wird nur noch eine Ebene generiert (also ges. 2 Ebenen sichtbar) und die Dritte und Vierte ist einfach nicht vorhanden obwohl diese im generierten Array richtig vorhanden wäre? Hilfe?!
Ich bin wirklich für jeden Tip dankbar, ich schlage mich mit diesem Thema schon eine ganze Woche rum und bin genausoweit wie vorher... :-(

Hier mein TS:

lib.leftMenu.20 = HMENU
lib.leftMenu.20 {
  #entryLevel = 2
  wrap = <ul class="leftMenu">|</ul>
  
  1 = TMENU
  1 {
    NO.allWrap = <li class="leftMenu-1">|</li>
    NO.ATagParams = class="leftMenu-1"
    
    ACT = 1
    ACT.allWrap = <li class="leftMenu-1 active">|</li>
    ACT.ATagParams = class="leftMenu-1"
  }

  2 = TMENU
  2 {
    itemArrayProcFunc = user_menuFunc->makeMenuArray
    NO.allWrap = <li class="leftMenu-2">|</li>
    NO.ATagParams = class="leftMenu-2"
    
    ACT = 1
    ACT.allWrap = <li class="leftMenu-2 active">|</li>
    ACT.ATagParams = class="leftMenu-2"
  }

  3 = TMENU
  3 {
    NO.allWrap = <li class="leftMenu-3">|</li>
    NO.ATagParams = class="leftMenu-3"
    
    ACT = 1
    ACT.allWrap = <li class="leftMenu-3 active">|</li>
    ACT.ATagParams = class="leftMenu-3"
  }

  4 = TMENU
  4 {
    NO.allWrap = <li class="leftMenu-4">|</li>
    NO.ATagParams = class="leftMenu-4"
    
    ACT = 1
    ACT.allWrap = <li class="leftMenu-4 active">|</li>
    ACT.ATagParams = class="leftMenu-4"
  }
}

Und hier der Array, welcher generiert wird (aktuell hart gecoded zum testen...)

$return = array(
          array(
            "title" => "seite 1", 
            "_OVERRIDE_HREF" => "index.php?id=78", 
            "ITEM_STATE" => "ACT", 
            "_SUB_MENU" => array(
              array(
                "title" => "unterseite", 
                "_OVERRIDE_HREF" => "index.php?id=100", 
                "ITEM_STATE" => "",
              ),
            ),
          ),
        );

Das Menü welches zurückgegeben wird sieht wie folgt aus:
Deutsch:
- Menüpunkt 1
--- seite 1
----- unterseite

Englisch:
- Menupoint 1
--- seite 1

Leider fehlt die Seite "unterseite", benötige ich noch irgendwelche einstellungen?!

CrashOverride ·

Ist ja klar, kaum schreibe ich etwas in ein Forum komme ich kurz darauf selber auf die Antwort.

Im generierten Menü-Array muss noch der Wert "_PAGES_OVERLAY" => "1" gesetzt werden, dass es in einer anderen Sprache auch funktioniert.
Ich bin darauf gekommen als ich im TYPO3 Standard alles bis auf die lezte IF-Abfrage durch debuggt habe... Schwerer weg aber es hat sich gelohnt!