smedder Posted March 25, 2005 Report Share Posted March 25, 2005 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 More sharing options...
KALE MX Posted March 25, 2005 Report Share Posted March 25, 2005 Ich versteh zwar nicht viel vom Programmieren aber k?nntest du nicht das hier "{else} 0,00 Euro" weglassen? Mit freundlichen Gr??en KALE^MX Link to comment Share on other sites More sharing options...
berny Posted March 25, 2005 Report Share Posted March 25, 2005 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 More sharing options...
smedder Posted March 25, 2005 Author Report Share Posted March 25, 2005 Nee, dann w?rde ja immer das 0,00 Euro noch hinterm Preis stehen. Und ich hab auch schon zig Varianten probiert, die irgendwie umgestellt sind, aber keine funktioniert. Link to comment Share on other sites More sharing options...
smedder Posted March 25, 2005 Author Report Share Posted March 25, 2005 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 More sharing options...
berny Posted March 26, 2005 Report Share Posted March 26, 2005 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 More sharing options...
gswkaiser Posted March 27, 2005 Report Share Posted March 27, 2005 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 More sharing options...
Hubi Posted March 27, 2005 Report Share Posted March 27, 2005 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? Link to comment Share on other sites More sharing options...
berny Posted March 27, 2005 Report Share Posted March 27, 2005 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 More sharing options...
smedder Posted March 27, 2005 Author Report Share Posted March 27, 2005 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 More sharing options...
BareboneF Posted March 27, 2005 Report Share Posted March 27, 2005 probiere mal dieses: {if PRODUCTS_PRICE != ""}{$PRODUCTS_PRICE}{else}0,00 Euro{/if} ansonsten lasst dir mal per PHP ausgeben was wirklich in dieser Variable drinnen steht. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.