Zum Inhalt springen

IF-Abfrage ob Variable oder Datenbankfeld einen Wert hat

Erstellt am 28. Februar 2011 · 2 Antworten · letzte Antwort am 1. März 2011

Tags: Frage

bugblatterbeast ·

Hallo, ich benutze das Feld media aus der pages Tabelle um dynamische Hintergrundbilder für ein div zu erzeugen.

page.10.marks.CONTENT_STYLE = TEXT
page.10.marks.CONTENT_STYLE.value = style="background-image: url(/uploads/media/{page:media});"
page.10.marks.CONTENT_STYLE.insertData = 1

Das funktioniert schon sehr gut. Wie könnte ich denn ansetzen, wenn ich jetzt noch eine Bedingung einbauen möchte? Die TYPO-Script Referenz für IF hilft mir leider überhaupt nicht weiter. Das Ganze soll dann do aussehen:

PSEUDOCODE:
wenn istWert(pages.media) {
  marker = style="background-image: url(/uploads/media/{page:media});"
}
sonst {
  marker =
}
Tevsa ·

Moin,

mehr als eine Ansatz habe ich grade nicht parat, aber vielleicht's hilft es ja:

Das:

temp.maintemplate= COA
temp.maintemplate {
        # 10 wird nur eingebunden, wenn das if-Statement „wahr“ zurückgibt
        10 = COA
        10 {
                # das select von oben kommt hier als Kopie aus css_styled_content
                if.isTrue.numRows < styles.content.getRight
                10 = TEMPLATE
                10 { 
                        template = FILE
                        template.file = fileadmin/templates/template-2column.html
                }
        }
        # 20 wird nur eingebunden, wenn das if-Statement „falsch“ zurückgibt 
        20 = COA
        20 {
                if.isFalse.numRows < styles.content.getRight
                10 = TEMPLATE
                10 {     
                        template = FILE
                        template.file = fileadmin/templates/template.html
                }
        }
}

ist aus
http://typo3.org/documentation/document-library/extension-manuals/ts45min_de/0.5.1/view/1/7/
unterhalb von numRows.

Dort wird, wenn in der Spalte Rechts etwas drinnsteht, dann nimm eine andere HTML Vorlage. Das habe ich auch mal eingesetzt KLappte prima. Dies entspricht deinem Problem.

Die Zeile:
if.isTrue.numRows < styles.content.getRight
müste durch
if.isTrue.numRows < media
ersetzt werden. Aber wie weiß ich jetzt nicht genau.

Hoffe der Ansatz hilft :-)

Gruß
Tevsa

bugblatterbeast ·

Hallo Tevsa,

vielen Dank für Deine Hilfe, der Ansatz hat mich auf den richtigen Weg gebracht. Ich konnte das Problem jetzt folgendermaßen lösen:

page.10.marks.CONTENT_STYLE = COA
page.10.marks.CONTENT_STYLE {
  if.isTrue.field = media
  10 = TEXT
  10 {
    value = style="background-image: url({$myDomain}uploads/media/{page:media});"
    insertData = 1
  }
}

Es scheint alles so zu funktionieren, wie ich es wollte. Diese Syntax ist für einen C-Programmierer echt nicht einleuchtend.

Gruß, bbb