0etzi Posted July 25, 2008 Report Share Posted July 25, 2008 Mir liegen 2 Module vor. Modul Merkzettel und Modul Zubehör und natürlich xt-commerce in der Verson 3.04SP2.1. Egal wie rum ich es versuche, zuerst dieses oder jenes, ich komme nicht drauf, wie der Code angepasst werden muss. Es geht um die Datei cart_actions.php, hier der Code des Originals: <?php /* ----------------------------------------------------------------------------------------- $Id: cart_actions.php 1298 2005-10-09 13:14:44Z 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(application_top.php,v 1.273 2003/05/19); www.oscommerce.com (c) 2003 nextcommerce (application_top.php,v 1.54 2003/08/25); www.nextcommerce.org Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contribution: Add A Quickie v1.0 Autor Harald Ponce de Leon 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 ---------------------------------------------------------------------------------------*/ // Shopping cart actions if (isset ($_GET['action'])) { // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled if ($session_started == false) { xtc_redirect(xtc_href_link(FILENAME_COOKIE_USAGE)); } if (DISPLAY_CART == 'true') { $goto = FILENAME_SHOPPING_CART; $parameters = array ( 'action', 'cPath', 'products_id', 'pid' ); } else { $goto = basename($PHP_SELF); if ($_GET['action'] == 'buy_now') { $parameters = array ( 'action', 'pid', 'products_id', 'BUYproducts_id' ); } else { $parameters = array ( 'action', 'pid', 'BUYproducts_id', 'info' ); } } switch ($_GET['action']) { // customer wants to update the product quantity in their shopping cart case 'update_product' : if (is_object($econda)) $econda->_emptyCart(); for ($i = 0, $n = sizeof($_POST['products_id']); $i < $n; $i++) { if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array ()))) { $_SESSION['cart']->remove($_POST['products_id'][$i]); if (is_object($econda)) $econda->_delArticle($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $_POST['old_qty'][$i]); } else { if ($_POST['cart_quantity'][$i] > MAX_PRODUCTS_QTY) $_POST['cart_quantity'][$i] = MAX_PRODUCTS_QTY; $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : ''; if (is_object($econda)) { $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'][$i])); $econda->_updateProduct($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $old_quantity); } $_SESSION['cart']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false); } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters))); break; // customer adds a product from the products page case 'add_product' : if (isset ($_POST['products_id']) && is_numeric($_POST['products_id'])) { if ($_POST['products_qty'] > MAX_PRODUCTS_QTY) $_POST['products_qty'] = MAX_PRODUCTS_QTY; if (is_object($econda)) { $econda->_emptyCart(); $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])); $econda->_addProduct($_POST['products_id'], $_POST['products_qty'], $old_quantity); } $_SESSION['cart']->add_cart((int) $_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])) + xtc_remove_non_numeric($_POST['products_qty']), $_POST['id']); } xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters))); break; case 'check_gift' : require_once (DIR_FS_INC . 'xtc_collect_posts.inc.php'); xtc_collect_posts(); break; // customer wants to add a quickie to the cart (called from a box) case 'add_a_quickie' : $quicky = addslashes($_POST['quickie']); if (GROUP_CHECK == 'true') { $group_check = "and group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } $quickie_query = xtc_db_query("select products_fsk18, products_id from " . TABLE_PRODUCTS . " where products_model = '" . $quicky . "' " . "AND products_status = '1' " . $group_check); if (!xtc_db_num_rows($quickie_query)) { if (GROUP_CHECK == 'true') { $group_check = "and group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } $quickie_query = xtc_db_query("select products_fsk18, products_id from " . TABLE_PRODUCTS . " where products_model LIKE '%" . $quicky . "%' " . "AND products_status = '1' " . $group_check); } if (xtc_db_num_rows($quickie_query) != 1) { xtc_redirect(xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . $quicky, 'NONSSL')); } $quickie = xtc_db_fetch_array($quickie_query); if (xtc_has_product_attributes($quickie['products_id'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } else { if ($quickie['products_fsk18'] == '1' && $_SESSION['customers_status']['customers_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } if ($_SESSION['customers_status']['customers_fsk18_display'] == '0' && $quickie['products_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } if ($_POST['quickie'] != '') { $act_qty = $_SESSION['cart']->get_quantity(xtc_get_uprid($quickie['products_id'], 1)); if ($act_qty > MAX_PRODUCTS_QTY) $act_qty = MAX_PRODUCTS_QTY - 1; $_SESSION['cart']->add_cart($quickie['products_id'], $act_qty +1, 1); xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params(array ( 'action' )), 'NONSSL')); } else { xtc_redirect(xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . $quicky, 'NONSSL')); } } break; // performed by the 'buy now' button in product listings and review page case 'buy_now' : if (isset ($_GET['BUYproducts_id'])) { // check permission to view product $permission_query = xtc_db_query("SELECT group_permission_" . $_SESSION['customers_status']['customers_status_id'] . " as customer_group, products_fsk18 from " . TABLE_PRODUCTS . " where products_id='" . (int) $_GET['BUYproducts_id'] . "'"); $permission = xtc_db_fetch_array($permission_query); // check for FSK18 if ($permission['products_fsk18'] == '1' && $_SESSION['customers_status']['customers_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'], 'NONSSL')); } if ($_SESSION['customers_status']['customers_fsk18_display'] == '0' && $permission['products_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'], 'NONSSL')); } if (GROUP_CHECK == 'true') { if ($permission['customer_group'] != '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'])); } } if (xtc_has_product_attributes($_GET['BUYproducts_id'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'])); } else { if (isset ($_SESSION['cart'])) { if (is_object($econda)) { $econda->_emptyCart(); $old_quantity = $_SESSION['cart']->get_quantity((int) $_GET['BUYproducts_id']); $econda->_addProduct($_GET['BUYproducts_id'], $old_quantity +1, $old_quantity); } $_SESSION['cart']->add_cart((int) $_GET['BUYproducts_id'], $_SESSION['cart']->get_quantity((int) $_GET['BUYproducts_id']) + 1); } else { xtc_redirect(xtc_href_link(FILENAME_DEFAULT)); } } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params(array ( 'action', 'BUYproducts_id' )))); break; case 'cust_order' : if (isset ($_SESSION['customer_id']) && isset ($_GET['pid'])) { if (xtc_has_product_attributes((int) $_GET['pid'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['pid'])); } else { $_SESSION['cart']->add_cart((int) $_GET['pid'], $_SESSION['cart']->get_quantity((int) $_GET['pid']) + 1); } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters))); break; } } ?> Der Stand ist nun folgender, ich habe zuerst das Modul Merkzettel installiert nach folgender Anleitung für die cart_actions.php: shop/includes/cart_actions.php das suchen : switch ($_GET['action']) { // customer wants to update the product quantity in their shopping cart case 'update_product' : for ($i = 0, $n = sizeof($_POST['products_id']); $i < $n; $i ++) { if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array ()))) { $_SESSION['cart']->remove($_POST['products_id'][$i]); } else { if ($_POST['cart_quantity'][$i] > MAX_PRODUCTS_QTY) $_POST['cart_quantity'][$i] = MAX_PRODUCTS_QTY; $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : ''; $_SESSION['cart']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false); } } hiermit ersetzen : switch ($_GET['action']) {// customer wants to update the product quantity in their shopping cart case 'update_product' : if (is_object($econda)) $econda->_emptyCart(); for ($i = 0, $n = sizeof($_POST['products_id']); $i < $n; $i ++) { if($_POST['submit_target'] == 'wishlist') //WISHLIST ############ { if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array()))) { $_SESSION['wishList']->remove($_POST['products_id'][$i]); } else { if ($_POST['cart_quantity'][$i]>MAX_PRODUCTS_QTY) $_POST['cart_quantity'][$i]=MAX_PRODUCTS_QTY; $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : ''; $_SESSION['wishList']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false); } $goto = 'wish_list.php'; if (is_object($econda)) $econda->_delArticle($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $_POST['old_qty'][$i]); } else //CART ############ { if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array()))) { $_SESSION['cart']->remove($_POST['products_id'][$i]); } else { if ($_POST['cart_quantity'][$i]>MAX_PRODUCTS_QTY) $_POST['cart_quantity'][$i]=MAX_PRODUCTS_QTY; $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : ''; $_SESSION['cart']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false); } if (is_object($econda)) { $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'][$i])); $econda->_updateProduct($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $old_quantity); } //END wishlist/cart ############ } } --------------------------- das suchen : $_SESSION['cart']->add_cart((int) $_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])) + xtc_remove_non_numeric($_POST['products_qty']), $_POST['id']); hiermit ersetzen : if($_POST['submit_target'] == 'wishlist') { $_SESSION['wishList']->add_cart((int)$_POST['products_id'], $_SESSION['wishList']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id']))+$_POST['products_qty'], $_POST['id']); $goto = 'wish_list.php'; } else { $_SESSION['cart']->add_cart((int)$_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id']))+$_POST['products_qty'], $_POST['id']); } *** Die neue cart_actions sieht danach also so aus: <?php /* ----------------------------------------------------------------------------------------- $Id: cart_actions.php 1298 2005-10-09 13:14:44Z 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(application_top.php,v 1.273 2003/05/19); www.oscommerce.com (c) 2003 nextcommerce (application_top.php,v 1.54 2003/08/25); www.nextcommerce.org Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contribution: Add A Quickie v1.0 Autor Harald Ponce de Leon 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 ---------------------------------------------------------------------------------------*/ // Shopping cart actions if (isset ($_GET['action'])) { // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled if ($session_started == false) { xtc_redirect(xtc_href_link(FILENAME_COOKIE_USAGE)); } if (DISPLAY_CART == 'true') { $goto = FILENAME_SHOPPING_CART; $parameters = array ( 'action', 'cPath', 'products_id', 'pid' ); } else { $goto = basename($PHP_SELF); if ($_GET['action'] == 'buy_now') { $parameters = array ( 'action', 'pid', 'products_id', 'BUYproducts_id' ); } else { $parameters = array ( 'action', 'pid', 'BUYproducts_id', 'info' ); } } switch ($_GET['action']) {// customer wants to update the product quantity in their shopping cart case 'update_product' : if (is_object($econda)) $econda->_emptyCart(); for ($i = 0, $n = sizeof($_POST['products_id']); $i < $n; $i ++) { if($_POST['submit_target'] == 'wishlist') //WISHLIST ############ { if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array()))) { $_SESSION['wishList']->remove($_POST['products_id'][$i]); } else { if ($_POST['cart_quantity'][$i]>MAX_PRODUCTS_QTY) $_POST['cart_quantity'][$i]=MAX_PRODUCTS_QTY; $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : ''; $_SESSION['wishList']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false); } $goto = 'wish_list.php'; if (is_object($econda)) $econda->_delArticle($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $_POST['old_qty'][$i]); } else //CART ############ { if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array()))) { $_SESSION['cart']->remove($_POST['products_id'][$i]); } else { if ($_POST['cart_quantity'][$i]>MAX_PRODUCTS_QTY) $_POST['cart_quantity'][$i]=MAX_PRODUCTS_QTY; $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : ''; $_SESSION['cart']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false); } if (is_object($econda)) { $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'][$i])); $econda->_updateProduct($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $old_quantity); } //END wishlist/cart ############ } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters))); break; // customer adds a product from the products page case 'add_product' : if (isset ($_POST['products_id']) && is_numeric($_POST['products_id'])) { if ($_POST['products_qty'] > MAX_PRODUCTS_QTY) $_POST['products_qty'] = MAX_PRODUCTS_QTY; if (is_object($econda)) { $econda->_emptyCart(); $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])); $econda->_addProduct($_POST['products_id'], $_POST['products_qty'], $old_quantity); } if($_POST['submit_target'] == 'wishlist') { $_SESSION['wishList']->add_cart((int)$_POST['products_id'], $_SESSION['wishList']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id']))+$_POST['products_qty'], $_POST['id']); $goto = 'wish_list.php'; } else { $_SESSION['cart']->add_cart((int)$_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id']))+$_POST['products_qty'], $_POST['id']); } } xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters))); break; case 'check_gift' : require_once (DIR_FS_INC . 'xtc_collect_posts.inc.php'); xtc_collect_posts(); break; // customer wants to add a quickie to the cart (called from a box) case 'add_a_quickie' : $quicky = addslashes($_POST['quickie']); if (GROUP_CHECK == 'true') { $group_check = "and group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } $quickie_query = xtc_db_query("select products_fsk18, products_id from " . TABLE_PRODUCTS . " where products_model = '" . $quicky . "' " . "AND products_status = '1' " . $group_check); if (!xtc_db_num_rows($quickie_query)) { if (GROUP_CHECK == 'true') { $group_check = "and group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } $quickie_query = xtc_db_query("select products_fsk18, products_id from " . TABLE_PRODUCTS . " where products_model LIKE '%" . $quicky . "%' " . "AND products_status = '1' " . $group_check); } if (xtc_db_num_rows($quickie_query) != 1) { xtc_redirect(xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . $quicky, 'NONSSL')); } $quickie = xtc_db_fetch_array($quickie_query); if (xtc_has_product_attributes($quickie['products_id'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } else { if ($quickie['products_fsk18'] == '1' && $_SESSION['customers_status']['customers_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } if ($_SESSION['customers_status']['customers_fsk18_display'] == '0' && $quickie['products_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } if ($_POST['quickie'] != '') { $act_qty = $_SESSION['cart']->get_quantity(xtc_get_uprid($quickie['products_id'], 1)); if ($act_qty > MAX_PRODUCTS_QTY) $act_qty = MAX_PRODUCTS_QTY - 1; $_SESSION['cart']->add_cart($quickie['products_id'], $act_qty +1, 1); xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params(array ( 'action' )), 'NONSSL')); } else { xtc_redirect(xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . $quicky, 'NONSSL')); } } break; // performed by the 'buy now' button in product listings and review page case 'buy_now' : if (isset ($_GET['BUYproducts_id'])) { // check permission to view product $permission_query = xtc_db_query("SELECT group_permission_" . $_SESSION['customers_status']['customers_status_id'] . " as customer_group, products_fsk18 from " . TABLE_PRODUCTS . " where products_id='" . (int) $_GET['BUYproducts_id'] . "'"); $permission = xtc_db_fetch_array($permission_query); // check for FSK18 if ($permission['products_fsk18'] == '1' && $_SESSION['customers_status']['customers_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'], 'NONSSL')); } if ($_SESSION['customers_status']['customers_fsk18_display'] == '0' && $permission['products_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'], 'NONSSL')); } if (GROUP_CHECK == 'true') { if ($permission['customer_group'] != '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'])); } } if (xtc_has_product_attributes($_GET['BUYproducts_id'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'])); } else { if (isset ($_SESSION['cart'])) { if (is_object($econda)) { $econda->_emptyCart(); $old_quantity = $_SESSION['cart']->get_quantity((int) $_GET['BUYproducts_id']); $econda->_addProduct($_GET['BUYproducts_id'], $old_quantity +1, $old_quantity); } $_SESSION['cart']->add_cart((int) $_GET['BUYproducts_id'], $_SESSION['cart']->get_quantity((int) $_GET['BUYproducts_id']) + 1); } else { xtc_redirect(xtc_href_link(FILENAME_DEFAULT)); } } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params(array ( 'action', 'BUYproducts_id' )))); break; case 'cust_order' : if (isset ($_SESSION['customer_id']) && isset ($_GET['pid'])) { if (xtc_has_product_attributes((int) $_GET['pid'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['pid'])); } else { $_SESSION['cart']->add_cart((int) $_GET['pid'], $_SESSION['cart']->get_quantity((int) $_GET['pid']) + 1); } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters))); break; } } ?> Jetzt möchte ich die Veränderungen für das Modul Zubehör einbauen und habe ein Problem, denn der Code, welcher verändert werden soll, ist nicht mehr so wie er war. Hier die Anleitung für die Datei cart_actions.php des Moduls Zubehör: // Suchen nach // ------------------------------------------------------------------------------------------------- case 'add_product' : if (isset ($_POST['products_id']) && is_numeric($_POST['products_id'])) { if ($_POST['products_qty'] > MAX_PRODUCTS_QTY) $_POST['products_qty'] = MAX_PRODUCTS_QTY; if (is_object($econda)) { $econda->_emptyCart(); $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])); $econda->_addProduct($_POST['products_id'], $_POST['products_qty'], $old_quantity); } $_SESSION['cart']->add_cart((int) $_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])) + xtc_remove_non_numeric($_POST['products_qty']), $_POST['id']); } xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters))); break; // ------------------------------------------------------------------------------------------------- // Ersetzen durch // ------------------------------------------------------------------------------------------------- case 'add_product' : if (isset($_POST['products_id'])) { if ($_POST['products_qty'] > MAX_PRODUCTS_QTY) $_POST['products_qty'] = MAX_PRODUCTS_QTY; if (is_object($econda)) { $econda->_emptyCart(); $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])); $econda->_addProduct($_POST['products_id'], $_POST['products_qty'], $old_quantity); } $pids = count($_POST['products_id']); for($i=0; $i<$pids; $i++){ $_SESSION['cart']->add_cart((int)$_POST['products_id'][$i], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'])) + xtc_remove_non_numeric($_POST['products_qty']), $_POST['id']); } } xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters))); break; // ------------------------------------------------------------------------------------------------- Wie kann man das Problem lösen, an meinen Versuchen bin ich gescheitert. mfg 0etzi Link to comment Share on other sites More sharing options...
mbdesign Posted November 8, 2008 Report Share Posted November 8, 2008 Das gleiche Problem habe ich auch, gibt es dafür schon eine Lösung? Link to comment Share on other sites More sharing options...
John Steed Posted November 11, 2008 Report Share Posted November 11, 2008 Wo ist denn das Problem? Das sind doch erstmal zwei unterschiedliche Stellen... Einmal wird case 'update_product' ersetzt und einmal case 'add_product', die zweite Änderung der Wishlist kann man IMHO bedenkenlos mit einbauen, da ja da eine Abfrage mit drin ist, ob das von der Wishlist kommt. Ansonsten (else) wird ja der ursprünglich "ersetzte" Code aussgeführt. Also erst Wishlist (Merkzettel) Schritt 1, dann Zubehör, und dann Wishlist Schritt 2 einbauen. Fertig würde das dann so aussehen (Ungetestet! Nur hier im Forum zusammengeschustert!): <?php /* ----------------------------------------------------------------------------------------- $Id: cart_actions.php 1298 2005-10-09 13:14:44Z 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(application_top.php,v 1.273 2003/05/19); www.oscommerce.com (c) 2003 nextcommerce (application_top.php,v 1.54 2003/08/25); www.nextcommerce.org Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contribution: Add A Quickie v1.0 Autor Harald Ponce de Leon 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 ---------------------------------------------------------------------------------------*/ // Shopping cart actions if (isset ($_GET['action'])) { // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled if ($session_started == false) { xtc_redirect(xtc_href_link(FILENAME_COOKIE_USAGE)); } if (DISPLAY_CART == 'true') { $goto = FILENAME_SHOPPING_CART; $parameters = array ( 'action', 'cPath', 'products_id', 'pid' ); } else { $goto = basename($PHP_SELF); if ($_GET['action'] == 'buy_now') { $parameters = array ( 'action', 'pid', 'products_id', 'BUYproducts_id' ); } else { $parameters = array ( 'action', 'pid', 'BUYproducts_id', 'info' ); } } switch ($_GET['action']) {// customer wants to update the product quantity in their shopping cart case 'update_product' : if (is_object($econda)) $econda->_emptyCart(); for ($i = 0, $n = sizeof($_POST['products_id']); $i < $n; $i ++) { if($_POST['submit_target'] == 'wishlist') //WISHLIST ############ { if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array()))) { $_SESSION['wishList']->remove($_POST['products_id'][$i]); } else { if ($_POST['cart_quantity'][$i]>MAX_PRODUCTS_QTY) $_POST['cart_quantity'][$i]=MAX_PRODUCTS_QTY; $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : ''; $_SESSION['wishList']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false); } $goto = 'wish_list.php'; if (is_object($econda)) $econda->_delArticle($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $_POST['old_qty'][$i]); } else //CART ############ { if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array()))) { $_SESSION['cart']->remove($_POST['products_id'][$i]); } else { if ($_POST['cart_quantity'][$i]>MAX_PRODUCTS_QTY) $_POST['cart_quantity'][$i]=MAX_PRODUCTS_QTY; $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : ''; $_SESSION['cart']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false); } if (is_object($econda)) { $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'][$i])); $econda->_updateProduct($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $old_quantity); } //END wishlist/cart ############ } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters))); break; // customer adds a product from the products page /* Hier die zweite Aenderung! - IaN */ case 'add_product' : if (isset($_POST['products_id'])) { if ($_POST['products_qty'] > MAX_PRODUCTS_QTY) $_POST['products_qty'] = MAX_PRODUCTS_QTY; if (is_object($econda)) { $econda->_emptyCart(); $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])); $econda->_addProduct($_POST['products_id'], $_POST['products_qty'], $old_quantity); } $pids = count($_POST['products_id']); for($i=0; $i<$pids; $i++){ /* Beginn Aenderung der Aenderung ;-) - IaN */ if($_POST['submit_target'] == 'wishlist') { $_SESSION['wishList']->add_cart((int)$_POST['products_id'], $_SESSION['wishList']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id']))+$_POST['products_qty'], $_POST['id']); $goto = 'wish_list.php'; } else { $_SESSION['cart']->add_cart((int)$_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id']))+$_POST['products_qty'], $_POST['id']); } /* Ende Aenderung der Aenderung ;-) - IaN */ } } xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters))); break; /* Ende zweite Aenderung -- IaN */ case 'check_gift' : require_once (DIR_FS_INC . 'xtc_collect_posts.inc.php'); xtc_collect_posts(); break; // customer wants to add a quickie to the cart (called from a box) case 'add_a_quickie' : $quicky = addslashes($_POST['quickie']); if (GROUP_CHECK == 'true') { $group_check = "and group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } $quickie_query = xtc_db_query("select products_fsk18, products_id from " . TABLE_PRODUCTS . " where products_model = '" . $quicky . "' " . "AND products_status = '1' " . $group_check); if (!xtc_db_num_rows($quickie_query)) { if (GROUP_CHECK == 'true') { $group_check = "and group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } $quickie_query = xtc_db_query("select products_fsk18, products_id from " . TABLE_PRODUCTS . " where products_model LIKE '%" . $quicky . "%' " . "AND products_status = '1' " . $group_check); } if (xtc_db_num_rows($quickie_query) != 1) { xtc_redirect(xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . $quicky, 'NONSSL')); } $quickie = xtc_db_fetch_array($quickie_query); if (xtc_has_product_attributes($quickie['products_id'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } else { if ($quickie['products_fsk18'] == '1' && $_SESSION['customers_status']['customers_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } if ($_SESSION['customers_status']['customers_fsk18_display'] == '0' && $quickie['products_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $quickie['products_id'], 'NONSSL')); } if ($_POST['quickie'] != '') { $act_qty = $_SESSION['cart']->get_quantity(xtc_get_uprid($quickie['products_id'], 1)); if ($act_qty > MAX_PRODUCTS_QTY) $act_qty = MAX_PRODUCTS_QTY - 1; $_SESSION['cart']->add_cart($quickie['products_id'], $act_qty +1, 1); xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params(array ( 'action' )), 'NONSSL')); } else { xtc_redirect(xtc_href_link(FILENAME_ADVANCED_SEARCH_RESULT, 'keywords=' . $quicky, 'NONSSL')); } } break; // performed by the 'buy now' button in product listings and review page case 'buy_now' : if (isset ($_GET['BUYproducts_id'])) { // check permission to view product $permission_query = xtc_db_query("SELECT group_permission_" . $_SESSION['customers_status']['customers_status_id'] . " as customer_group, products_fsk18 from " . TABLE_PRODUCTS . " where products_id='" . (int) $_GET['BUYproducts_id'] . "'"); $permission = xtc_db_fetch_array($permission_query); // check for FSK18 if ($permission['products_fsk18'] == '1' && $_SESSION['customers_status']['customers_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'], 'NONSSL')); } if ($_SESSION['customers_status']['customers_fsk18_display'] == '0' && $permission['products_fsk18'] == '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'], 'NONSSL')); } if (GROUP_CHECK == 'true') { if ($permission['customer_group'] != '1') { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'])); } } if (xtc_has_product_attributes($_GET['BUYproducts_id'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['BUYproducts_id'])); } else { if (isset ($_SESSION['cart'])) { if (is_object($econda)) { $econda->_emptyCart(); $old_quantity = $_SESSION['cart']->get_quantity((int) $_GET['BUYproducts_id']); $econda->_addProduct($_GET['BUYproducts_id'], $old_quantity +1, $old_quantity); } $_SESSION['cart']->add_cart((int) $_GET['BUYproducts_id'], $_SESSION['cart']->get_quantity((int) $_GET['BUYproducts_id']) + 1); } else { xtc_redirect(xtc_href_link(FILENAME_DEFAULT)); } } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params(array ( 'action', 'BUYproducts_id' )))); break; case 'cust_order' : if (isset ($_SESSION['customer_id']) && isset ($_GET['pid'])) { if (xtc_has_product_attributes((int) $_GET['pid'])) { xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . (int) $_GET['pid'])); } else { $_SESSION['cart']->add_cart((int) $_GET['pid'], $_SESSION['cart']->get_quantity((int) $_GET['pid']) + 1); } } xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters))); break; } } ?>[/PHP] Cheers, IaN Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.