|
|||
|
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? |
|
|||
|
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 !!! |
|
|||
|
Zitat:
|
|
|||
|
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} |
|
|||
|
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. |
|
|||
|
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} |
|
|||
|
Zitat:
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. |
![]() |
| Lesezeichen |
| Stichworte |
| mathe, smarty |
| Themen-Optionen | |
| Ansicht | |
|
|