diff --git a/classes/Category.php b/classes/Category.php index a2b576022..b129ed194 100644 --- a/classes/Category.php +++ b/classes/Category.php @@ -647,7 +647,7 @@ class CategoryCore extends ObjectModel ON p.`id_product` = cp.`id_product` LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (p.`id_product` = pa.`id_product`) - '.Shop::addSqlAssociation('product_attribute', 'pa', false, 'product_attribute_shop.default_on = 1').' + '.Shop::addSqlAssociation('product_attribute', 'pa', false).' '.Shop::addSqlAssociation('product', 'p').' '.Product::sqlStock('p', 'pa', false, $context->shop).' LEFT JOIN `'._DB_PREFIX_.'category_lang` cl @@ -675,6 +675,7 @@ class CategoryCore extends ObjectModel LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` WHERE product_shop.`id_shop` = '.(int)Context::getContext()->shop->id.' + AND (product_attribute_shop.default_on = 1 OR product_attribute_shop.default_on IS NULL) AND cp.`id_category` = '.(int)$this->id .($active ? ' AND product_shop.`active` = 1' : '') .($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '') diff --git a/classes/Manufacturer.php b/classes/Manufacturer.php index 68a9f911f..21f3ab47d 100644 --- a/classes/Manufacturer.php +++ b/classes/Manufacturer.php @@ -184,6 +184,7 @@ class ManufacturerCore extends ObjectModel ) '.Shop::addSqlAssociation('manufacturer', 'm'). ($active ? ' AND m.`active` = 1' : '').' + GROUP BY m.id_manufacturer ORDER BY m.`name` ASC'. ($p ? ' LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n : ''); @@ -337,7 +338,7 @@ class ManufacturerCore extends ObjectModel '.Shop::addSqlAssociation('product', 'p').' LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (p.`id_product` = pa.`id_product`) - '.Shop::addSqlAssociation('product_attribute', 'pa', false, 'product_attribute_shop.default_on = 1').' + '.Shop::addSqlAssociation('product_attribute', 'pa', false).' LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').') LEFT JOIN `'._DB_PREFIX_.'image` i @@ -359,14 +360,15 @@ class ManufacturerCore extends ObjectModel WHERE p.`id_manufacturer` = '.(int)$id_manufacturer.' '.($active ? ' AND product_shop.`active` = 1' : '').' '.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').' - AND p.`id_product` IN ( - SELECT cp.`id_product` - FROM `'._DB_PREFIX_.'category_group` cg - LEFT JOIN `'._DB_PREFIX_.'category_product` cp - ON (cp.`id_category` = cg.`id_category`)'. + AND (product_attribute_shop.default_on = 1 OR product_attribute_shop.default_on IS NULL) + AND p.`id_product` IN ( + SELECT cp.`id_product` + FROM `'._DB_PREFIX_.'category_group` cg + LEFT JOIN `'._DB_PREFIX_.'category_product` cp + ON (cp.`id_category` = cg.`id_category`)'. ($active_category ? ' INNER JOIN `'._DB_PREFIX_.'category` ca ON cp.`id_category` = ca.`id_category` AND ca.`active` = 1' : '').' - WHERE cg.`id_group` '.$sql_groups.' - ) + WHERE cg.`id_group` '.$sql_groups.' + ) ORDER BY '.(($order_by == 'id_product') ? 'p.' : '').pSQL($order_by).' '.pSQL($order_way).' LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n; diff --git a/classes/Product.php b/classes/Product.php index 37b40f87a..9cb1a8d94 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -1827,7 +1827,7 @@ class ProductCore extends ObjectModel $sql->select('pa.id_product_attribute'); $sql->leftOuterJoin('product_attribute', 'pa', 'p.`id_product` = pa.`id_product`'); $sql->join(Shop::addSqlAssociation('product_attribute', 'pa', false)); - $sql->where('product_attribute_shop.default_on = 1'); + $sql->where('(product_attribute_shop.default_on = 1 OR product_attribute_shop.default_on IS NULL)'); } $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);