Zum Inhalt springen

HTML erst dann ausgeben, wenn HMENU Objekte enthält

Erstellt am 6. April 2008 · 4 Antworten · letzte Antwort am 9. April 2008

Tags: Frage

jhjp ·

Hallo,
ich komm mit TypoScript nicht mehr weiter. Hab ein COA mit 10 = HMENU und 20 = TEXT.
So wie im Code unten, wird der Text (20) ja immer ausgegeben. Ich möchte aber, dass der Text nur dann angezeigt wird, wenn das HMENU auch angezeigt wird (wenn dieses also Elemente enthält)

Wie geht das???

lib.subsubnavi = COA
lib.subsubnavi.10 = HMENU
lib.subsubnavi.10.entryLevel = 3
lib.subsubnavi.10.1 = TMENU
lib.subsubnavi.10.1 {
  collapse = 0
  expAll = 0
  noBlur = 1
  wrap = <ul id="subsubnavi1">|</ul>
  NO{  
    wrapItemAndSub = <li>|</li> |*| <li>|</li> |*| <li class="last">|</li>
    linkWrap = |
    ATagTitle.cObject = TEXT
    ATagTitle.cObject.field = title
    ATagTitle.cObject.dataWrap = |
  }     
  ACT < .NO
  ACT = 1
  ACT{
    linkWrap = |
    ATagParams = class="active"
    ATagTitle.cObject = TEXT
    ATagTitle.cObject.field = title
    ATagTitle.cObject.dataWrap = |
  }
}

lib.subsubnavi.20 = TEXT
lib.subsubnavi.20.value = <div class="clearerborderline"></div>

Hoffe, dass mir jmd helfen kann...
Danke und viele Grüße
Beni

brokemeister ·

Probiere mal so was in die Richtung, ich weiß allerdings nicht, ob es auf Aufhieb funktioniert...

lib.subsubnavi = HMENU
lib.subsubnavi {
...
required = 1
stdWrap.wrap = <ul id="subsubnavi1">|</ul>
stdWrap.append = TEXT 
stdWrap.append.value = <div class="clearerborderline"></div>
...
}

So sollte auch das < u l > nur auf, wenn was drin ist.

Ansonsten einfach mal in der TS-Referenz nachschauen...

just2b ·

Hallo,

verzicht auf das COA und gib das ganze hier an:
NO.wrap = <ul>|</ul><div id="deindiv"></div>

lg georg

jhjp ·

Danke für eure Antworten... es funktioniert aber noch nicht ganz...

Hier mal das TS in voller Länge:

lib.subsubnavi = COA
lib.subsubnavi.10 = HMENU
lib.subsubnavi.10.entryLevel = 3
lib.subsubnavi.10.1 = TMENU
lib.subsubnavi.10.1 {
  collapse = 0
  expAll = 0
  noBlur = 1
  wrap = <ul id="subsubnavi1">|</ul>
  NO{  
    wrapItemAndSub = <li>|</li> |*| <li>|</li> |*| <li class="last">|</li>
    linkWrap = |
    ATagTitle.cObject = TEXT
    ATagTitle.cObject.field = title
    ATagTitle.cObject.dataWrap = |
  }     
  ACT < .NO
  ACT = 1
  ACT{
    linkWrap = |
    ATagParams = class="active"
    ATagTitle.cObject = TEXT
    ATagTitle.cObject.field = title
    ATagTitle.cObject.dataWrap = |
  }
}
lib.subsubnavi.20 = HMENU
lib.subsubnavi.20.entryLevel = 4
lib.subsubnavi.20.1 = TMENU
lib.subsubnavi.20.1 < lib.subsubnavi.10.1
lib.subsubnavi.20.1.wrap = <ul id="subsubnavi2">|</ul>

lib.subsubnavi.30 = HMENU
lib.subsubnavi.30.entryLevel = 5
lib.subsubnavi.30.1 = TMENU
lib.subsubnavi.30.1 < lib.subsubnavi.10.1
lib.subsubnavi.30.1.wrap = <ul id="subsubnavi3">|</ul>

lib.subsubnavi.40 = TEXT
lib.subsubnavi.40.value = <div class="clearerborderline"></div>

Wenn es keine Elemente gibt, die als Navigationspunkte angezeigt werden können, soll gar kein HTML ausgegeben werden.

Wenn nur im entryLevel 3 Elemente vorhanden sind soll das HTML so aussehen:
<ul id="subsubnavi1">...</ul><div class="clearerborderline"></div>

Wenn im entryLevel 4 auch Elemente sind, solld as HTML so aussehen:
<ul id="subsubnavi1">...</ul><ul id="subsubnavi2">...</ul><div class="clearerborderline"></div>

usw...

das da: <div class="clearerborderline"></div> soll einfach hinten angehängt werden, sobald Navigationselemente ausgegeben werden

jhjp ·

Habs selber rausgekriegt.
und zwar mit der Condition: [treeLevel = 3,4,5]

jaja rtfm... 😃