products_collection
Предоставляет возможность формирования коллекций товаров для отображения в бекенде или фронтенде.
Shop-Script
Входящие параметры (передаются по ссылке)
$params array Массив параметров.
$params['collection'] shopProductsCollection Экземпляр класса для доступа к коллекции товаров.
$params['auto_title'] bool Флаг, обозначающий необходимость применения к коллекции товаров стандартного текстового заголовка.
$params['add'] bool Флаг, обозначающий необходимость добавлять новые условия формирования коллекции при повторном (рекурсивном) вызове методов класса shopProductsCollection.
$params['collection'] shopProductsCollection Экземпляр класса для доступа к коллекции товаров.
$params['auto_title'] bool Флаг, обозначающий необходимость применения к коллекции товаров стандартного текстового заголовка.
$params['add'] bool Флаг, обозначающий необходимость добавлять новые условия формирования коллекции при повторном (рекурсивном) вызове методов класса shopProductsCollection.
… код плагина …
Результат работы плагина
true, если запрошен корректный хеш, ожидаемый данным плагином; false — во всех остальных случаях. URL для формирования коллекции товаров должен иметь вид ?action=products#/products/hash=*** Значение hash в URL должен представлять собой один или два идентификатора, разделенные символом /. Идентификаторы, содержащиеся в hash, доступны в обработчике хука в виде массива, возвращаемого методом getHash() класса shopProductsCollection.
Shop-Script
Пример кода плагина
PHP
public function productsCollection($params) { $collection = $params['collection']; $hash = $collection->getHash(); if (count($hash) == 1 && $hash[0] == 'myplugin') { //accept only simple hash in this example; e.g., ?action=products#/products/hash=myplugin $collection->addWhere('...'); //add your WHERE condition return true; } else { return false; } /* if (count($hash) == 2 && $hash[0] == 'myplugin') { //accept only complex hashes in this example; e.g., ?action=products#/products/hash=myplugin/foo 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; } } */ }