Jump to content
xt:Commerce Community Forum

Hat Smarty In Mathe Ne 5?


smedder

Recommended Posts

Folgendes Problem:

Es gibt Dinge im Shop die haben als Preis 0 Euro, weil Handyshop und andere Ger?te ohne Vertrag kosten z.b. 235,42 Euro.

Nun habe ich das versucht so zu l?sen, da es sonst nicht angezeigt wird, dass bei einem Preis von 0 Euro das auch da steht:

{if $products_price > 0}{$PRODUCTS_PRICE}{else} 0,00 Euro{/if}

Ich ungef?hr 1000 unterschiedliche Varianten mit unterschiedlichen Stellungen, etc ausprobiert aber Smarty ist so freundlich und schreibt grunds?tzlich 0,00 Euro, auch wenn der Artikelpreis, wie im Beispiel 235,42 Euro betr?gt.

Hat daf?r vielleicht jemand eine Erkl?tung?

Link to comment
Share on other sites

probiers mal mit

{if int($products_price) > 0}{$PRODUCTS_PRICE}{else} 0,00 Euro{/if}

ich wei? jetzt nicht, ob smarty das int versteht, ansonsten mu?t du es mit php l?sen

{php}if(int($products_price) > 0) { echo $PRODUCTS_PRICE }else{ echo '0,00 Euro'}{/php}

Probier das mal durch.

Kann sein, dass php oder Smarty den $products_price nicht als Zahl erkennt, weshalb die Formel ansich nicht mehr stimmen kann.

Ach ja, noch was f?llt mir auf: Gro? und Kleinschreibung beachten !!!

$products_price ist nicht $PRODUCTS_PRICE !!!

Link to comment
Share on other sites

Originally posted by berny@Mar 25 2005, 17:38 PM

probiers mal mit

{if int($products_price) > 0}{$PRODUCTS_PRICE}{else} 0,00 Euro{/if}

ich wei? jetzt nicht, ob smarty das int versteht, ansonsten mu?t du es mit php l?sen

{php}if(int($products_price) > 0) { echo $PRODUCTS_PRICE }else{ echo '0,00 Euro'}{/php}

Probier das mal durch.

Kann sein, dass php oder Smarty den $products_price nicht als Zahl erkennt, weshalb die Formel ansich nicht mehr stimmen kann.

Ach ja, noch was f?llt mir auf: Gro? und Kleinschreibung beachten !!!

$products_price ist nicht $PRODUCTS_PRICE !!!

Danke f?r die Idee, funktioniert aber auch beides leider nicht.

Link to comment
Share on other sites

Versuche es nochmals:

{php}if(int($PRODUCTS_PRICE) > 0) { echo $PRODUCTS_PRICE; }else{ echo '0,00 Euro';}{/php}

{php}if(int($products_price) > 0) { echo $products_price; }else{ echo '0,00 Euro';}{/php}

K?nnte aber auch so hei?en, je nach Template !

{php}if(int($module_data.PRODUCTS_PRICE) > 0) { echo $module_data.PRODUCTS_PRICE; }else{ echo '0,00 Euro';}{/php}

Link to comment
Share on other sites

m.E. gibt es ywei m?gliche Gr?nde:

1. smarty ist "case sensitive", d.h., die Schreibweise der Variablennamen muss genau identisch sein.

"PRODUCTS_PRICE" ist nicht gleich "products_price". Versuche mal "{if $PRODUCTS_PRICE > 0}"

2. "{$PRODUCTS_PRICE}" ist keine Zahl sondern eine String (z.B. "5.00 EUR").

So dass m.E. die Bedingung "{if $products_price > 0}" nicht richtig ausgewertet werden kann.

Link to comment
Share on other sites

hmmm, dann stellt sich die Frage, wie der String ausschaut.

W?re er 0.00 Euro, w?rde sich das Problem nicht stellen.

Welches Ergebnis bringt der String $PRODUCTS_PRICE wenn der Preis 0 Euro hat ?

Dies k?nnte man dann auch so verlgleichen:

{php}if($PRODUCTS_PRICE != '0.00') { echo $PRODUCTS_PRICE; }else{ echo '0,00 Euro';}{/php}

oder wenn der String nichts zur?ckbringt:

{php}if($PRODUCTS_PRICE != '') { echo $PRODUCTS_PRICE; }else{ echo '0,00 Euro';}{/php}

Link to comment
Share on other sites

Originally posted by Hubi@Mar 27 2005, 09:34 AM

Punkt 2 ist der Grund, warum das nicht klappt.

Ein String, der irdgendwas enth?lt ist immer > 0.

Was wird denn angezeigt, wenn der Preis 0 ist? Nix?

Dann wird nichts angezeigt.

Aber, wenn deine Aussage 100% richtig w?re, dann w?rde {if PRODUCTS_PRICE != "0"}{$PRODUCTS_PRICE}{else}0,00 Euro{/if} ja funktionieren, geht aber auch nicht!

Obwohl nur {$PRODUCTS_PRICE} bei manchen anderen Produkten z.B. 235,42 ausgibt gibt es bei dieser IF-Schleife 0,00 Euro aus.

Und das verwirrt mich ein bisschen.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...