denisov999, ну вообще-то я имел в виду не
denisov999 писал(а):
$element['value'] = — судамассив;
и уже тем более не
denisov999 писал(а):
взять массив с id всех товаров исключить из него нужные и передать — $param['NotIn']
, и совершенно не случайно привел в своем посте ссылку на другую тему, в которую вы, видимо, так и не заглянули. Потому как массив надо передавать не в value а в suffix, "расправленным" в строку и внутри условия IN
Вот так:
// массив с идентификаторами нужных товаров
$items = array(1, 2, 3, 4, 5, 6, 7);
// совершенно не важно, как вы его получите, просто вбив idшники хардкодом,
// или поместите их туда через методы api.
// Я так показал для простоты примера
// если $items определена, если это массив и если он не пустой
if (isset($items) && is_array($items) && sizeof($items)) {
// "раскрываем" массив в строку, через запятую
$items_string = implode(',', $items);
$element = array();
$element['type'] = 0; // фильтр по основному свойству товара
$element['prefix'] = ' and ('; // префикс
$element['name'] = 'shop_items_catalog_table.shop_items_catalog_item_id'; // полное название поля, включая название таблицы
$element['if'] = '>'; // фиктивное условие.
$element['value'] = '0'; //фиктивное условие.
// а вот тут собственно само условие, задающее вывод только нужных нам товаров!
// SQL-оператор IN с перечнем нужных идентификаторов в скобках!
$element['sufix'] = " AND shop_items_catalog_table.shop_items_catalog_item_id IN ({$items_string}) )";
$property['select'][] = $element; // ну и передаем фильтр в параметры метода ShowShop()
}
Я, кстати, не уверен в необходимости фиктивных значений при фильтрации по основному свойству, вероятно сам фильтр можно переписать и так:
$element = array();
$element['type'] = 0; // фильтр по основному свойству товара
$element['prefix'] = ' and '; // префикс
$element['name'] = 'shop_items_catalog_table.shop_items_catalog_item_id'; // полное название поля, включая название таблицы
$element['if'] = ''; // фиктивное условие.
$element['value'] = ''; //фиктивное условие.
// а вот тут собственно само условие, задающее вывод только нужных нам товаров!
// SQL-оператор IN с перечнем нужных идентификаторов в скобках!
$element['sufix'] = " IN ({$items_string}) ";
$property['select'][] = $element; // ну и передаем фильтр в параметры метода ShowShop()