// Another fix for multishop and webservices
This commit is contained in:
+18
-15
@@ -1017,22 +1017,25 @@ abstract class ObjectModelCore
|
|||||||
$assoc = Shop::getAssoTable($this->def['table']);
|
$assoc = Shop::getAssoTable($this->def['table']);
|
||||||
$class_name = WebserviceRequest::$ws_current_classname;
|
$class_name = WebserviceRequest::$ws_current_classname;
|
||||||
$vars = get_class_vars($class_name);
|
$vars = get_class_vars($class_name);
|
||||||
if ($assoc !== false && $assoc['type'] !== 'fk_shop')
|
if ($assoc !== false)
|
||||||
{
|
{
|
||||||
$multi_shop_join = ' LEFT JOIN `'._DB_PREFIX_.bqSQL($this->def['table']).'_'.bqSQL($assoc['type']).'`
|
if ($assoc['type'] !== 'fk_shop')
|
||||||
AS `multi_shop_'.bqSQL($this->def['table']).'`
|
{
|
||||||
ON (main.`'.bqSQL($this->def['primary']).'` = `multi_shop_'.bqSQL($this->def['table']).'`.`'.bqSQL($this->def['primary']).'`)';
|
$multi_shop_join = ' LEFT JOIN `'._DB_PREFIX_.bqSQL($this->def['table']).'_'.bqSQL($assoc['type']).'`
|
||||||
foreach ($vars['shopIDs'] as $id_shop)
|
AS `multi_shop_'.bqSQL($this->def['table']).'`
|
||||||
$or[] = ' `multi_shop_'.bqSQL($this->def['table']).'`.id_shop = '.(int)$id_shop.' ';
|
ON (main.`'.bqSQL($this->def['primary']).'` = `multi_shop_'.bqSQL($this->def['table']).'`.`'.bqSQL($this->def['primary']).'`)';
|
||||||
$sql_filter = ' AND ('.implode('OR', $or).') '.$sql_filter;
|
foreach ($vars['shopIDs'] as $id_shop)
|
||||||
$sql_join = $multi_shop_join.' '.$sql_join;
|
$or[] = ' `multi_shop_'.bqSQL($this->def['table']).'`.id_shop = '.(int)$id_shop.' ';
|
||||||
}
|
$sql_filter = ' AND ('.implode('OR', $or).') '.$sql_filter;
|
||||||
else
|
$sql_join = $multi_shop_join.' '.$sql_join;
|
||||||
{
|
}
|
||||||
$vars = get_class_vars($class_name);
|
else
|
||||||
foreach ($vars['shopIDs'] as $id_shop)
|
{
|
||||||
$or[] = ' main.id_shop = '.(int)$id_shop.' ';
|
$vars = get_class_vars($class_name);
|
||||||
$sql_filter = ' AND ('.implode('OR', $or).') '.$sql_filter;
|
foreach ($vars['shopIDs'] as $id_shop)
|
||||||
|
$or[] = ' main.id_shop = '.(int)$id_shop.' ';
|
||||||
|
$sql_filter = ' AND ('.implode('OR', $or).') '.$sql_filter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$query = '
|
$query = '
|
||||||
SELECT DISTINCT main.`'.bqSQL($this->def['primary']).'` FROM `'._DB_PREFIX_.bqSQL($this->def['table']).'` AS main
|
SELECT DISTINCT main.`'.bqSQL($this->def['primary']).'` FROM `'._DB_PREFIX_.bqSQL($this->def['table']).'` AS main
|
||||||
|
|||||||
Reference in New Issue
Block a user