Cao-XTC Posted October 15, 2009 Report Share Posted October 15, 2009 Hallo, nach 2 Wochen Dauer-Suchmaschinen-Quälen hoffe ich mit einer neuen Anfrage hier eine Lösung zu finden.... 1. Problem: Bei allen Artikeln, die ich mit mehreren Attributen Optionen einstelle erscheint auf der jeweiligen Seite des Artikel oben die Fehlermeldung: Warning: number_format() expects parameter 1 to be double, string given in /users/USERNAME/www/includes/classes/xtcPrice.php on line 319(vgl. einem fremden laufenden Shop: Gerda - ge bitte gd-08-05) Vorläufige Lösung(!!!): die Meldung verschwindet, wenn man bei den Artikelattributen beim Preis nicht 0 eingibt sondern z.B. 0.0001. Es ist also ein Problem mit dem Artikelpreis 0.00 bei Attributen... 2. Problem: Im Warenkorb erscheint immer oben die Meldung: Warning: number_format() expects parameter 2 to be long, string given in /users/USERNAME/www/includes/modules/order_details_cart.php on line 59 Lösung bisher keine.... Kennt jemand die Fehler bzw. die Ursachen, oder besser noch die Lösungen? Vielen Dank schonmal im vorraus! Ich bin langsam am verzweifeln.... Aso... hier noch die entsprechenden Ausschnitte aus den genannten Dateien (rot und fett= die jeweils genannte Zeile): Datei "includes/classes/xtcPrice.php" <?php /* ----------------------------------------------------------------------------------------- $Id: xtcPrice.php 1316 2005-10-21 15:30:58Z mz $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright (c) 2003 XT-Commerce ----------------------------------------------------------------------------------------- based on: (c) 2000-2001 The Exchange Project (earlier name of osCommerce) (c) 2002-2003 osCommerce(currencies.php,v 1.15 2003/03/17); www.oscommerce.com (c) 2003 nextcommerce (currencies.php,v 1.9 2003/08/17); www.nextcommerce.org Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ class xtcPrice { var $currencies; // class constructor function xtcPrice($currency, $cGroup) { $this->currencies = array (); $this->cStatus = array (); $this->actualGroup = $cGroup; $this->actualCurr = $currency; $this->TAX = array (); $this->SHIPPING = array(); $this->showFrom_Attributes = true; // select Currencies $currencies_query = "SELECT * FROM ".TABLE_CURRENCIES; $currencies_query = xtDBquery($currencies_query); while ($currencies = xtc_db_fetch_array($currencies_query, true)) { $this->currencies[$currencies['code']] = array ('title' => $currencies['title'], 'symbol_left' => $currencies['symbol_left'], 'symbol_right' => $currencies['symbol_right'], 'decimal_point' => $currencies['decimal_point'], 'thousands_point' => $currencies['thousands_point'], 'decimal_places' => $currencies['decimal_places'], 'value' => $currencies['value']); } // select Customers Status data $customers_status_query = "SELECT * FROM ".TABLE_CUSTOMERS_STATUS." WHERE customers_status_id = '".$this->actualGroup."' AND language_id = '".$_SESSION['languages_id']."'"; $customers_status_query = xtDBquery($customers_status_query); $customers_status_value = xtc_db_fetch_array($customers_status_query, true); $this->cStatus = array ('customers_status_id' => $this->actualGroup, 'customers_status_name' => $customers_status_value['customers_status_name'], 'customers_status_image' => $customers_status_value['customers_status_image'], 'customers_status_public' => $customers_status_value['customers_status_public'], 'customers_status_discount' => $customers_status_value['customers_status_discount'], 'customers_status_ot_discount_flag' => $customers_status_value['customers_status_ot_discount_flag'], 'customers_status_ot_discount' => $customers_status_value['customers_status_ot_discount'], 'customers_status_graduated_prices' => $customers_status_value['customers_status_graduated_prices'], 'customers_status_show_price' => $customers_status_value['customers_status_show_price'], 'customers_status_show_price_tax' => $customers_status_value['customers_status_show_price_tax'], 'customers_status_add_tax_ot' => $customers_status_value['customers_status_add_tax_ot'], 'customers_status_payment_unallowed' => $customers_status_value['customers_status_payment_unallowed'], 'customers_status_shipping_unallowed' => $customers_status_value['customers_status_shipping_unallowed'], 'customers_status_discount_attributes' => $customers_status_value['customers_status_discount_attributes'], 'customers_fsk18' => $customers_status_value['customers_fsk18'], 'customers_fsk18_display' => $customers_status_value['customers_fsk18_display']); // prefetch tax rates for standard zone $zones_query = xtDBquery("SELECT tax_class_id as class FROM ".TABLE_TAX_CLASS); while ($zones_data = xtc_db_fetch_array($zones_query,true)) { // calculate tax based on shipping or deliverey country (for downloads) if (isset($_SESSION['billto']) && isset($_SESSION['sendto'])) { $tax_address_query = xtc_db_query("select ab.entry_country_id, ab.entry_zone_id from " . TABLE_ADDRESS_BOOK . " ab left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id) where ab.customers_id = '" . $_SESSION['customer_id'] . "' and ab.address_book_id = '" . ($this->content_type == 'virtual' ? $_SESSION['billto'] : $_SESSION['sendto']) . "'"); $tax_address = xtc_db_fetch_array($tax_address_query); $this->TAX[$zones_data['class']]=xtc_get_tax_rate($zones_data['class'],$tax_address['entry_country_id'], $tax_address['entry_zone_id']); } else { $this->TAX[$zones_data['class']]=xtc_get_tax_rate($zones_data['class']); } } } // get products Price function xtcGetPrice($pID, $format = true, $qty, $tax_class, $pPrice, $vpeStatus = 0, $cedit_id = 0) { // check if group is allowed to see prices if ($this->cStatus['customers_status_show_price'] == '0') return $this->xtcShowNote($vpeStatus, $vpeStatus); // get Tax rate if ($cedit_id != 0) { $cinfo = xtc_oe_customer_infos($cedit_id); $products_tax = xtc_get_tax_rate($tax_class, $cinfo['country_id'], $cinfo['zone_id']); } else { $products_tax = $this->TAX[$tax_class]; } if ($this->cStatus['customers_status_show_price_tax'] == '0') $products_tax = ''; // add taxes if ($pPrice == 0) $pPrice = $this->getPprice($pID); $pPrice = $this->xtcAddTax($pPrice, $products_tax); // check specialprice if ($sPrice = $this->xtcCheckSpecial($pID)) return $this->xtcFormatSpecial($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus); // check graduated if ($this->cStatus['customers_status_graduated_prices'] == '1') { if ($sPrice = $this->xtcGetGraduatedPrice($pID, $qty)) return $this->xtcFormatSpecialGraduated($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $pID); } else { // check Group Price if ($sPrice = $this->xtcGetGroupPrice($pID, 1)) return $this->xtcFormatSpecialGraduated($pID, $this->xtcAddTax($sPrice, $products_tax), $pPrice, $format, $vpeStatus, $pID); } // check Product Discount if ($discount = $this->xtcCheckDiscount($pID)) return $this->xtcFormatSpecialDiscount($pID, $discount, $pPrice, $format, $vpeStatus); return $this->xtcFormat($pPrice, $format, 0, false, $vpeStatus, $pID); } function getPprice($pID) { $pQuery = "SELECT products_price FROM ".TABLE_PRODUCTS." WHERE products_id='".$pID."'"; $pQuery = xtDBquery($pQuery); $pData = xtc_db_fetch_array($pQuery, true); return $pData['products_price']; } function xtcAddTax($price, $tax) { $price = $price + $price / 100 * $tax; $price = $this->xtcCalculateCurr($price); return round($price, $this->currencies[$this->actualCurr]['decimal_places']); } function xtcCheckDiscount($pID) { // check if group got discount if ($this->cStatus['customers_status_discount'] != '0.00') { $discount_query = "SELECT products_discount_allowed FROM ".TABLE_PRODUCTS." WHERE products_id = '".$pID."'"; $discount_query = xtDBquery($discount_query); $dData = xtc_db_fetch_array($discount_query, true); $discount = $dData['products_discount_allowed']; if ($this->cStatus['customers_status_discount'] < $discount) $discount = $this->cStatus['customers_status_discount']; if ($discount == '0.00') return false; return $discount; } return false; } function xtcGetGraduatedPrice($pID, $qty) { if (GRADUATED_ASSIGN == 'true') if (xtc_get_qty($pID) > $qty) $qty = xtc_get_qty($pID); //if (!is_int($this->cStatus['customers_status_id']) && $this->cStatus['customers_status_id']!=0) $this->cStatus['customers_status_id'] = DEFAULT_CUSTOMERS_STATUS_ID_GUEST; $graduated_price_query = "SELECT max(quantity) as qty FROM ".TABLE_PERSONAL_OFFERS_BY.$this->actualGroup." WHERE products_id='".$pID."' AND quantity<='".$qty."'"; $graduated_price_query = xtDBquery($graduated_price_query); $graduated_price_data = xtc_db_fetch_array($graduated_price_query, true); if ($graduated_price_data['qty']) { $graduated_price_query = "SELECT personal_offer FROM ".TABLE_PERSONAL_OFFERS_BY.$this->actualGroup." WHERE products_id='".$pID."' AND quantity='".$graduated_price_data['qty']."'"; $graduated_price_query = xtDBquery($graduated_price_query); $graduated_price_data = xtc_db_fetch_array($graduated_price_query, true); $sPrice = $graduated_price_data['personal_offer']; if ($sPrice != 0.00) return $sPrice; } else { return; } } function xtcGetGroupPrice($pID, $qty) { $graduated_price_query = "SELECT max(quantity) as qty FROM ".TABLE_PERSONAL_OFFERS_BY.$this->actualGroup." WHERE products_id='".$pID."' AND quantity<='".$qty."'"; $graduated_price_query = xtDBquery($graduated_price_query); $graduated_price_data = xtc_db_fetch_array($graduated_price_query, true); if ($graduated_price_data['qty']) { $graduated_price_query = "SELECT personal_offer FROM ".TABLE_PERSONAL_OFFERS_BY.$this->actualGroup." WHERE products_id='".$pID."' AND quantity='".$graduated_price_data['qty']."'"; $graduated_price_query = xtDBquery($graduated_price_query); $graduated_price_data = xtc_db_fetch_array($graduated_price_query, true); $sPrice = $graduated_price_data['personal_offer']; if ($sPrice != 0.00) return $sPrice; } else { return; } } function xtcGetOptionPrice($pID, $option, $value) { $attribute_price_query = "select pd.products_discount_allowed,pd.products_tax_class_id, p.options_values_price, p.price_prefix, p.options_values_weight, p.weight_prefix from ".TABLE_PRODUCTS_ATTRIBUTES." p, ".TABLE_PRODUCTS." pd where p.products_id = '".$pID."' and p.options_id = '".$option."' and pd.products_id = p.products_id and p.options_values_id = '".$value."'"; $attribute_price_query = xtDBquery($attribute_price_query); $attribute_price_data = xtc_db_fetch_array($attribute_price_query, true); $dicount = 0; if ($this->cStatus['customers_status_discount_attributes'] == 1 && $this->cStatus['customers_status_discount'] != 0.00) { $discount = $this->cStatus['customers_status_discount']; if ($attribute_price_data['products_discount_allowed'] < $this->cStatus['customers_status_discount']) $discount = $attribute_price_data['products_discount_allowed']; } $price = $this->xtcFormat($attribute_price_data['options_values_price'], false, $attribute_price_data['products_tax_class_id']); if ($attribute_price_data['weight_prefix'] != '+') $attribute_price_data['options_values_weight'] *= -1; if ($attribute_price_data['price_prefix'] == '+') { $price = $price - $price / 100 * $discount; } else { $price *= -1; } return array ('weight' => $attribute_price_data['options_values_weight'], 'price' => $price); } function xtcShowNote($vpeStatus, $vpeStatus = 0) { if ($vpeStatus == 1) return array ('formated' => NOT_ALLOWED_TO_SEE_PRICES, 'plain' => 0); return NOT_ALLOWED_TO_SEE_PRICES; } function xtcCheckSpecial($pID) { $product_query = "select specials_new_products_price from ".TABLE_SPECIALS." where products_id = '".$pID."' and status=1"; $product_query = xtDBquery($product_query); $product = xtc_db_fetch_array($product_query, true); return $product['specials_new_products_price']; } function xtcCalculateCurr($price) { return $this->currencies[$this->actualCurr]['value'] * $price; } function calcTax($price, $tax) { return $price * $tax / 100; } function xtcRemoveCurr($price) { // check if used Curr != DEFAULT curr if (DEFAULT_CURRENCY != $this->actualCurr) { return $price * (1 / $this->currencies[$this->actualCurr]['value']); } else { return $price; } } function xtcRemoveTax($price, $tax) { $price = ($price / (($tax +100) / 100)); return $price; } function xtcGetTax($price, $tax) { $tax = $price - $this->xtcRemoveTax($price, $tax); return $tax; } function xtcRemoveDC($price,$dc) { $price = $price - ($price/100*$dc); return $price; } function xtcGetDC($price,$dc) { $dc = $price/100*$dc; return $dc; } function checkAttributes($pID) { if (!$this->showFrom_Attributes) return; if ($pID == 0) return; $products_attributes_query = "select count(*) as total from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$pID."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."'"; $products_attributes = xtDBquery($products_attributes_query); $products_attributes = xtc_db_fetch_array($products_attributes, true); if ($products_attributes['total'] > 0) return ' '.strtolower(FROM).' '; } function xtcCalculateCurrEx($price, $curr) { return $price * ($this->currencies[$curr]['value'] / $this->currencies[$this->actualCurr]['value']); } /* * * Format Functions * * * */ function xtcFormat($price, $format, $tax_class = 0, $curr = false, $vpeStatus = 0, $pID = 0) { if ($curr) $price = $this->xtcCalculateCurr($price); if ($tax_class != 0) { $products_tax = $this->TAX[$tax_class]; if ($this->cStatus['customers_status_show_price_tax'] == '0') $products_tax = ''; $price = $this->xtcAddTax($price, $products_tax); } if ($format) { [B][COLOR="Red"] $Pprice = number_format($price, $this->currencies[$this->actualCurr]['decimal_places'], $this->currencies[$this->actualCurr]['decimal_point'], $this->currencies[$this->actualCurr]['thousands_point']);[/COLOR][/B] $Pprice = $this->checkAttributes($pID).$this->currencies[$this->actualCurr]['symbol_left'].' '.$Pprice.' '.$this->currencies[$this->actualCurr]['symbol_right']; if ($vpeStatus == 0) { return $Pprice; } else { return array ('formated' => $Pprice, 'plain' => $price); } } else { return round($price, $this->currencies[$this->actualCurr]['decimal_places']); } } function xtcFormatSpecialDiscount($pID, $discount, $pPrice, $format, $vpeStatus = 0) { $sPrice = $pPrice - ($pPrice / 100) * $discount; if ($format) { $price = '<span class="productOldPrice">'.INSTEAD.$this->xtcFormat($pPrice, $format).'</span><br />'.ONLY.$this->checkAttributes($pID).$this->xtcFormat($sPrice, $format).'<br />'.YOU_SAVE.$discount.'%'; if ($vpeStatus == 0) { return $price; } else { return array ('formated' => $price, 'plain' => $sPrice); } } else { return round($sPrice, $this->currencies[$this->actualCurr]['decimal_places']); } } function xtcFormatSpecial($pID, $sPrice, $pPrice, $format, $vpeStatus = 0) { if ($format) { $price = '<span class="productOldPrice">'.INSTEAD.$this->xtcFormat($pPrice, $format).'</span><br />'.ONLY.$this->checkAttributes($pID).$this->xtcFormat($sPrice, $format); if ($vpeStatus == 0) { return $price; } else { return array ('formated' => $price, 'plain' => $sPrice); } } else { return round($sPrice, $this->currencies[$this->actualCurr]['decimal_places']); } } function xtcFormatSpecialGraduated($pID, $sPrice, $pPrice, $format, $vpeStatus = 0, $pID) { if ($pPrice == 0) return $this->xtcFormat($sPrice, $format, 0, false, $vpeStatus); if ($discount = $this->xtcCheckDiscount($pID)) $sPrice -= $sPrice / 100 * $discount; if ($format) { if ($sPrice != $pPrice) { $price = '<span class="productOldPrice">'.MSRP.$this->xtcFormat($pPrice, $format).'</span><br />'.YOUR_PRICE.$this->checkAttributes($pID).$this->xtcFormat($sPrice, $format); } else { $price = FROM.$this->xtcFormat($sPrice, $format); } if ($vpeStatus == 0) { return $price; } else { return array ('formated' => $price, 'plain' => $sPrice); } } else { return round($sPrice, $this->currencies[$this->actualCurr]['decimal_places']); } } function get_decimal_places($code) { return $this->currencies[$this->actualCurr]['decimal_places']; } } ?> Datei "includes/modules/order_details_cart.php" <?php /* ----------------------------------------------------------------------------------------- $Id: order_details_cart.php 1281 2005-10-03 09:30:17Z mz $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright (c) 2003 XT-Commerce ----------------------------------------------------------------------------------------- based on: (c) 2000-2001 The Exchange Project (earlier name of osCommerce) (c) 2002-2003 osCommerce(order_details.php,v 1.8 2003/05/03); www.oscommerce.com (c) 2003 nextcommerce (order_details.php,v 1.16 2003/08/17); www.nextcommerce.org Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contribution: Customers Status v3.x (c) 2002-2003 Copyright Elari [email protected] | www.unlockgsm.com/dload-osc/ | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/elari/?sortby=date#dirlist Credit Class/Gift Vouchers/Discount Coupons (Version 5.10) http://www.oscommerce.com/community/contributions,282 Copyright (c) Strider | [email protected] Copyright (c Nick Stanko of UkiDev.com, [email protected] Copyright (c) Andre [email protected] Copyright (c) 2001,2002 Ian C Wilson http://www.phesis.org Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ $module_smarty = new Smarty; $module_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/'); // include needed functions require_once (DIR_FS_INC.'xtc_check_stock.inc.php'); require_once (DIR_FS_INC.'xtc_get_products_stock.inc.php'); require_once (DIR_FS_INC.'xtc_remove_non_numeric.inc.php'); require_once (DIR_FS_INC.'xtc_get_short_description.inc.php'); require_once (DIR_FS_INC.'xtc_format_price.inc.php'); require_once (DIR_FS_INC.'xtc_get_attributes_model.inc.php'); $module_content = array (); $any_out_of_stock = ''; $mark_stock = ''; for ($i = 0, $n = sizeof($products); $i < $n; $i ++) { if (STOCK_CHECK == 'true') { $mark_stock = xtc_check_stock($products[$i]['id'], $products[$i]['quantity']); if ($mark_stock) $_SESSION['any_out_of_stock'] = 1; } $image = ''; if ($products[$i]['image'] != '') { $image = DIR_WS_THUMBNAIL_IMAGES.$products[$i]['image']; } [B] [COLOR="Red"]$module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_QTY' => xtc_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2"').xtc_draw_hidden_field('products_id[]', $products[$i]['id']).xtc_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => xtc_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $xtPrice->xtcFormat($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$xtPrice->xtcFormat($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => xtc_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');[/COLOR][/B] // Product options names $attributes_exist = ((isset ($products[$i]['attributes'])) ? 1 : 0); if ($attributes_exist == 1) { reset($products[$i]['attributes']); while (list ($option, $value) = each($products[$i]['attributes'])) { if (ATTRIBUTE_STOCK_CHECK == 'true' && STOCK_CHECK == 'true') { $attribute_stock_check = xtc_check_stock_attributes($products[$i][$option]['products_attributes_id'], $products[$i]['quantity']); if ($attribute_stock_check) $_SESSION['any_out_of_stock'] = 1; } $module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check); } } } $total_content = ''; $total =$_SESSION['cart']->show_total(); if ($_SESSION['customers_status']['customers_status_ot_discount_flag'] == '1' && $_SESSION['customers_status']['customers_status_ot_discount'] != '0.00') { if ($_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 1) { $price = $total-$_SESSION['cart']->show_tax(false); } else { $price = $total; } $discount = $xtPrice->xtcGetDC($price, $_SESSION['customers_status']['customers_status_ot_discount']); $total_content = $_SESSION['customers_status']['customers_status_ot_discount'].' % '.SUB_TITLE_OT_DISCOUNT.' -'.xtc_format_price($discount, $price_special = 1, $calculate_currencies = false).'<br />'; } if ($_SESSION['customers_status']['customers_status_show_price'] == '1') { if ($_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 0) $total-=$discount; if ($_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 1) $total-=$discount; if ($_SESSION['customers_status']['customers_status_show_price_tax'] == 1) $total-=$discount; $total_content .= SUB_TITLE_SUB_TOTAL.$xtPrice->xtcFormat($total, true).'<br />'; } else { $total_content .= NOT_ALLOWED_TO_SEE_PRICES.'<br />'; } // display only if there is an ot_discount if ($customer_status_value['customers_status_ot_discount'] != 0) { $total_content .= TEXT_CART_OT_DISCOUNT.$customer_status_value['customers_status_ot_discount'].'%'; } if (SHOW_SHIPPING == 'true') { $module_smarty->assign('SHIPPING_INFO', ' '.SHIPPING_EXCL.'<a href="javascript:newWin=void(window.open(\''.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS).'\', \'popup\', \'toolbar=0, width=640, height=600\'))"> '.SHIPPING_COSTS.'</a>'); } if ($_SESSION['customers_status']['customers_status_show_price'] == '1') { $module_smarty->assign('UST_CONTENT', $_SESSION['cart']->show_tax()); } $module_smarty->assign('TOTAL_CONTENT', $total_content); $module_smarty->assign('language', $_SESSION['language']); $module_smarty->assign('module_content', $module_content); $module_smarty->caching = 0; $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/order_details.html'); $smarty->assign('MODULE_order_details', $module); ?> Ich hoffe es kann mir jemand helfen.... Link to comment Share on other sites More sharing options...
GoriBoy Posted October 16, 2009 Report Share Posted October 16, 2009 ich glaube du bist hier im falschen forum.. das ist das forum für veyton 4.0 und du hast anscheinend v 3.04 Gruß GoriBoy Link to comment Share on other sites More sharing options...
Cao-XTC Posted October 16, 2009 Author Report Share Posted October 16, 2009 Oh Sorry.... meine SuMa hatte nur "Shopsoftware" angezeigt ...kann das jemand ins richtige verschieben? Link to comment Share on other sites More sharing options...
digicam Posted October 24, 2009 Report Share Posted October 24, 2009 Hallo Cao-XTC, ich habe das selbe Problem. Hast du bereits eine Lösung gefunden? Link to comment Share on other sites More sharing options...
Dreadnik Posted November 13, 2009 Report Share Posted November 13, 2009 Hallo, ich habe die zweite Fehlermeldung wegbekommen, indem ich in Zeile 59 von order_cart_details.php den Abschnitt: 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), in 'PRODUCTS_TAX' => number_format($products[$i]['tax'], (int)TAX_DECIMAL_PLACES), geändert habe. Da ich mich aber nicht wirklich mit PHP auskenne, kann das natürlich falsch sein. Wie auch immer, die Fehlermeldung ist danach verschwunden und mir ist sonst auch kein fehlerhaftes Verhalten oder falsche Berechnungen aufgefallen. Grup Dreadnik Link to comment Share on other sites More sharing options...
digicam Posted November 13, 2009 Report Share Posted November 13, 2009 Hallo Dreadnik, der Fehler ist damit wirklich verschwunden aber ich denke nicht, dass es die richtige Lösung ist. Ich bin zwar auch kein PHP Artist aber für meine Begriffe hat die Änderung auf (int)TAX_DECIMAL_PLACES eigentlich nur verursacht, dass die Variable TAX_DECIMAL_PLACES nicht gelesen wird, weil es keine (int)... Variable gibt. Komisch ist nur, dass es keine Fehlermeldung gibt. Weiss jemand mehr über diese Variable? Wo wird sie definiert und wo ist sie in der Datenbank? Vielleicht liegt da der Fehler. Link to comment Share on other sites More sharing options...
s0nic Posted December 4, 2009 Report Share Posted December 4, 2009 (Zur Lösung des Problems siehe weiter unten) Das "(int)" bedeutet, daß PHP den vorgefundenen Wert in eine Ganzzahl umwandelt. Aber zurück zum Anfang: Für die Konstante TAX_DECIMAL_PLACES gibt es noch gar keinen Wert - es existiert einfach kein Eintrag dafür in der Datenbank. PHP greift hier also auf eine nicht-existente Konstante zu. Der number_format-Befehl bekommt somit nicht seine verlangte Ganzzahl und wirft entsprechend einen Fehler. Schreibt man nun ein "(int)" davor, wird eine Ganzzahl erzeugt und es kommt zu keinem Fehler. Diese Lösung verhindert also die Fehlermeldung, löst aber nicht das eigentliche Problem. Wer eine saubere Lösung will, kommt nicht drumherum, diese Konstante im System zu hinterlegen. Das geht so: in der Datenbank-Tabelle "configuration" wird eine neue Zeile eingefügt: INSERT INTO `configuration` (`configuration_id`, `configuration_key`, `configuration_value`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES (NULL, 'TAX_DECIMAL_PLACES', '2', '1', '30', '', '', '', ''); Somit wird der neue Wert im Backend unter Konfiguration -> Mein Shop ganz unten angezeigt. Jedoch kommt es noch zu einer Fehlermeldung, weil es noch keinen Titel und keine Erklärung zu diesem Wert gibt. Also die Datei "/lang/german/admin/configuration.php" öffnen und dort die folgenden beiden Zeilen eintragen (wo die Zeilen genau stehen ist egal, aber ich habe sie nach Zeile 519 bzw. der Zeile mit "PRICE_PRECISION_DESC" eingetragen). define('TAX_DECIMAL_PLACES_TITLE' , 'Steuersatz-Dezimalstellen'); define('TAX_DECIMAL_PLACES_DESC' , 'Die Anzahl der Dezimalstellen für den Steuersatz'); Fertig! Nun kann der Wert bequem im Backend eingesehen und geändert werden. Link to comment Share on other sites More sharing options...
jav666 Posted April 4, 2011 Report Share Posted April 4, 2011 großes kino! danke! Link to comment Share on other sites More sharing options...
reSstyle Posted October 3, 2014 Report Share Posted October 3, 2014 Moin, Moin! dieser Fehler kommt nach der Umstellung auf PHP 5.3 Warning: number_format() expects parameter 1 to be double, string given in /includes/classes/xtcPrice.php on line 319 Meine Lösung: Die Datei "xtcPrice.php" Zeile 319 $Pprice = number_format($price, $this->currencies[$this->actualCurr]['decimal_places'], $this->currencies[$this->actualCurr]['decimal_point'], $this->currencies[$this->actualCurr]['thousands_point']); ändern in: if(is_numeric($price)) { $Pprice = number_format($price, $this->currencies[$this->actualCurr]['decimal_places'], $this->currencies[$this->actualCurr]['decimal_point'], $this->currencies[$this->actualCurr]['thousands_point']); } else { $Pprice = NULL; } Fertig Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.