Определение набора полей фильтра осуществляется в конструкторе модели фильтра.
Для добавления поля фильтра необходимо использовать метод addViewField.
Пример:
class AmiClean_AmiSample_FilterModelAdm extends Hyper_AmiClean_FilterModelAdm{
public function __construct(){
$this ->addViewField(
array (
'name' => 'nickname' ,
'type' => 'input' ,
'flt_type' => 'text' ,
'flt_default' => '' ,
'flt_condition' => 'like' ,
'flt_column' => 'nickname'
)
);
$this ->addViewField(
array (
'name' => 'datefrom' ,
'type' => 'datefrom' ,
'flt_type' => 'date' ,
'flt_default' => AMI_Lib_Date::formatUnixTime(AMI_Lib_Date::UTIME_MIN),
'flt_condition' => '>=' ,
'flt_column' => 'birth'
)
);
$this ->addViewField(
array (
'name' => 'dateto' ,
'type' => 'dateto' ,
'flt_type' => 'date' ,
'flt_default' => AMI_Lib_Date::formatUnixTime(AMI_Lib_Date::UTIME_MAX),
'flt_condition' => '<' ,
'flt_column' => 'birth'
)
);
}
}
|
Параметром метода является
ассоциативный массив. В зависимости от типа добавляемого поля,
необходимо указывать различные элементы в массиве.
Общие параметры:
Ключ | Значение | Комментарий |
name | Строка | Название поля |
type | input, checkbox, datetime, date, select, radio, hidden | Тип поля |
flt_type | text, date, select | Тип обработки поля |
value | Строка | Текущее значение |
flt_default | Строка | Значение по умолчанию |
flt_condition | like, =, >, <, >=, <= | Условие фильтрации: |
flt_column | Строка | Название поля модели, по которому идет фильтрация |
html | Строка | HTML код элемента управления |
Порядок
элементов фильтра задается при помощи формирования позиций элементов,
аналогично заданию порядка столбцов в табличном списке.
class AmiClean_AmiSample_FilterViewAdm extends Hyper_AmiClean_FilterViewAdm{
protected $aPlaceholders = array (
'#filter' ,
'nickname' , 'datefrom' , 'dateto' ,
'filter'
);
}
|
Для создания собственного элемента управления, необходимо передать значение html в массиве параметров.
Пример:
$this ->addField( array ( 'name' => 'my_ctrl' , 'html' => $ctrlHtml ));
|
Заголовки
Заголовки полей описываются в файле языковых переменных фильтра _local/_admin/templates/lang/60/{$modId}_filter.lng
Имена переменных должны соответствовать формату "filter_field_имяПоля" либо "caption_имяПоля"
Например:
%%caption_nickname%en%%
Nickname
%%caption_nickname%ru%%
Имя
%%filter_field_dateto%en%%
To:
%%filter_field_dateto%ru%%
По дату:
|