Zum Inhalt springen

Menu in einer Ebene einblenden mit if Abfrage

Erstellt am 22. September 2004 · 3 Antworten · letzte Antwort am 13. April 2006

Tags: Frage

Lietzi ·

Hallo Leute!

Hier mal ein neues Problem, bei dem ich nicht mehr weiter komme (vielleicht ist es schon zu spät, oder ich fang es falsch an):

Ich möchte auf einigen Seiten ein SubSub_Menu anzeigen lassen, und zwar immer dann, wenn eine if-Anweisung, die sich Ihre Daten aus Constanten sucht, positives Feedback gibt.

Das ist was ich bisher gebaut habe:

Das nette Menu in einem temp-Object

#Erstellung des News_Menu
temp.News_Menu = HMENU
temp.News_Menu.special = directory
temp.News_Menu.special.value = {$page.news_id}
temp.News_Menu.1 = TMENU
temp.News_Menu.1 {
   NO {
        linkWrap = | <br>
        ATagBeforeWrap = 1
        ATagParams = class="News_Menu_no"
   }
   ACT = 1
   ACT {
        linkWrap = | <br>
        ATagBeforeWrap = 1
        ATagParams = class="News_Menu_act"
   }
}

Das Template, dass mir das Menu in die Ebene einbaut:

temp.News_Menu_Container = TEMPLATE
temp.News_Menu_Container {
    template = TEXT
    template.value = <div id="News">###News_Menu###</div>
    marks.News_Menu < temp.News_Menu
}

Und zu guter letzt das Seitenobject, das den ganzen Kram auf der Seite anzeigen soll, incl. if abfrage laut tsref S. 31:

page.5 < temp.News_Menu_Container
page.5.if {
    value = {$page.news_id}
    isGreaterThan = 3
    negate = 1
}

Es funktioniert alles, außer, dass die Menu-Ebene immer eingebunden wird.

Meine Idee ist somit: Die If-Anweisung tut es nicht. Wahrscheinlich kann sie das kopieren des Containers nicht verhindern.

Meine Frage: wie kann ich nun verhindern, dass die Ebene angezeigt wird, wenn {$page.news_id} kleiner als 3 ist? Gibt es eine bessere Lösung?

Danke für jede Idee!

jenses ·

Hast du es schon mal hiermit probiert :

page.5 < temp.News_Menu_Container 
page.5.if { 
    value = {$page.news_id} 
    isLessThan = 3 
    negate = 1 
}

Wenn {$page.news_id}<3 --> result:true --> negate=1 --> result:false .
Jedenfalls scheint das mir logisch richtig zu sein.

jenses

captnfuture ·

moin,
ist zwar schon ein büschn älter das problem, aber noch immer keine lösung...
ich kämpf prinzipiell grad mit dem gleichen problem:

page {
  10 = TEXT
  10.value = html-kram, der nur angezeigt werden soll, wenn Konstante vorhanden
  10.if {
    isTrue = {$konstante}
}

wenn man anstelle der konstante eine bedingung macht, wie

value = 10
isGreaterThan = 11

funktioniert die if-abfrage... interessanterweise allerdings nur, wenn man

10 = TEXT

und nicht

10 = HTML

schreibt!?

Aber im Grunde geht es ja um die Abrage mittels einer Konstanten.
Hintergrund: auf der seite soll etwas gezeigt werden, aber nur wenn man in den TS-Constants einen bestimmten Wert belegt hat...

Vielen Dank schon mal :-)