From b621e0f9ebcdf0efb073870b207e6279db90ec6a Mon Sep 17 00:00:00 2001 From: mDeflotte Date: Mon, 21 May 2012 15:32:56 +0000 Subject: [PATCH] [-] BO : #PSCFV-2473 - Fix bug with attribute value and shop git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15531 b9a71923-0436-4b27-9f14-aed3839534dd --- classes/Attribute.php | 2 ++ classes/Product.php | 4 ++++ controllers/admin/AdminAttributesGroupsController.php | 3 ++- controllers/admin/AdminFeaturesController.php | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/classes/Attribute.php b/classes/Attribute.php index 45ff59993..85c1afe94 100644 --- a/classes/Attribute.php +++ b/classes/Attribute.php @@ -148,6 +148,8 @@ class AttributeCore extends ObjectModel ON a.`id_attribute_group` = ag.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.') + '.Shop::addSqlAssociation('attribute_group', 'ag').' + '.Shop::addSqlAssociation('attribute', 'a').' '.($not_null ? 'WHERE a.`id_attribute` IS NOT NULL AND al.`name` IS NOT NULL' : '').' ORDER BY agl.`name` ASC, a.`position` ASC '); diff --git a/classes/Product.php b/classes/Product.php index 3caa78351..35e168ee3 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -2834,6 +2834,7 @@ class ProductCore extends ObjectModel LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON a.`id_attribute` = al.`id_attribute` LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON ag.`id_attribute_group` = agl.`id_attribute_group` + '.Shop::addSqlAssociation('attribute', 'a').' WHERE pa.`id_product` = '.(int)$this->id.' AND al.`id_lang` = '.(int)$id_lang.' AND agl.`id_lang` = '.(int)$id_lang.' @@ -4592,6 +4593,7 @@ class ProductCore extends ObjectModel LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (pac.`id_product_attribute` = pa.`id_product_attribute`) '.Shop::addSqlAssociation('product_attribute', 'pa').' + '.Shop::addSqlAssociation('attribute', 'pac').' WHERE pa.`id_product` = '.(int)$id_product.' AND a.`id_attribute` NOT IN('.implode(', ', $tab_id_attribute).')'); $result = array_merge($values_not_custom, $result); @@ -4610,6 +4612,7 @@ class ProductCore extends ObjectModel LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (pac.`id_product_attribute` = pa.`id_product_attribute`) '.Shop::addSqlAssociation('product_attribute', 'pa').' + '.Shop::addSqlAssociation('attribute', 'pac').' WHERE pa.`id_product` = '.(int)$id_product); } } @@ -4627,6 +4630,7 @@ class ProductCore extends ObjectModel LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (pac.`id_product_attribute` = pa.`id_product_attribute`) '.Shop::addSqlAssociation('product_attribute', 'pa').' + '.Shop::addSqlAssociation('attribute', 'pac').' WHERE pa.`id_product` = '.(int)$id_product); } return $result; diff --git a/controllers/admin/AdminAttributesGroupsController.php b/controllers/admin/AdminAttributesGroupsController.php index d3e204111..054df4e0f 100644 --- a/controllers/admin/AdminAttributesGroupsController.php +++ b/controllers/admin/AdminAttributesGroupsController.php @@ -691,8 +691,9 @@ class AdminAttributesGroupsControllerCore extends AdminController $item = &$this->_list[$i]; $query = new DbQuery(); - $query->select('COUNT(id_attribute) as count_values'); + $query->select('COUNT(a.id_attribute) as count_values'); $query->from('attribute', 'a'); + $query->join(Shop::addSqlAssociation('attribute', 'a')); $query->where('a.id_attribute_group ='.(int)$item['id_attribute_group']); $res = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query); $item['count_values'] = (int)$res; diff --git a/controllers/admin/AdminFeaturesController.php b/controllers/admin/AdminFeaturesController.php index 143eb530e..f0586caa4 100644 --- a/controllers/admin/AdminFeaturesController.php +++ b/controllers/admin/AdminFeaturesController.php @@ -461,7 +461,7 @@ class AdminFeaturesControllerCore extends AdminController $item = &$this->_list[$i]; $query = new DbQuery(); - $query->select('COUNT(id_feature_value) as count_values'); + $query->select('COUNT(fv.id_feature_value) as count_values'); $query->from('feature_value', 'fv'); $query->where('fv.id_feature ='.(int)$item['id_feature']); $res = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);