unawave Posted February 26, 2005 Report Share Posted February 26, 2005 Gibt es eine einfache Methode Preise nur anzuzeigen, wenn sie nicht gleich Null sind ? Oder anders herum: Alle Preise, die gleich 0,00 sind ausblenden ? Bei mir werden die meisten (aber nicht alle) Preise ?ber die Produktoptionen / Attribute festgelegt und unter der Produktbeschreibung als Tabelle angeboten. Ich habe zwar schonmal nach folgendem Tipp ... Originally posted by chd@Feb 4 2005, 15:37 PM Man kann auch den Artikelpreis auf 0.00 EUR setzen und ?ber die Attribute den richtigen Preis darstellen. Wenn die 0.00 EUR beim Artikel nicht dargestellt werden sollen, kann man dies direkt im Template durch eine if-Schleife ausblenden. ... zwei Templates ver?ndert, so da? die 0,00 Preise im Produktlisting und in der Produkt?bersicht nicht mehr auftauchen - aber es sind ja noch so viele andere Ausgaben von 0,00 Preisen ("Neue Artikel", "K?rzlich Angesehen", "Bestseller", "Konto ?bersicht", etc.). Git's da eine einfache M?glichkeit, alle 0,00 Preise auf einen Schlag auszublenden ? Link to comment Share on other sites More sharing options...
smedder Posted February 27, 2005 Report Share Posted February 27, 2005 Ich glaube, wenn du einfach das Feld Produktpreis freil?sst - also nirgends auch nicht f?r G?ste und Neukunden Preise anzeigst - dann wird gar kein Preis angezeigt. Link to comment Share on other sites More sharing options...
unawave Posted February 27, 2005 Author Report Share Posted February 27, 2005 Originally posted by smedder@Feb 27 2005, 12:32 PM Ich glaube, wenn du einfach das Feld Produktpreis freil?sst - also nirgends auch nicht f?r G?ste und Neukunden Preise anzeigst - dann wird gar kein Preis angezeigt. Leider nicht - habe ich getestet. Wenn "nichts" drinsteht (auch nicht f?r G?ste und Neukunden) oder "0,00" drinsteht wird ?berall (also bei "Produktbeschreibung", "Neue Artikel", "K?rzlich Angesehen", "Bestseller", "Konto ?bersicht", etc.) "0,00 Eur" angezeigt Link to comment Share on other sites More sharing options...
smedder Posted February 27, 2005 Report Share Posted February 27, 2005 Dann musst du in jeden eizelnen Templateteil das etwa so machen: (Beispiel f?r die Product_info.html) {if $PRODUCTS_PRICE != '0'}<font size="5" color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><strong>{$PRODUCTS_PRICE} </strong></font>{/if} Dann sollte, wenn du den Produktpreis auf 0 setzt nichts angezeigt werden und wenn er auf was anderes gesetzt ist sollte er angezeigt werden. Link to comment Share on other sites More sharing options...
s04-freak Posted June 4, 2005 Report Share Posted June 4, 2005 Hi! Ich habe aus der Datei komplett die Preise gel?scht und h?tte jetzt gerne diese if-schleife wieder drin! Da ich jedoch kein php kann, w?r es super, wenn mir jemand meinen "falschen" Code "reparieren" k?nnte :bounce: {config_load file="$language/lang_$language.conf" section="index"} <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><font color="#666666" size="4">{$CATEGORIES_NAME}</font> </font></td> <td align="right"></td> </tr> </table> {if $CATEGORIES_DESCRIPTION} <font size="1" face="Verdana, Arial, Helvetica, sans-serif"> {$CATEGORIES_DESCRIPTION}</font> {if $CATEGORIES_IMAGE}{/if} <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="border-bottom: 1px solid; border-color: #000000;"></td> </tr> </table> {/if} { if $MANUFACTURER_DROPDOWN} <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="main"><div align="right">{#text_show#} {$MANUFACTURER_DROPDOWN}</div></td> </tr> </table> {/if} <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <div align="center"> <table style="border-top: 2px solid; border-color: #d4d4d4;" width="100%" border="0"> {foreach name=aussen item=module_data from=$module_content} <tr> <td width="1" rowspan="2" style="border-bottom: 1px solid; border-color: #cccccc;">{if $module_data.PRODUCTS_IMAGE!=''}{/if} {if $module_data.PRODUCTS_FSK18=='true'} {/if} </td> <td class="main" id="productListingHeading">{$module_data.PRODUCTS_NAME}</td> </tr> <tr> <td style="border-bottom: 1px solid; border-color: #cccccc;" class="main" id="productListingAttributes">{$module_data.PRODUCTS_SHORT_DESCRIPTION} <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td align="right"><table width="100" border="0"> <tr> <td>{if $module_data.SHIPPING_NAME} <table width="100" border="0" cellpadding="0" cellspacing="0"> <tr valign="middle"> <td width="50" class="main">{#text_shippingtime#}</td> {if $module_data.SHIPPING_IMAGE} <td width="50"></td> {/if} <td nowrap class="main">{$module_data.SHIPPING_NAME}</td> </tr> </table> {/if}</td> <td>{$module_data.BUTTON_BUY_NOW}</td> </tr> </table></td> </tr> </table> </td> </tr> {/foreach} </table> </div></td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>{$NAVIGATION}</td> </tr> </table> Das w?re echt klasse Gr??e s04-freak Link to comment Share on other sites More sharing options...
s04-freak Posted June 5, 2005 Report Share Posted June 5, 2005 Hi! Hat sich soweit erledigt! Es ist nur so, dass er jetzt zwar alle Preise, welche ?ber 0 sind anzeigt, jedoch nicht die Sonderpreise (statt bla bla bla nun bla bla bla) Habe folgende Schleife eingesetzt: {if $module_data.PRODUCTS_PRICE!=0.00}{$module_data.PRODUCTS_PRICE}{/if} Gr??e Link to comment Share on other sites More sharing options...
s04-freak Posted June 8, 2005 Report Share Posted June 8, 2005 *hochschieb* H?tte gerne das Problem gel?st Gr??e Link to comment Share on other sites More sharing options...
gswkaiser Posted June 9, 2005 Report Share Posted June 9, 2005 Die finale L?sung ist es, die Preisformatierungsroutinen so zu modifizieren, dass sie im Falle "Preis ist null" eine leere Zeichenkette zur?ckgeben. Dazu m?ssen die Routinen xtc_format_price.inc.php xtc_format_price_graduated.inc.php xtc_format_price_order.inc.php xtc_format_special_price.inc.php im Verzeichnis "inc" ge?ndert werden. Der vorhandene Code muss eingeschlossen werden in folgenden Code: if (floatval($price_string) == 0) { $price_string = ''; } else { XXXXXXXXXXXXXXXXXXXXXXXXXXXX } Statt "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" muss dort der vorhandene Code eingebaut werden. Im Modul xtc_format_special_price.inc.php muss die erste Zeile lauten if (floatval($special_price) == 0) { $special_price = ''; } else { XXXXXXXXXXXXXXXXXXXXXXXXXXXX } ?nderungen ohne Gew?hr. Unbedingt vorher die zu ?ndernden Routinen sichern! Link to comment Share on other sites More sharing options...
s04-freak Posted June 10, 2005 Report Share Posted June 10, 2005 Hi Also entweder funktioniert es nicht, oder ich bin zu bl?d :i: Habe nun folgende Codes in den Scripts: xtc_format_price.inc.php if (floatval($price_string) == 0) { $price_string = ''; } else { if ($calculate_currencies=='true') { $price_string=$price_string * $currencies_data['VALUE']; } } // round price xtc_format_price_gratuated.inc.php if (floatval($price_string) == 0) { $price_string = ''; } else { if ($calculate_currencies=='true') { $price_string=$price_string * $currencies_data['VALUE']; } } // add tax xtc_format_price_order.inc.php if (floatval($price_string) == 0) { $price_string = ''; } else { $price_string=xtc_precision($price_string,$currencies_data['DECIMAL_PLACES']); } xtc_format_special_price if (floatval($special_price) == 0) { $special_price = ''; } else { if ($calculate_currencies=='true') { $special_price=$special_price * $currencies_data['VALUE']; $price=$price * $currencies_data['VALUE']; } } // round price Wo hocken die Fehler? Gr??e s04-freak Link to comment Share on other sites More sharing options...
gswkaiser Posted June 12, 2005 Report Share Posted June 12, 2005 Originally posted by s04-freak@Jun 10 2005, 07:11 PM xtc_format_price_gratuated.inc.php if (floatval($price_string) == 0) { $price_string = ''; } else { if ($calculate_currencies=='true') { $price_string=$price_string * $currencies_data['VALUE']; } } Du musst die Anweisung auch genau befolgen! Die Function "xtc_format_price_graduated" sieht nach der ?nderung z.B. so aus: function xtc_format_price_graduated($price_string,$price_special,$calculate_currencies,$products_tax_class) { if ((int)$price_string == 0) { $price_string = ''; } else { $currencies_query = xtc_db_query("SELECT symbol_left, symbol_right, decimal_places, decimal_point, thousands_point, value FROM ". TABLE_CURRENCIES ." WHERE code = '".$_SESSION['currency'] ."'"); $currencies_value=xtc_db_fetch_array($currencies_query); $currencies_data=array(); $currencies_data=array( 'SYMBOL_LEFT'=>$currencies_value['symbol_left'] , 'SYMBOL_RIGHT'=>$currencies_value['symbol_right'] , 'DECIMAL_PLACES'=>$currencies_value['decimal_places'] , 'VALUE'=> $currencies_value['value']); if ($calculate_currencies=='true') { $price_string=$price_string * $currencies_data['VALUE']; } // add tax $products_tax=xtc_get_tax_rate($products_tax_class); if ($_SESSION['customers_status']['customers_status_show_price_tax'] =='0') { $products_tax=''; } $price_string= (xtc_add_tax($price_string,$products_tax)); // round price $price_string=xtc_precision($price_string,$currencies_data['DECIMAL_PLACES']); if ($price_special=='1') { $price_string=number_format($price_string,$currencies_data['DECIMAL_PLACES'], $currencies_data['DEC_POINT'], $currencies_data['THD_POINT']); $price_string = $currencies_data['SYMBOL_LEFT']. ' '.$price_string.' '.$currencies_data['SYMBOL_RIGHT']; } } return $price_string; } Link to comment Share on other sites More sharing options...
wunschtacho Posted June 13, 2005 Report Share Posted June 13, 2005 Also erstmal - alle Achtung - ist absolut genial, auch ich benutze viele kostenlose Merkmale und jetzt wird nicht jedesmal wieder + 0,0 Eur angezeigt im Warenkorb, jedoch blieb das + noch stehen Gibts da noch eine unkomplizierte L?sung? Gr??e Link to comment Share on other sites More sharing options...
gswkaiser Posted June 14, 2005 Report Share Posted June 14, 2005 Originally posted by wunschtacho@Jun 13 2005, 05:54 PM Also erstmal - alle Achtung - ist absolut genial, auch ich benutze viele kostenlose Merkmale und jetzt wird nicht jedesmal wieder + 0,0 Eur angezeigt im Warenkorb, jedoch blieb das + noch stehen Gibts da noch eine unkomplizierte L?sung? Gr??e Quoted post Welches "+" meinst Du??? Bei mir gibt es kein "+" vor dem Preis! Link to comment Share on other sites More sharing options...
wunschtacho Posted June 14, 2005 Report Share Posted June 14, 2005 vorher in der Zusammenfassung im Warenkorb: Produkt 1 Farbe: rot (+ 0,00 Eur) Gr??e: gro? (+ 0,00 Eur) Form: rund (+ 0,00 Eur) und jetzt: Produkt 1 Farbe: rot + Gr??e: gro? + Form: rund + siehe Bild: Gr??e Link to comment Share on other sites More sharing options...
gswkaiser Posted June 14, 2005 Report Share Posted June 14, 2005 Das ist wohl ein Produkt-Attribut-Problem. Ich habe zwar keine Produkt-Attribute, aber ich hab mir das trotzdem mal angeschaut. Das m?sste l?sbar sein, indem man das Modul "inc/xtc_get_products_attribute_price.php" durch folgenden Code ersetzt (ungetestet, aber ziemlich sicher): <?php /* ----------------------------------------------------------------------------------------- $Id: xtc_get_products_attribute_price.inc.php,v 1.2 2004/02/21 22:38:22 fanta2k Exp $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright (c) 2003 XT-Commerce ----------------------------------------------------------------------------------------- based on: (c) 2003 nextcommerce (xtc_get_products_attribute_price.inc.php,v 1.8 2003/08/14); [url]www.nextcommerce.org[/url] Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ function xtc_get_products_attribute_price($attribute_price,$tax_class,$price_special,$quantity,$prefix,$calculate_currencies='true') { if ($_SESSION['customers_status']['customers_status_show_price'] == '1') { if (floatval($attribute_price) == 0) { $prefix = ''; } else { $prefix = ' ' . $prefix . ' '; } $attribute_tax=xtc_get_tax_rate($tax_class); // check if user is allowed to see tax rates if ($_SESSION['customers_status']['customers_status_show_price_tax'] =='0') { $attribute_tax=''; } // add tax $price_string=(xtc_add_tax($attribute_price,$attribute_tax))*$quantity; if ($_SESSION['customers_status']['customers_status_discount_attributes']=='0') { // format price & calculate currency $price_string=xtc_format_price($price_string,$price_special,$calculate_currencies); if ($price_special=='1') { $price_string = $prefix . $price_string . ' '; } } else { $discount=$_SESSION['customers_status']['customers_status_discount']; $rabatt_string = $price_string - ($price_string/100*$discount); $price_string=xtc_format_price($price_string,$price_special,$calculate_currencies); $rabatt_string=xtc_format_price($rabatt_string,$price_special,$calculate_currencies); if ($price_special=='1' && $price_string != $rabatt_string) { $price_string = rtrim($prefix) . '<font color="ff0000"><s>' . $price_string. '</s></font> ' . $rabatt_string . ' '; } else { $price_string=$rabatt_string; if ($price_special=='1') $price_string= $prefix . $price_string; } } } else { $price_string= ' ' . NOT_ALLOWED_TO_SEE_PRICES; } return $price_string; } ?> Das Modul "inc/xtc_get_products_attribute_price.php" ist durch folgenden Code zu ersetzen: <?php /* ----------------------------------------------------------------------------------------- $Id: xtc_get_products_attribute_price_checkout.inc.php,v 1.2 2004/02/21 22:38:22 fanta2k Exp $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright (c) 2003 XT-Commerce ----------------------------------------------------------------------------------------- based on: (c) 2003 nextcommerce (xtc_get_products_attribute_price_checkout.inc.php,v 1.6 2003/08/14); [url]www.nextcommerce.org[/url] Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ function xtc_get_products_attribute_price_checkout($attribute_price,$attribute_tax,$price_special,$quantity,$prefix,$calculate_currencies=true) { if ($_SESSION['customers_status']['customers_status_show_price'] == '1') { //$attribute_tax=xtc_get_tax_rate($tax_class); // check if user is allowed to see tax rates if (floatval($attribute_price) == 0) { $prefix = ''; } else { $prefix = ' ' . $prefix . ' '; } if ($_SESSION['customers_status']['customers_status_show_price_tax'] =='0') { $attribute_tax=''; } // add tax $price_string=(xtc_add_tax($attribute_price,$attribute_tax))*$quantity; if ($_SESSION['customers_status']['customers_status_discount_attributes']=='0') { // format price & calculate currency $price_string=xtc_format_price($price_string,$price_special,$calculate_currencies); if ($price_special=='1') { $price_string = $prefix . $price_string.' '; } } else { $discount=$_SESSION['customers_status']['customers_status_discount']; $rabatt_string = $price_string - ($price_string/100*$discount); $price_string=xtc_format_price($price_string,$price_special,$calculate_currencies); $rabatt_string=xtc_format_price($rabatt_string,$price_special,$calculate_currencies); if ($price_special=='1' && $price_string != $rabatt_string) { $price_string = rtrim($prefix) . '<font color="ff0000"><s>'.$price_string.'</s></font> '.$rabatt_string.' '; } else { $price_string=$rabatt_string; if ($price_special=='1') $price_string = $prefix . $price_string; } } } else { $price_string= ' ' .NOT_ALLOWED_TO_SEE_PRICES; } return $price_string; } ?> Link to comment Share on other sites More sharing options...
wunschtacho Posted June 14, 2005 Report Share Posted June 14, 2005 Absolut genial - funktioniert einwandfrei - da gebe ich doch glatt ein Bier aus Link to comment Share on other sites More sharing options...
gswkaiser Posted June 15, 2005 Report Share Posted June 15, 2005 Originally posted by wunschtacho@Jun 14 2005, 05:13 PM Absolut genial - funktioniert einwandfrei - da gebe ich doch glatt ein Bier aus Quoted post OK, mail das mal r?ber! Link to comment Share on other sites More sharing options...
patbo Posted June 29, 2005 Report Share Posted June 29, 2005 Originally posted by s04-freak@Jun 5 2005, 01:00 PM Hi! Hat sich soweit erledigt! Es ist nur so, dass er jetzt zwar alle Preise, welche ?ber 0 sind anzeigt, jedoch nicht die Sonderpreise (statt bla bla bla nun bla bla bla) Habe folgende Schleife eingesetzt: Gr??e Quoted post kann mir mal jemand sagen wo ich die schleife genau einsetzen muss? in die index.html und dann wo genau? danke Link to comment Share on other sites More sharing options...
smller Posted July 27, 2005 Report Share Posted July 27, 2005 Hallo zusammen, Die finale L?sung ist es, die Preisformatierungsroutinen so zu modifizieren, dass sie im Falle "Preis ist null" eine leere Zeichenkette zur?ckgeben. K?nnte man das nicht auch f?r das Vorzeichen (+/-) bei den Attributen verwenden? Nach dem Motto, wenn der Hauptpreis 0,00 ist, dann ist der Attributpreis der Hauptpreis (also kein Vorzeichen anzeigen) Habs schon probiert, kriegs aber nicht hin. mfG. Stephan Link to comment Share on other sites More sharing options...
Vido Posted January 19, 2006 Report Share Posted January 19, 2006 Originally posted by gswkaiser@Jun 9 2005, 11:28 AM Die finale L?sung ist es, die Preisformatierungsroutinen so zu modifizieren, dass sie im Falle "Preis ist null" eine leere Zeichenkette zur?ckgeben. Dazu m?ssen die Routinen xtc_format_price.inc.php xtc_format_price_graduated.inc.php xtc_format_price_order.inc.php xtc_format_special_price.inc.php im Verzeichnis "inc" ge?ndert werden. Der vorhandene Code muss eingeschlossen werden in folgenden Code: if (floatval($price_string) == 0) { ?$price_string = ''; } else { ?XXXXXXXXXXXXXXXXXXXXXXXXXXXX } Statt "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" muss dort der vorhandene Code eingebaut werden. Im Modul xtc_format_special_price.inc.php muss die erste Zeile lauten if (floatval($special_price) == 0) { ?$special_price = ''; } else { ?XXXXXXXXXXXXXXXXXXXXXXXXXXXX } ?nderungen ohne Gew?hr. Unbedingt vorher die zu ?ndernden Routinen sichern! Quoted post Ich habe nur xtc_format_price.inc.php xtc_format_price_order.inc.php Wo sind die andere? Link to comment Share on other sites More sharing options...
joergvortkamp Posted February 11, 2006 Report Share Posted February 11, 2006 Ich habe auch nur folgende Dateien in inc: xtc_format_price.inc.php xtc_format_price_order.inc.php Hab die ?nderungen in den Dateien gemacht, aber funzt nicht. Bitte um Hilfe! :sad: Link to comment Share on other sites More sharing options...
neviso Posted March 16, 2006 Report Share Posted March 16, 2006 Hallo, ich habe auch das Problem, dass ich keine "Preise auf Anfrage" in meinem Shop realisiert bekomme! Habe alle obigen Anweisungen durchgef?hrt trotzdem bleibt immer der Preis auf 0,00 EUR. Hat es denn bei jemandem geklappt? Bitte um Antwort! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.