Zum Inhalt springen

User-Menü expandiert - ungewollt

Erstellt am 24. März 2010 · Noch keine Antworten

Tags: Cache & Performance, Frage

Adolar ·

Hallo allerseits,

kann es sein, dass "expAll=0" für eigene Menüs keine Wirkung zeigt oder mache ich etwas falsch?

Ich binde mit TS ein eigenes Menü ein:

page.includeLibs.productsmenu = fileadmin/user_productsMenu.inc

lib.user_productsMenu = HMENU
lib.user_productsMenu {
  cache_period = 0
  special = userfunction
  special.userFunc = user_productsMenu->makeMenuArray
  1 = TMENU
  1 {
    noBlur = 1
    expAll = 0
    wrap = <ul>|</ul>
    NO.wrapItemAndSub = <li class="left-level-1-no">|</li>
    ACT = 1
    ACT.wrapItemAndSub = <li class="left-level-1-act">|</li>
  }
  2 = TMENU
  2 {
    noBlur = 1
    expAll = 0
    wrap = <ul>|</ul>
    NO.wrapItemAndSub = <li class="left-level-2-no">|</li>
    ACT.wrapItemAndSub = <li class="left-level-2-act">|</li>
  }
  ...
}

Die Funktion "user_productsMenu->makeMenuArray" erzeugt mir ein verschachteltes Array der Menü-Einträge, wobei jeder Menü-Eintrag auf einunddieselbe Seite zeigt:

<?php
class user_productsMenu {

function makeMenuArray($content,$conf) {
  $menuArr = array(
    array(
      'title' => 'Product Group 1',
      'uid' => '100',
      '_OVERRIDE_HREF' => 'index.php?id=71&cmd=please',
      '_SUB_MENU' => array(
        array(
          'title' => 'Product Group 2',
          'uid' => '110',
          '_OVERRIDE_HREF' => 'index.php?id=71&cmd=thankyou',
          '_SUB_MENU' => array(
            array(
              'title' => 'Product 2.1',
              'uid' => '111',
              '_OVERRIDE_HREF' => 'index.php?id=71'),
            array(
              'title' => 'Product 2.2',
              'uid' => '112',
              '_OVERRIDE_HREF' => 'index.php?id=71'),
            array(
              'title' => 'Product 2.3',
              'uid' => '113',
              '_OVERRIDE_HREF' => 'index.php?id=71'))),
        array(
          'title' => 'Product 1.1',
          'uid' => '120',
          '_OVERRIDE_HREF' => 'index.php?id=71'),
        array(
          'title' => 'Product 1.2',
          'uid' => '130',
          '_OVERRIDE_HREF' => 'index.php?id=71'))),
    array(
      'title' => 'Product Group 3',
      'uid' => '200',
      '_OVERRIDE_HREF' => 'index.php?id=71'));
  
  return $menuArr;
}
}
?>

Es ist das vollständige, expandierte Menü zu sehen obwohl für alle Menübenenen expAll=0 ist. Kann das jemand bestätigen?

Eine zweite Merkwürdigkeit betrifft "cache_period=0", mit dem ich erreichen will, dass das Menü nicht gecached wird. Ich habe mal folgendes als "title" eingebaut, um zu sehen, ob makeMenuArray tatsächlich bei jeder Menüauswahl aufgerufen wird:

...
   'title' => strftime ( '%X', time () ),
...

Die angezeigte Uhrzeit hat sich nicht wirklich bei jeder Menüumwahl geändert, woraus ich schließe, dass das Menü gecached wird. Gibt es da einen Trick, um das Menü bei jedem Klick neu aufbauen zu lassen?

Viele Grüße,
Thomas