From 2090f2d279503b78b608db57bb64fe425546fd4d Mon Sep 17 00:00:00 2001 From: vChabot Date: Mon, 27 Feb 2012 15:42:48 +0000 Subject: [PATCH] // id_category_default fix --- classes/Product.php | 17 +++++++++++------ controllers/admin/AdminProductsController.php | 6 +++++- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/classes/Product.php b/classes/Product.php index 922ccfdae..c6efa4c60 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -4830,14 +4830,19 @@ class ProductCore extends ObjectModel WHERE `id_product` = '.(int)$id_product); } - public function updateCategoryDefault($shop = null) + public function updateCategoryDefault($shop = null, $insert = false) { if (is_null($shop)) $shop = new Shop(Configuration::get('PS_SHOP_DEFAULT')); - return Db::getInstance()->execute(' - UPDATE `'._DB_PREFIX_.'product_shop` - SET `id_category_default` = '.(int)$this->id_category_default.' - WHERE `id_shop` = '.(int)$shop->id.' - AND `id_product` = '.(int)$this->id); + if ($insert) + return Db::getInstance()->execute(' + INSERT INTO `'._DB_PREFIX_.'product_shop` + VALUES ('.(int)$this->id.', '.(int)$shop->id.', '.(int)$this->id_category_default.')'); + else + return Db::getInstance()->execute(' + UPDATE `'._DB_PREFIX_.'product_shop` + SET `id_category_default` = '.(int)$this->id_category_default.' + WHERE `id_shop` = '.(int)$shop->id.' + AND `id_product` = '.(int)$this->id); } } diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index 4648328ca..8e16ef706 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -3965,6 +3965,10 @@ class AdminProductsControllerCore extends AdminController if (!$type) return; + if ($new_id_object) + $object = new Product($new_id_object); + else + $object = new Product($id_object); $delete = $insert = ''; foreach ($assos as $asso) { @@ -3974,7 +3978,7 @@ class AdminProductsControllerCore extends AdminController if ($product['id_shop'] == $asso['id_'.$type]) $passed = true; if (!$passed) - $insert .= '('.($new_id_object ? (int)$new_id_object : (int)$asso['id_object']).', '.(int)$asso['id_'.$type].'),'; + $insert .= '('.($new_id_object ? (int)$new_id_object : (int)$asso['id_object']).', '.(int)$asso['id_'.$type].', '.(int)$object->id_category_default.'),'; } $delete = rtrim($delete, ','); $insert = rtrim($insert, ',');