Виды сортировки

В модуле используются и зарезервированы следующие виды сортировки:

$sorting = Core_Array::getGet('sorting', 0, 'int');
  • ?sorting=1 - Цена по возврастанию (absolute_price ASC)

  • ?sorting=2 - Цена по убыванию (absolute_price DESC)

  • ?sorting=3 - Название товара по возврастанию (shop_items.name ASC)

  • ?sorting=4 - Название товара по убыванию (shop_items.name DESC)

  • ?sorting=5 - Дата создания товара по возврастанию (shop_items.datetime ASC)

  • ?sorting=6 - Дата создания товара по убыванию (shop_items.datetime DESC)

  • ?sorting=7 - Просмотры товара по возврастанию (shop_items.showed ASC)

  • ?sorting=8 - Просмотры товара по убыванию (shop_items.showed DESC)

Добавение своих сортировок через ->orderBy()

// !!!! Сортировка всегда идет после setFilterConditions !!!!
// по умолчанию ASC, стирает все предыдущие сортировки
// по наличию основного товара да = 0|нет = 1
$Shop_Controller_Show->orderBy('in_stock');

// по наличию основного товара и его модификаций да = 0|нет = 1
$Shop_Controller_Show->orderBy('in_stock_modification');

// по цене
$Shop_Controller_Show->orderBy('price'); // или absolute_price

// по доп. свойству
$Shop_Controller_Show->orderBy('property_123');

// НЕ стирает все предыдущие сортировки ->noClearOrderBy(), по умол. FALSE
// будет сортировка in_stock + sorting + shop_items.name
$Shop_Controller_Show
    ->orderBy('in_stock') // первая сортировка по умочланию очищает пред. сортировки
    ->noClearOrderBy(TRUE) // выкл. очистку последующих сортировок
    ->orderBy('sorting', 'ASC')
    ->orderBy('shop_items.name', 'ASC')
    ->noClearOrderBy(FALSE); // снова вкл. очистку послед. сортировок
    

Last updated