[TYPO3-german] Aufklappendes TMENU mit special.directory

JoH info at cybercraft.de
Thu May 11 02:56:49 CEST 2006


> Ich muss ehrlich sagen, das Handling fuer ein HMENU ab einer
> bestimmten Seite laesst zu wuenschen übrig...
> Da war 3.8.0 um einiges Besser, denke ich.
>
> Ein einfaches aufklappendes Textmenue zu erstellen ist ein totaler
> Alptraum!

Das ist wohl doch eher wieder der Bug, der vor dem Bildschirm sitzt.
Vielleicht aber auch der, der in den vielen tollen Büchern steht ;-)

Habe soeben folgendes mit TYPO3 4.0 getestet:

page = PAGE
page.typeNum = 0
page.10 = HMENU
page.10 {
  special = directory
  special.value = 123
  1 = TMENU
  1 {
    expAll = 1
    wrap = <ul>|</ul>
    NO {
      wrapItemAndSub = <li>|</li>
    }
  }
  2 = TMENU
  2 {
    wrap = <ul>|</ul>
    NO {
      wrapItemAndSub = <li>|</li>
    }
  }
  3 = TMENU
  3 {
    wrap = <ul>|</ul>
    NO {
      wrapItemAndSub = <li>|</li>
    }
  }
}

Funzt ganz hervorragend, völlig ohne Albträume _und_ ohne entryLevel!
123 ist nicht die Rootseite sondern irgendwo im Pagetree.
Die erste Ebene ist immer offen.
Die anderen werden nur bei aktiver Elternseite aufgeklappt.

Alles so, wie's sein soll.
Momentan zu sehen unter: http://www.4any1.de/index.php?id=87

Trick dabei:
Du mußt das eigentliche Template in einen separaten Sysfolder legen und im
Haupttemplate per "include Basis Template" includen.
Außerdem mußt Du per "template on Next level" das gleiche Template nochmal
includen.

Nachteil dabei:
Sowohl das Roottemplate als auch das Template im Sysfolder muß die Rootlevel
Checkbox aktiviert haben, was sich ggf. auf andere Levelbezogene Dinge
auswirkt.
Also vorsichtig mit Conditions oder levelmedia, leveluid, leveltitle und
levelfield und lieber zweimal testen.

Ich hab das allerdings hier schon mehrfach betont und immer wieder erklärt,
dass entryLevel=x bei einem special=whatever absolut nix zu suchen hat.
Außerdem habe ich auch diese Lösung schon mehrfach gepostet. Sowohl Englisch
als auch Deutsch.
Scheint nur kaum jemanden zu interessieren, weil überall munter der
entryLevel Hack propagiert wird.
Der birgt aber genau die Probleme, die Du jetzt hast, nämlich immer dann,
wenn ein Menü einen Startpunkt auf einer tieferen Ebene hat, aber dennoch
auf einer höheren Ebene angezeigt werden soll:

Startpunkt auf Level 2 -> Anzeige auf Level 1 -> geht nicht mit entryLevel=2
+ special!
Grund:
entryLevel schaltet das Menü solange ab, bis man sich auf Level 2 oder
darüber befindet.

Startpunkt auf Level 1 -> Anzeige auf Level 2 -> geht mit entryLevel=1 +
special!
Grund:
entryLevel schaltet das Menü ein und würde normalerweise die passende Seite
aus der Rootline liefern, diese wird jedoch durch special überschrieben,
vorausgesetzt, dass sich die dort angegebene Seite _ebenfalls_ auf Level 1
befindet!

Das Ganze hängt mit der Art und Weise zusammen, in der die SELECT Statements
in einem HMENU durchgeführt werden. entryLevel schränkt die Anzahl der
möglichen Seiten bereits ein, sodaß special nur dann überhaupt funktioniert,
wenn die unter value angegebenen Seiten eine Teilmenge dieser
eingeschränkten Anzahl bilden.

Daher ist "template on next level" angesagt. Dann klappts nämlich für beide
Fälle problemlos.

Kannst ja mal Bescheid geben, ob das bei Dir auch geklappt hat.

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your knob sometimes!)
Dieter Nuhr, German comedian
openBC: http://www.cybercraft.de





More information about the TYPO3-german mailing list