Zum Inhalt springen

Wert abhängiges Wrappen

Erstellt am 20. September 2006 · 6 Antworten · letzte Antwort am 22. September 2006

Tags: Frage

garbast ·

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.

garbast ·

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.

theis ·

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

garbast ·

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.

theis ·

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

garbast ·

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.