[-] WS: Fix webservice sort for multishop fields #PSCFV-5634

This commit is contained in:
Rémi Gaillard
2013-06-13 12:01:51 +02:00
parent 5d6d06f8fb
commit 5bf4c17f4a
2 changed files with 13 additions and 1 deletions
+5
View File
@@ -1277,6 +1277,11 @@ abstract class ObjectModelCore
{
return Shop::isTableAssociated($this->def['table']) || !empty($this->def['multilang_shop']);
}
public function isMultiShopField($field)
{
return (isset($this->def['fields'][$field]) && isset($this->def['fields'][$field]['shop']) && $this->def['fields'][$field]['shop']);
}
public function isLangMultishop()
{
+8 -1
View File
@@ -1184,7 +1184,14 @@ class WebserviceRequestCore
$sql_sort .= 'main_i18n.`'.pSQL($this->resourceConfiguration['fields'][$fieldName]['sqlId']).'` '.$direction.', ';// ORDER BY main_i18n.`field` ASC|DESC
}
else
$sql_sort .= (isset($this->resourceConfiguration['retrieveData']['tableAlias']) ? $this->resourceConfiguration['retrieveData']['tableAlias'].'.' : '').'`'.pSQL($this->resourceConfiguration['fields'][$fieldName]['sqlId']).'` '.$direction.', ';// ORDER BY `field` ASC|DESC
{
$object = new $this->resourceConfiguration['retrieveData']['className']();
if ($object->isMultiShopField($this->resourceConfiguration['fields'][$fieldName]['sqlId']))
$table_alias = 'multi_shop_'.$this->resourceConfiguration['retrieveData']['table'];
else
$table_alias = '';
$sql_sort .= (isset($this->resourceConfiguration['retrieveData']['tableAlias']) ? '`'.bqSQL($this->resourceConfiguration['retrieveData']['tableAlias']).'`.' : '`'.bqSQL($table_alias).'`.').'`'.pSQL($this->resourceConfiguration['fields'][$fieldName]['sqlId']).'` '.$direction.', ';// ORDER BY `field` ASC|DESC
}
}
$sql_sort = rtrim($sql_sort, ', ')."\n";
}