Hallo liebe Leute!
Ich habe folgendes Problem. In einem FCE habe ich das Feld Miete (field_rent). Standartwert dieses Feldes ist 0 da es ein Integerfeld ist. Da ich aber bei einem Nullwert keine Anzeige benötige, wollte ich das Wrappen nur dann zulassen, wenn nach einem If State immer noch der .text Wert einen Inhalt hat.
Mein Versuch:
...
<![CDATA[
10 = TEXT
10 {
current = 1
if {
value = 0
isLessThan.field = field_rent
isFalse.text =
}
required = 1
wrap = <div class="rent"><label>Miete:</label>|</div>
}
]]>
...
Leider erhalte ich selbst bei einem Wert über 0 keine Ausgabe mehr. Wo liegt der Fehler? Und wir kann ich das besser machen wenn es so nicht klappen kann?
Ohne den If Block funktioniert die Ausgabe wunderbar, nur das ich immer ein Wrap mit "Miete: 0" erhalte. Also wird das required ignoriert und immer gewrappt.
hi,
klarer Fall du hast das falsche genommen momentan machst du folgendes:
wenn
0< als der wert aus der db
dann
nichts anzeigen
das ist ja wohl immer der fall oder?
probier es mal mit
isGreaterThan
oder
equals
siehe
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/If.html
schreib bitte, ob es klappt
gruss theis
Habe auf Anregung hin das geändert in:
...
<![CDATA[
10 = TEXT
10 {
current = 1
if {
value.field = field_rent
isGreaterThan = 0
isFalse.text =
}
required = 1
wrap = <div class="rent"><label>Miete:</label>|</div>
}
]]>
...
Aber leider funktioniert das immer noch nicht. Es wird mir einfach gar nix angezeigt. Allerdings bin ich mir nicht sicher ob man value über .field einen Wert zuweisen kann. in der Doku kann ich zumindest nix dazu finden.
hast du es so probiert?
...
<![CDATA[
10 = TEXT
10 {
value.field = field_rent
current = 1 # WAS IST EIGENTLICH DAS???
if.isGreaterThan = 0
required = 1 # UND DAS???
wrap = <div class="rent"><label>Miete:</label>|</div>
}
]]>
...
gruss theis
Ich hab die Lösung gefunden.
...
<![CDATA[
10 = TEXT
10 {
current = 1
if.isTrue.field = field_rent
required = 1
wrap = <div class="rent"><label>Miete:</label>|</div>
}
]]>
...
Ok was geschieht?
current = 1 bewirkt das der aktuelle Inhalt des TemplaVoilá Feldes übernommen wird.
if.isTrue.fied = field_rent prüft ob der Inhalt nicht "" oder 0 ist. Sollte das trotzdem der Fall sein gibt stdWrap umgehend "" aus und damit ist der Inhalt auf leer gesetzt.
required = 1 regelt ob ein String an den stdWrap übergeben wird. Ist das nicht der Fall wird der Inhalt nicht gewrappt.
Damit wird erreicht, dass zum einen der Inhalt geleert wird wenn ein Nullwert in dem Feld steht und zum zweiten das der Inhalt gewrappt wird wenn er nicht leer ist.
Somit ist das Problem gelöst.
aber hast du das so jetzt eigentlich ausprobiert?
...
<![CDATA[
10 = TEXT
10 {
value.field = field_rent
current = 1
if.isGreaterThan = 0
required = 1
wrap = <div class="rent"><label>Miete:</label>|</div>
}
]]>
...
gruss theis
Probiert habe ich es, aber es brachte nicht das erwünschte Ergebniss. Zwar weiss ich nicht wieso, aber die 0 wurde nie auf einen leeren String gesetzt. Damit wurde dann auch immer fleissig gewrappt weil ja ein Inhalt vorhanden war.