Если кому-то требуется фильтрация и сортировка ярлыков, можно воспользоваться следующим решением.
Перед вызовом ShowShop вставляем следующий код:
if (!array_key_exists("sql_from", $param))
{ $param['sql_from'] = ""; }
$param['sql_from'] .= 'LEFT JOIN shop_items_catalog_table AS t1 ON shop_items_catalog_table.shop_items_catalog_shortcut_id = t1.shop_items_catalog_item_id OR shop_items_catalog_table.shop_items_catalog_item_id = t1.shop_items_catalog_item_id';
После этого надо указать, что сортировка/фильтрация идет по полям таблицы t1.
1. Указываем поле для фильтрации по производителям.
Меняем
$element['name'] = 'shop_producers_list_id';
на
$element['name'] = 't1.shop_producers_list_id';
2. Указываем поле сортировки по наименованию
Меняем
$param['items_field_order'] = 'shop_items_catalog_name';
на
$param['items_field_order'] = 't1.shop_items_catalog_name';
3. Указываем поле сортировки по цене.
Меняем
$query_currency_switch = 'shop_items_catalog_price';
// Цикл по валютам магазина
while ($currency_row = mysql_fetch_assoc($currency_result))
{
// Получаем коэффициент пересчета для каждой валюты
$currency_coefficient = $shop->GetCurrencyCoefficientToShopCurrency($currency_row['shop_currency_id'], $shop_row['shop_currency_id']);
$query_currency_switch = "IF (shop_items_catalog_table.shop_currency_id = {$currency_row['shop_currency_id']}, shop_items_catalog_table.shop_items_catalog_price * $currency_coefficient, $query_currency_switch)";
}
на
$query_currency_switch = 't1.shop_items_catalog_price';
// Цикл по валютам магазина
while ($currency_row = mysql_fetch_assoc($currency_result))
{
// Получаем коэффициент пересчета для каждой валюты
$currency_coefficient = $shop->GetCurrencyCoefficientToShopCurrency($currency_row['shop_currency_id'], $shop_row['shop_currency_id']);
$query_currency_switch = "IF (t1.shop_currency_id = {$currency_row['shop_currency_id']}, t1.shop_items_catalog_price * $currency_coefficient, $query_currency_switch)";
}
При желании ещё можно поменять поле сортировки по оценке и поле фильтрации по продавцу.