Zum Inhalt springen

"if-Abfrage" ohne Konstante

Erstellt am 3. September 2007 · 4 Antworten · letzte Antwort am 4. September 2007

Tags: Frage

Unbekannter Benutzer ·

Hallo,

ich möchte gerne in meinem Typoscript eine Variable setzen, die ich später in einer If-Abfrage verwenden kann und dann auch einen anderen Weg gehen.
Mein TS:

page.10.marks.INHALT = COA
page.10.marks.INHALT {
  5 = HTML
  5.value = <div id="frameout_inhalt_rechts">
  10 < styles.content.getRight
  10.stdWrap.if.isTrue.numRows < styles.content.getRight
  10.stdWrap.required = 1
  10.stdWrap.innerWrap = <div id="frame_inhalt_rechts">[...]</div>
  11 < styles.content.getRightZwei
  11.stdWrap.if.isTrue.numRows < styles.content.getRightZwei
  11.stdWrap.required = 1
  11.stdWrap.innerWrap = <div id="frame_inhalt_rechts">[...]</div>
  15 = HTML
  15.value = </div>
  20 < styles.content.get
  20.stdWrap.innerWrap = <div id="inhalt_main"> | </div>
}

Es handelt sich um Auslesen von Content (wie wohl jeder erkennt). Nun will ich, wenn entweder die Spalte getRight oder Spalte getRightZwei Inhalt hat, den Inhalt von der normalen Spalte (get) anders wrappen.
Gibt es einen Weg, eine Variable bei 10 und 11 zu setzen, die später bei 20 abgerufen werden kann?

Lg David

Unbekannter Benutzer · · Beste Antwort

hallo!
auf typo3forum.net hat man mir den tipp mit override gegeben. ich versuche mich schon die ganze zeit daran, aber es will nicht so recht klappen...
kann mir jemand vielleicht kurz override ein wenig genauer erklären? weil mit der tsref und anderen anleitungen komme ich nicht so ganz zurecht.

david

Unbekannter Benutzer ·

Hallo!
Mit Hilfe von override bin ich nun schonmal so weit gekommen, dass mir der Hauptinhalt (20) anders gewrappt wird, sobald getRight Inhalt hat. Jedoch wird 20 auch nur dann gewrappt 🙁 Wenn getRight keinen Inhalt hat, wird mir 20 gar nicht erst angezeigt im FE... Will aber!!! wie muss ich unten stehenden Code dann modifizieren?

page.10.marks.INHALT = COA
page.10.marks.INHALT {
  5 = HTML
  5.value = <div id="frameout_inhalt_rechts">
  10 < styles.content.getRight
  10.stdWrap.if.isTrue.numRows < styles.content.getRight
  10.stdWrap.required = 1  
  10.wrap = <div id="frame_inhalt_rechts">[...]</div>
  11 < styles.content.getRightZwei
  11.stdWrap.if.isTrue.numRows < styles.content.getRightZwei
  11.stdWrap.required = 1
  11.wrap = <div id="frame_inhalt_rechts">[...]</div>
  15 = HTML
  15.value = </div>
  20 < styles.content.get
  20.stdWrap.innerWrap = <div id="inhalt_main" style="background-color:#c0c0c0;"> | </div>      
  20.stdWrap.if.isTrue.numRows < styles.content.getRight
  20.required = 1
  20.stdWrap.innerWrap.override = <div id="inhalt_main" style="background-color:#FF0000;">|</div>
}
Unbekannter Benutzer ·

Na dann poste ich mal meine Lösung selbst...

Ich habe ein eigene Condition in der localconf.php erstellt

    case ('inhalt_rechts'):
      $pageid = $GLOBALS['TSFE']->id;
      $sqlbefehl = "SELECT * FROM tt_content WHERE (pid = $pageid) AND ((colPos = 1) OR (colPos = 2) OR (colPos = 3) OR (colPos = 4)) AND (hidden = 0) AND (deleted = 0);";
      $sql = mysql_query ($sqlbefehl);
      $anzahl_eintraege = mysql_num_rows($sql);
      
      if ($anzahl_eintraege > 0)
        return true;     
    break;

und mein Typoscript wie folgt geändert:

temp.inhalt = COA

temp.inhalt {
  5 = HTML
  5.value = <div id="frameout_inhalt_rechts">
  
  10 < styles.content.getRightEins
  10.stdWrap.if.isTrue.numRows < styles.content.getRightEins
  10.stdWrap.required = 1  
  10.wrap = <div id="frame_inhalt_rechts"> | </div>
  
  12 < styles.content.getRight
  12.stdWrap.if.isTrue.numRows < styles.content.getRight
  12.stdWrap.required = 1
  12.wrap = <div id="frame_inhalt_rechts"> | </div>
  
  14 < styles.content.getRightDrei
  14.stdWrap.if.isTrue.numRows < styles.content.getRightDrei
  14.stdWrap.required = 1
  14.wrap = <div id="frame_inhalt_rechts"> | </div>
  
  16 < styles.content.getRightVier
  16.stdWrap.if.isTrue.numRows < styles.content.getRightVier
  16.stdWrap.required = 1
  16.wrap = <div id="frame_inhalt_rechts"> | </div>

  18 = HTML
  18.value = </div>
}
temp.inhalt.20 < styles.content.get

[userFunc = user_match(inhalt_rechts)]
temp.inhalt.20.wrap = <div id="inhalt_main" style="margin-right:180px;"> | </div>

[ELSE]
temp.inhalt.20.wrap = <div id="inhalt_main"> | </div>

[END]

anders war da wohl nicht mehr zu helfen ...