Filter

Описание

Класс Filter - конструктор для фильтров. Создает фильтры по полям таблиц в базе. Используется преимущественно в панели управления. Также отвечает за вывод фильтра по цене и характеристикам в публичной части.

Методы со знаком * содержат хуки

Методы класса

string getFilterSql() * Получает примерно такой массив.
$data = array(
'category' => '2',
'price'=>array(10,100),
'code'=> 'ABC',
'rows'=> 20,
);
string getHtmlFilter() Возвращает HTML верстку блока с фильтрами по каталогу товаров.
$filter = new Filter();
$res $filter->getHtmlFilter();
viewData($res);
string getHtmlFilterAdmin() Возвращает HTML верстку блока с фильтрами по каталогу товаров (для панели администратора).
$filter = new Filter();
$res $filter->getHtmlFilterAdmin();
viewData($res);
string getHtmlPropertyFilter() Строит HTML верстку для фильтра по характеристикам.
$_REQUEST['category_id'] = 1;
$filter = new Filter();
$res $filter->getHtmlPropertyFilter();
viewData($res);
string getHtmlPropertyFilterAdmin() Строит HTML верстку для фильтра по характеристикам в админке.
$property = array(
    
'phone' => array(
        
'type' => 'text',
        
'special' => 'like',
        
'label' => '1',
        
'value' => null,
));
$filter = new Filter($property);
$res $filter->getHtmlPropertyFilterAdmin();
viewData($res);
array getProductIdByFilter() * Возвращает id всех товаров удовлетворяющих фильтру по характеристикам.
$filter = new Filter();
$array = Array(       // массив с параметрами от фильтра
    
20 => Array(        // id характеристики
        
=> '2859'  // id значения характеристики | тип характеристики (pp - простые характеристики, mp - сложные характеристики)
));
$res $filter->getProductIdByFilter($array);
viewData($res);
array getApplyFilterList() * Возвращает список доступных характеристик выбранной категории, для дальнейшего построения блока фильтров.
$filter = new Filter();
$res $filter->getApplyFilterList();
viewData($res);
Описание методов и примеры их использования

Метод

string getFilterSql (array $data$sorterbool $insideCat true)

Параметры

  • $data: - массив параметров по фильтрам
  • $sorter: - массив содержащий поле, и направление сортировки
  • $sorter: = array('id', 'asc' );
  • по которому следует отсортировать выборку например ID и направление сортировки
  • $insideCat: - если true, то учитывать вложенные категории

Результат работы метода можно изменить хуком: Filter_getFilterSql

Описание

Получает примерно такой массив.
$data = array(
'category' => '2',
'price'=>array(10,100),
'code'=> 'ABC',
'rows'=> 20,
);

Метод

string getHtmlFilter (array $submit false)

Параметры

  • $submit: флаг, для вывода кнопки отправки формы.

Описание

Возвращает HTML верстку блока с фильтрами по каталогу товаров.

$filter = new Filter();
$res $filter->getHtmlFilter();
viewData($res);

Метод

string getHtmlFilterAdmin (array $submit false)

Параметры

  • $submit: флаг, для вывода кнопки отправки формы.

Описание

Возвращает HTML верстку блока с фильтрами по каталогу товаров (для панели администратора).

$filter = new Filter();
$res $filter->getHtmlFilterAdmin();
viewData($res);

Метод

string getHtmlPropertyFilter ()

Описание

Строит HTML верстку для фильтра по характеристикам.

$_REQUEST['category_id'] = 1;
$filter = new Filter();
$res $filter->getHtmlPropertyFilter();
viewData($res);

Метод

string getHtmlPropertyFilterAdmin ()

Описание

Строит HTML верстку для фильтра по характеристикам в админке.

$property = array(
    
'phone' => array(
        
'type' => 'text',
        
'special' => 'like',
        
'label' => '1',
        
'value' => null,
));
$filter = new Filter($property);
$res $filter->getHtmlPropertyFilterAdmin();
viewData($res);

Метод

array getProductIdByFilter (array $properties)

Параметры

  • $properties: массив с ключами переданных массивов с характеристиками

Результат работы метода можно изменить хуком: Filter_getProductIdByFilter

Описание

Возвращает id всех товаров удовлетворяющих фильтру по характеристикам.

$filter = new Filter();
$array = Array(       // массив с параметрами от фильтра
    
20 => Array(        // id характеристики
        
=> '2859'  // id значения характеристики | тип характеристики (pp - простые характеристики, mp - сложные характеристики)
));
$res $filter->getProductIdByFilter($array);
viewData($res);

Метод

array getApplyFilterList ()

Результат работы метода можно изменить хуком: Filter_getApplyFilterList

Описание

Возвращает список доступных характеристик выбранной категории, для дальнейшего построения блока фильтров.

$filter = new Filter();
$res $filter->getApplyFilterList();
viewData($res);