From 692c1e9c8d4b67b1b2c0e0e017aaf9e7e74d3bc9 Mon Sep 17 00:00:00 2001 From: rGaillard Date: Wed, 6 Jul 2011 13:26:34 +0000 Subject: [PATCH] --- admin-dev/tabs/AdminProducts.php | 1 + classes/AdminTab.php | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/admin-dev/tabs/AdminProducts.php b/admin-dev/tabs/AdminProducts.php index 73b45839a..1896c7a12 100644 --- a/admin-dev/tabs/AdminProducts.php +++ b/admin-dev/tabs/AdminProducts.php @@ -1232,6 +1232,7 @@ class AdminProducts extends AdminTab $this->copyFromPost($object, $this->table); if ($object->add()) { + $this->updateAssoShop((int)$object->id); $this->updateAccessories($object); if (!$this->updatePackItems($object)) $this->_errors[] = Tools::displayError('An error occurred while adding products to the pack.'); diff --git a/classes/AdminTab.php b/classes/AdminTab.php index 2b59c3aad..a63496ae1 100644 --- a/classes/AdminTab.php +++ b/classes/AdminTab.php @@ -848,14 +848,15 @@ abstract class AdminTabCore } } - protected function updateAssoGroupShop() + protected function updateAssoGroupShop($id_object = false) { $assos = array(); foreach ($_POST AS $k => $row) { - if (!preg_match('/^checkBoxGroupShopAsso_'.$this->table.'_([0-9]+)_([0-9]+)$/Ui', $k, $res)) + if (!preg_match('/^checkBoxGroupShopAsso_'.$this->table.'_([0-9]+)?_([0-9]+)$/Ui', $k, $res)) continue; - $assos[] = array('id_object' => $res[1], 'id_group_shop' => (int)$res[2]); + $id_asso_object = (!empty($res[1]) ? $res[1] : $id_object); + $assos[] = array('id_object' => (int)$id_asso_object, 'id_group_shop' => (int)$res[2]); } if (!sizeof($assos)) return; @@ -871,13 +872,13 @@ abstract class AdminTabCore foreach ($_POST AS $k => $row) { - if (!preg_match('/^checkBoxShopAsso_'.$this->table.'_([0-9]+)_([0-9]+)$/Ui', $k, $res)) + if (!preg_match('/^checkBoxShopAsso_'.$this->table.'_([0-9]+)?_([0-9]+)$/Ui', $k, $res)) continue; - $assos[] = array('id_object' => $res[1], 'id_shop' => (int)$res[2]); + $id_asso_object = (!empty($res[1]) ? $res[1] : $id_object); + $assos[] = array('id_object' => (int)$id_asso_object, 'id_shop' => (int)$res[2]); } if (!sizeof($assos)) return; - Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.$this->table.'_shop'.($id_object ? ' WHERE `'.$this->identifier.'`='.(int)$id_object : '')); foreach ($assos AS $asso) Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.$this->table.'_shop(`'.pSQL($this->identifier).'`, id_shop)