Zum Inhalt springen

Bedingte Ausgabe

Erstellt am 17. November 2008 · 3 Antworten · letzte Antwort am 19. November 2008

Tags: Frage

scherfel ·

Liebe Typo3-Spezialisten,

kann mir jemand helfen, bevor ich verzweifel: Ich möchte auf unserer Website bestimmte Elemente nur anzeigen, wenn auch Inhalt in der Datenbank vorhanden ist. Dazu habe ich bestimmte DIVs definiert, und habe ein zusätzliches Feld "user_startboxen_leo_box" in der Datenbank angelegt, welches die Werte 0 bis 7 annehmen kann. Abhängig von diesem Feld soll ein bestimmtes DIV gefüllt werden. Dazu habe ich in Typoscript wie folgt codiert:

  subparts.INHALT1 >
  subparts.INHALT1 = COA
  subparts.INHALT1.wrap = <div id="boxzeile1">|</div>


  subparts.INHALT1.10 = CONTENT
  subparts.INHALT1.10{
       table = tt_content
       select.where = user_startboxen_leo_box = 0
       wrap = <div id="box0">|</div>
  }
  subparts.INHALT1.20 = CONTENT
  subparts.INHALT1.20{
      table = tt_content
      select.where = user_startboxen_leo_box = 1
      wrap = <div id="box1">|</div>
  }
  subparts.INHALT1.30 = CONTENT
  subparts.INHALT1.30{
      table = tt_content
      select.where = user_startboxen_leo_box = 2
      wrap = <div id="box2">|</div>
  }

Jetzt soll aber das <div id="box0"> nur dann kommen, wenn auch ein Datensatz mit user_startboxen_leo_box = 0 in der Datenbank existiert. Anderenfalls soll das div überhaupt nicht kommen.
Kann mir einer helfen?

Vielen Dank

Holger Scherfel

Michaelh74 ·

such mal nach section_frame. Das kann im Formular eines Content Elements über Frame bzw. Rahmen angewählt werden. Das macht genau das, was Du mit Deinem Workaround erzielen willst, nämlich in Abhängigkeit wraps um Content Elemente.

Gruß
Michael

chris3 ·

... Dein Freund ist die - etwas komische - IF-Abfrage... :o

    		# IF part - only parse, if page:layout=1
    		subparts.INHALT1.stdWrap.if {
    				isInList.field = layout
    				value = 1
    		}

Das ist jetzt zwar mit eine anderen Bedingung, als der von Dir gewünschten (Layout der Seite muss '1' sein), aber ein bisschen Transferleistung will ich Dir nicht abnehmen... 😉

scherfel ·

Also die IF-Abfrage ist definitiv nicht mein Freund 🙁
Ich habe es aber anders lösen können und zwar so:

  subparts.INHALT1.10 = COA
  subparts.INHALT1.10.wrap = <div id="boxzeile1">|</div>
  subparts.INHALT1.10{
#      Oben Links Breit
    10 = COA
    10{
     10 = CONTENT
        10{
           table = tt_content
           select.where = user_startboxen_leo_box = 0
        }
        10.stdWrap.required = 1
        10.stdWrap.wrap = <div id="box0">0|</div>
    }

#      Oben Links Klein
    20 = COA
    20{
        10 = CONTENT
        10{
           table = tt_content
           select.where = user_startboxen_leo_box = 1
        }
        10.stdWrap.required = 1
        10.stdWrap.wrap = <div id="box1">1|</div></td>
    }
   ....
}

Ich danke allen, die geantwortet und geholfen haben.

Gruß
Holger