abo Posted January 5, 2004 Report Share Posted January 5, 2004 Guten Abend, ich m?chte die Preise der Attribute (Zu- oder Abschl?ge auf den Normalpreis) nur dann anzeigen lassen, wenn der ungleich 0.00 ist. Ich suche mir einen Wolf... Ich denke, dass der Preis in \includes\modules\product_attributes.php ausgegeben wird. Dort wird bereits in Zeile 46 mit " if ($products_options['options_values_price'] != '0') {..." und in Zeile 50 mit "if ($products_options['options_values_price']!='0.00') {..." der Wert auf 0.00 abgefragt und an $Price ?bergeben (so verstehe ich das jedenfalls mit meinen leihenhaften php Verst?ndnis). Aber irgendwie kann ich keinen Ans?tz f?r eine Anpassung an dieser Stelle des Codes erkennen. Wo bitte m?sste man den schauen, um eine 0,00 Anzeige zu unterdr?cken? Gru?, Axel Link to comment Share on other sites More sharing options...
peeeters Posted January 5, 2004 Report Share Posted January 5, 2004 du solltest in den template-html's suchen! da kannst du auch eine smarty-if klausel einbauen und somit die ausgabe ggf. unterdr?cken. Link to comment Share on other sites More sharing options...
abo Posted January 6, 2004 Author Report Share Posted January 6, 2004 @peeeters Ich danke Dir. Ich habe gestern Abend noch versucht dahinter zu kommen, wie ich das angehen m?sste. Als Template habe ich die "order_deatils" hergenommen um dort in " <td class="main"><div align="right">{$item_data.PRICE}</div></td>.." eine IF Abfrage ein zu bauen. Aber ausser Fehlermeldungen bzgl. Syntax habe ich noch nichts zu Stande gebracht. Ich werde mich heute Abend noch einmal daran setzen. Link to comment Share on other sites More sharing options...
mzanier Posted January 6, 2004 Report Share Posted January 6, 2004 smarty.php.net dort findest du infos wie der syntax aussehen muss. Link to comment Share on other sites More sharing options...
abo Posted January 6, 2004 Author Report Share Posted January 6, 2004 @mzanier Ja, danke! Ich habe hier schon ein PDF (Smarty - die kompilierende PHP Template-Engine) vor mir liegen. Damit habe ich jetzt mehrere Varianten ausprobiert ? ich bekomme es aber nicht hin. Wenn ich : {if $item_data.PRICE gt 0} <td class="main"><div align="right">{$item_data.PRICE}</div></td> {/if} in der order_details.html eingebe, wird mir zwar der Produkt Optionen Preis nicht mehr angezeigt...aber auch nicht wenn er <> 0 ist ? also gar nicht mehr. Und wenn ich dann weiter schaue und an den checkout_confirmation komme, dann stehe ich wieder vor dem Problem, dass ich 0 Preis unterdr?cken m?chte. Hier sehe ich aber keine M?glichkeit gezielt im Template auf den Preis Einfluss nehmen zu k?nnen. Da muss ich dann im xtc_get_products_attribute_price_checkout die Bildung des Preises unterdr?cken, wenn er 0 ist? Wenigstens wird in der Bestellbest?tigungsmail der 0 Preis nicht gezeigt. Hat jemand noch einen Tipp? Gru?, Axel Link to comment Share on other sites More sharing options...
mzanier Posted January 6, 2004 Report Share Posted January 6, 2004 du musst als bedingung nat?rlich auch eingeben was smarty als variable ausgibt, glaube kaum das da eine "0" auf deinem schirm steht. sonder 0.00 EUR. die bildung des preises in der funktion zu unterdr?cken ist nicht ratsam, da dann einige andere funktionen keinen wert zur?ckbekommen. du brauchst nur ?berpr?fen ob der smarty string ein 0.00 !enthaltet, und dann darauf reagieren. Link to comment Share on other sites More sharing options...
abo Posted January 7, 2004 Author Report Share Posted January 7, 2004 Also ich habe jetzt einige Stunden mit: {if $item_data.PRICE == '0,00'} <td class="main"><div align="right">{$item_data.PRICE}</div></td> {else} <td class="main"></td> {/if} in allen m?glichen Kombinationen mit einschlei?endem "" oder '' oder != oder "eq" oder "neq" usw. versucht. Iregndwie komme ichnicht darauf, dass die if Abfrage erkennt, ob der Preis 0 oder 0.00 oder 0,00 (wie bei mir) oder + 0,00 usw. ist. Bin denn mit obiger Abfrage auf dem richtigen Weg? Gru?, Axel Link to comment Share on other sites More sharing options...
Bibo Posted January 10, 2004 Report Share Posted January 10, 2004 nun. bin auch schon seit ein paar "Minuten" (oder sind es Stunden) dran. angezeigt wird ja "+ 0.00 EUR " als Buchhalter h?tte ich au?erdem gerne, da? der Preis und wenn der Preis f?r ein Attribut ausgeworfen wird auch rechtsb?ndig untereinander stehen. Wie bekommt man das noch hin ? Hat schon jemand eine L?sung hierf?r ? Link to comment Share on other sites More sharing options...
abo Posted January 10, 2004 Author Report Share Posted January 10, 2004 Guten Abend, Manchmal kann Ergeiz KnowHow ersetzen... Nachdem ich Stunden damit verbracht habe und v??lig frustiert schon das Jammern anfangen wollte ;-) habe ich es jett endlich heute Morgen, als die Familie noch schlief hinbekommen. Das Problem war wohl (jedenfalls nach meinem leihenhaften Verst?ndnis), dass diese "IF" Bedingung das verdammte 0,00 nicht zu Packen bekam. Ich habe alle m?glichen Kombinationen probiert (habe ich ja weiter oben auch schon geschrieben..). Letztendlich habe ich dann mit dem Browser die Ausgabe in diesem Bereich angeschaut: Da steht ja nicht 0,00 oder 0.00 (je nacxhdem wie man seinen Dezimaltrenner eingestellt hat), sondern da steht "Blank+Blank0,00BlankEURBlank". Ich schreib das hier so d?mlich, damit man mich besser versteht (so hoffe ich doch...). Und f?r "copy&paste" hier der Schnippsel: {foreach key=key_data item=item_data from=$module_data.ATTRIBUTES} <tr> {if $item_data.PRICE eq " + 0,00 EUR "}<td></td> {else} <td class="main"></td> <td class="main"><div align="right">{$item_data.PRICE}</div></td> {/if} </tr> {/foreach} </table> Einen Sch?nheitfehler hat die Prozedur allerdings immer noch. In der letzten Maske des Bestellvorgangs wird wieder alles aufgelistet und auch die Produkt Optionen ohne Preis werden mit "0,00 EUR" ausgewiesen. Und hier kann im Template nichts abgefangen werden, sondern im checkout_confirmation.php bzw. checkout_process.php, dort wo der Price f?r die Bildung der Bl?cke zusammengebaut wird. Aber da blicke ich nicht durch und "mzanier" meint, dass man die Bildung des Preises besser nicht unterdr?ckt. Wat nu? Gru?, Axel Link to comment Share on other sites More sharing options...
abo Posted January 10, 2004 Author Report Share Posted January 10, 2004 Noch was: Wenn man die Beitr?ge hier im Forum betrachtet, dann hat jeder Beitrag als Symbol einen Breifumschlag in unterschiedlichen Farben vorangestellt. Die sind ja auch im Fu? erleutert. Allerdings hat dieser Beitrag hier im Briefumschlag noch einen kleinen Punkt in der Mitte. Wer wei?, was der bedeutet und l??t mich daran teilhaben? Axel Link to comment Share on other sites More sharing options...
Bibo Posted January 10, 2004 Report Share Posted January 10, 2004 Originally posted by abo@Jan 10 2004, 21:53 PM {if $item_data.PRICE eq " + 0,00 EUR "} damit (auch wenn ich "," durch "." ersetze) geht es bei mir leider auch nicht. ich habe schon einige viele weitere Kombinationen versucht (mit den Leerstellen gespielt) ...aber auch noch ohne Ergebnis. (auch schon template_c gel?scht) Link to comment Share on other sites More sharing options...
abo Posted January 11, 2004 Author Report Share Posted January 11, 2004 Sorry, ich habe in Zeile 34 noch etwas getan. Ich habe <div align="right">{$module_data.PRODUCTS_PRICE}</div> ausgetauscht gegen <div align="right">{$module_data.PRODUCTS_PRICE}</div> Also das hinter dem Preis gel?scht. Das erzeugte eine zus?tzliche Leerstelle. Ohne diese zus?tzliche Leerstelle ist der Preis auch in der Spalte Rechtsb?ndig wie der Produkte Preis. Vielleicht klappt es ja damit? Axel Link to comment Share on other sites More sharing options...
Bibo Posted January 11, 2004 Report Share Posted January 11, 2004 damit klappt es beide Zahlen rechtsb?ndig zu machen (habe ich gestern in meinen 10 Stunden wo ich davor gesessen habe noch gefunden). Allerdings klappt das mit der Abfrage immer noch nicht. (warum auch immer !?) Link to comment Share on other sites More sharing options...
Bibo Posted January 11, 2004 Report Share Posted January 11, 2004 Originally posted by abo@Jan 10 2004, 21:53 PM {if $item_data.PRICE eq " + 0,00 EUR "} ich habe f?r mich immer noch keine L?sung ! Der Wert hei?t doch "+ 0,00 EUR " (eine Leerstelle am Anfang weniger ?!) Wie muss ich das denn nun abfragen um den Preis abzufragen um die + 0,00 EUR zu unterdr?cken ? Bitte um Hilfe ! Link to comment Share on other sites More sharing options...
abo Posted January 11, 2004 Author Report Share Posted January 11, 2004 Also, was ich nicht verstehe, ist dass diese Abfrage bei Dir ein anderes Ergebnis (n?mlich kein Ergebnis) bringt. Was kann es noch sein? Lass uns doch einmal vergleichen: Admin > Konfiguration > Brutto Admin = True Admin > Konfiguration > Brutto/Netto Dezimalstellen = 2 Admin > Land / Steuer / W?hrungen: Standard W?hrung = Euro, Symbol Rechts = EUR, Dezimal = , Tausenderpunkt = . Und hier das ganze Template "order_details: {config_load file="$language/lang_$language.conf" section="shopping_cart"} <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="1%" class="main" style="border-bottom: 1px solid; border-color: #cccccc;"></td> <td width="1%" class="main" style="border-bottom: 1px solid; border-color: #cccccc;"><div align="center">{#text_qty#}</div></td> <td nowrap width="70%" class="main" style="border-bottom: 1px solid; border-color: #cccccc;">{#text_article#}</td> <td nowrap width="38%" bgcolor="f1f1f1" class="main" style="border-bottom: 1px solid; border-color: #cccccc;"> <div align="right">{#text_total#}</div></td> <td width="1%" bgcolor="FEF8F8" class="main" style="border-bottom: 1px solid; border-color: #cccccc;"> <div align="center">{#text_remove#}</div></td> </tr> {foreach name=aussen item=module_data from=$module_content} <tr> <td height="5" colspan="5"></td> </tr> <tr> <td class="main"></td> <td valign="top" class="main"> <div align="center">{$module_data.PRODUCTS_QTY}</div></td> <td valign="top" class="main">{$module_data.PRODUCTS_NAME}{$module_data.PRODUCTS_SINGLE_PRICE} {if $module_data.ATTRIBUTES!=''} <table width="100%" border="0" cellspacing="0" cellpadding="0"> {foreach key=key_data item=item_data from=$module_data.ATTRIBUTES} <tr> <td width="1" class="main">{$item_data.NAME}:</td> <td class="main"><div align="left">{$item_data.VALUE_NAME}</div></td> </tr> {/foreach} </table> {else} <font size="1">{$module_data.PRODUCTS_SHORT_DESCRIPTION|truncate:150:"...":true}</font> {/if} </td> <td valign="top" nowrap bgcolor="f1f1f1" class="main" style="border-right: 1px solid; border-color: #cccccc;"> <div align="right">{$module_data.PRODUCTS_PRICE}</div> <table width="100%" border="0" cellspacing="0" cellpadding="0"> {foreach key=key_data item=item_data from=$module_data.ATTRIBUTES} <tr> {if $item_data.PRICE eq " + 0,00 EUR "}<td></td> {else} <td class="main"></td> <td class="main"><div align="right">{$item_data.PRICE}</div></td> {/if} </tr> {/foreach} </table> </td> <td align="center" valign="middle" bgcolor="FEF8F8" class="main"> <div align="center">{$module_data.BOX_DELETE}</div></td> </tr> {/foreach} <tr> <td height="5" colspan="5"></td> </tr> <tr> <td style="border-top: 1px solid; border-color: #cccccc;" colspan="4" class="main"><div align="right">{$TOTAL_CONTENT}</div></td> <td style="border-top: 1px solid; border-color: #cccccc;" align="center" valign="middle" class="main"></td> </tr> </table> Wenn`s hilft? Gru?, Axel Link to comment Share on other sites More sharing options...
Bibo Posted January 11, 2004 Report Share Posted January 11, 2004 Originally posted by abo@Jan 11 2004, 23:55 PM noch sein? Lass uns doch einmal vergleichen: Admin > Konfiguration > Brutto Admin = True Admin > Konfiguration > Brutto/Netto Dezimalstellen = 2 Admin > Land / Steuer / W?hrungen: Standard W?hrung = Euro, Symbol Rechts = EUR, Dezimal = , Tausenderpunkt = . {if $item_data.PRICE eq " + 0,00 EUR "}<td></td> {else} <td class="main"></td> <td class="main"><div align="right">{$item_data.PRICE}</div></td> {/if} ist alles so und funktioniert doch nicht. ich bin am verzweifeln. das gibt es doch ?berhaupt nicht. Ich wei? was bei $item_data.PRICE exakt drinnen ist und kann es doch nicht packen. w?re toll, wenn einer der ADMINs da nochmals was zu schreiben k?nnte. Link to comment Share on other sites More sharing options...
mzanier Posted January 12, 2004 Report Share Posted January 12, 2004 nur mal so nachgedacht.. order_details_cart.php aus: $module_content[$i]['ATTRIBUTES'][]=array( 'ID' =>$products[$i][$option]['products_attributes_id'], 'MODEL'=>$products[$i][$option]['products_options_model'], 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check, 'PRICE' => xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=1,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix'])); wird $attribute_price=xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=1,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']); if (eregi('0.00',$attribute_price)) { $attribute_price=''; } $module_content[$i]['ATTRIBUTES'][]=array( 'ID' =>$products[$i][$option]['products_attributes_id'], 'MODEL'=>$products[$i][$option]['products_options_model'], 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check, 'PRICE' => $attribute_price); Link to comment Share on other sites More sharing options...
Bibo Posted January 12, 2004 Report Share Posted January 12, 2004 PERFEKT !!!!! Danke und noch eine sch?ne Woche !! Link to comment Share on other sites More sharing options...
mzanier Posted January 12, 2004 Report Share Posted January 12, 2004 bzw, man sollte vielleicht das machen if (eregi('0.00',$attribute_price)) { $attribute_price=' '; } denn bei mehereen attributen w?ren dann die preise nicht verschoben. Link to comment Share on other sites More sharing options...
Hubi Posted January 12, 2004 Report Share Posted January 12, 2004 Und was ist wenn der Preis 10.00? betr?gt?!? Link to comment Share on other sites More sharing options...
mzanier Posted January 12, 2004 Report Share Posted January 12, 2004 hm stimmt, war ja nur mal so :z: Link to comment Share on other sites More sharing options...
Hubi Posted January 12, 2004 Report Share Posted January 12, 2004 Da m?sste ein anderer Ausdruck rein. Wer kennt sich denn mit regular Expressions aus? Link to comment Share on other sites More sharing options...
mzanier Posted January 12, 2004 Report Share Posted January 12, 2004 if(xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=0,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']))!='0.00') { $attribute_price=xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=1,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']); } else { $attribute_price=''; } Link to comment Share on other sites More sharing options...
Bibo Posted January 12, 2004 Report Share Posted January 12, 2004 Originally posted by mzanier@Jan 12 2004, 12:11 PM if(xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=0,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']))!='0.00') { $attribute_price=xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=1,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']); } else { $attribute_price=''; } vor dem !='0.00') muss ein ")" weg. Jetzt klappt es super !! Danke f?r die gro?e Hilfe !!! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.