Zum Inhalt springen

IFSUB und Benutzerrechte

Erstellt am 12. Juli 2005 · Noch keine Antworten

Tags: Frage

Simon ·

Folgendes Problem tritt bei mir auf.

Mein Menu sieht folgendermassen aus:

Level_1
-- Level_2-1
---- Level_3-1
---- Level_3-2
---- Level_3-3
-- Level_2-2
---- Level_3-4
-- Level_2-3
Level-1-2
Level-1-3

Die Level_1-Menüpunkte werden als Reiter oben vertikal gerendert, die Level-2 und Level-3 Menüpunkte links (als Beispiel www.topdeq.de (die Seite ist allerdings nicht mit Typo3 erstellt)).

Das Level_1-Menü funktioniert ohne Probleme.
Beim Level_2-Menü bekomme ich allerdings folgendes Probleme mit Frontend-Benutzern:

Der Menüpunkt Level_3-4 ist nur vorhanden, wenn ein User eingeloggt ist.

Der Menüeintrag "Level_2-2" sollte also wenn kein User eingeloggt ist als "NO" und wenn einer eingeloggt ist als "IFSUB" geparsed werden. Dem ist aber nicht so, sondern der Eintrag wird immer so geparsed wie er nach dem Leeren des Caches als erstes aufgerufen wird.

Meine Menuconfig:

temp.menu_2 = HMENU
temp.menu_2.wrap = <h2>Categories</h2><ul> | </ul>

temp.menu_2.1 = TMENU
temp.menu_2.1 {
      NO {
         doNotLinkIt = 1
         doNotShowLink= 1
       }
}
temp.menu_2.2 = TMENU
temp.menu_2.2 {
   expAll = 1 
   NO {
         subst_elementUid = 1
         before.wrap = <li class="navcolor" id="m{elementUid}">
         after.wrap = </li> 
}
   IFSUB = 1
   IFSUB {
         before.wrap = <li class="navcolor" id="m{elementUid}">
         after.wrap = <ul> 
}
   ACTIFSUB = 1
   ACTIFSUB {
         before.wrap = <li class="navcolor" id="m{elementUid}">
         after.wrap = <ul id="show"> 
}
}
temp.menu_2.3 = TMENU
temp.menu_2.3 {
         wrap = | </ul></li>
         expAll = 1 
   NO {
         before.wrap = <li>
         after.wrap = </li>
}
}
                         $this->sys_page->storeHash($this->hash, serialize($this->result),'MENUDATA');

Wenn ich in der Datei "class.tslib_menu.php" die Zeile 804 auskommentiere (damit unterbinde ich das cachen der Menudaten), tritt der Fehler nicht mehr auf, allerdings wird dann das Menü bei jedem Zugriff neu geparsed, was leider ziemlich Prozessor lastig zu sein scheint.

Kennt da jemand ne bessere Lösung?