// Fix multishop bug on product_attribute list
This commit is contained in:
1 parent
72efc06251
commit
e3e428e6e4
3 files changed
+13
-10
No files matched your search
@@ -647,7 +647,7 @@ class CategoryCore extends ObjectModel
|
|||||||
ON p.`id_product` = cp.`id_product`
|
ON p.`id_product` = cp.`id_product`
|
||||||
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa
|
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa
|
||||||
ON (p.`id_product` = pa.`id_product`)
|
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').'
|
'.Shop::addSqlAssociation('product', 'p').'
|
||||||
'.Product::sqlStock('p', 'pa', false, $context->shop).'
|
'.Product::sqlStock('p', 'pa', false, $context->shop).'
|
||||||
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl
|
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl
|
||||||
@@ -675,6 +675,7 @@ class CategoryCore extends ObjectModel
|
|||||||
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m
|
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m
|
||||||
ON m.`id_manufacturer` = p.`id_manufacturer`
|
ON m.`id_manufacturer` = p.`id_manufacturer`
|
||||||
WHERE product_shop.`id_shop` = '.(int)Context::getContext()->shop->id.'
|
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
|
AND cp.`id_category` = '.(int)$this->id
|
||||||
.($active ? ' AND product_shop.`active` = 1' : '')
|
.($active ? ' AND product_shop.`active` = 1' : '')
|
||||||
.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '')
|
.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '')
|
||||||
|
|||||||
@@ -184,6 +184,7 @@ class ManufacturerCore extends ObjectModel
|
|||||||
)
|
)
|
||||||
'.Shop::addSqlAssociation('manufacturer', 'm').
|
'.Shop::addSqlAssociation('manufacturer', 'm').
|
||||||
($active ? ' AND m.`active` = 1' : '').'
|
($active ? ' AND m.`active` = 1' : '').'
|
||||||
|
GROUP BY m.id_manufacturer
|
||||||
ORDER BY m.`name` ASC'.
|
ORDER BY m.`name` ASC'.
|
||||||
($p ? ' LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n : '');
|
($p ? ' LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n : '');
|
||||||
|
|
||||||
@@ -337,7 +338,7 @@ class ManufacturerCore extends ObjectModel
|
|||||||
'.Shop::addSqlAssociation('product', 'p').'
|
'.Shop::addSqlAssociation('product', 'p').'
|
||||||
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa
|
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa
|
||||||
ON (p.`id_product` = pa.`id_product`)
|
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
|
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
|
||||||
ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').')
|
ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').')
|
||||||
LEFT JOIN `'._DB_PREFIX_.'image` i
|
LEFT JOIN `'._DB_PREFIX_.'image` i
|
||||||
@@ -359,14 +360,15 @@ class ManufacturerCore extends ObjectModel
|
|||||||
WHERE p.`id_manufacturer` = '.(int)$id_manufacturer.'
|
WHERE p.`id_manufacturer` = '.(int)$id_manufacturer.'
|
||||||
'.($active ? ' AND product_shop.`active` = 1' : '').'
|
'.($active ? ' AND product_shop.`active` = 1' : '').'
|
||||||
'.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').'
|
'.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').'
|
||||||
AND p.`id_product` IN (
|
AND (product_attribute_shop.default_on = 1 OR product_attribute_shop.default_on IS NULL)
|
||||||
SELECT cp.`id_product`
|
AND p.`id_product` IN (
|
||||||
FROM `'._DB_PREFIX_.'category_group` cg
|
SELECT cp.`id_product`
|
||||||
LEFT JOIN `'._DB_PREFIX_.'category_product` cp
|
FROM `'._DB_PREFIX_.'category_group` cg
|
||||||
ON (cp.`id_category` = cg.`id_category`)'.
|
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' : '').'
|
($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).'
|
ORDER BY '.(($order_by == 'id_product') ? 'p.' : '').pSQL($order_by).' '.pSQL($order_way).'
|
||||||
LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n;
|
LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1827,7 +1827,7 @@ class ProductCore extends ObjectModel
|
|||||||
$sql->select('pa.id_product_attribute');
|
$sql->select('pa.id_product_attribute');
|
||||||
$sql->leftOuterJoin('product_attribute', 'pa', 'p.`id_product` = pa.`id_product`');
|
$sql->leftOuterJoin('product_attribute', 'pa', 'p.`id_product` = pa.`id_product`');
|
||||||
$sql->join(Shop::addSqlAssociation('product_attribute', 'pa', false));
|
$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);
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
||||||
|
|||||||
Reference in new issue
Block a user