products_collection
Позволяет формировать коллекции товаров с собственным хешем.
Доступно начиная с версии 5.1.0.
Shop-Script
Входящие параметры (передаются по ссылке)
$params['collection'] object Экземпляр класса
$params['auto_title'] bool Флаг, обозначающий необходимость применения к коллекции товаров стандартного текстового заголовка.
$params['add'] bool Флаг, обозначающий необходимость добавлять новые условия формирования коллекции при повторном (рекурсивном) вызове методов класса
shopProductsCollection для доступа к коллекции товаров.$params['auto_title'] bool Флаг, обозначающий необходимость применения к коллекции товаров стандартного текстового заголовка.
$params['add'] bool Флаг, обозначающий необходимость добавлять новые условия формирования коллекции при повторном (рекурсивном) вызове методов класса
shopProductsCollection.
… код плагина …
Результат работы плагина
$return
true, если запрошен хеш, ожидаемый данным плагином; false — во всех остальных случаях. Хеш должен представлять собой идентификатор плагина, символ косой черты (/) и дополнительные параметры. Или только идентификатор плагина — без косой черты и параметров, если они не нужны. Обе эти части — идентификатор и параметры — возвращает в виде массива метод getHash() экземпляра класса shopProductsCollection, доступного в значении ключа collection в параметре обработчика хука.Shop-Script
Пример кода плагина
PHP
public function productsCollection($params)
{
/** @var shopProductsCollection */
$collection = $params['collection'];
$hash = $collection->getHash();
// Accept only simple hash in this example; e.g., ?action=products#/products/hash=myplugin
if (is_array($hash) && count($hash) == 1 && $hash[0] == $this->id) {
//add your WHERE condition
$collection->addWhere('...');
return true;
} else {
return false;
}
/*
// Accept only complex hashes in this example; e.g., ?action=products#/products/hash=myplugin/foo
if (count($hash) == 2 && $hash[0] == 'myplugin') {
switch ($hash[1]) {
case 'foo':
$collection->addWhere('...'); //add a WHERE condition
return true;
case 'bar':
$collection->addWhere('...'); //add another WHERE condition
return true;
default:
return false;
}
}
*/
}









