Документация для разработчиков
Темная тема

Класс CAdminFilter

Описание и методы

CAdminFilter - класс для работы с фильтром списка результатов на странице панели управления.

Методы для работы с фильтром

Метод Описание С версии
CAdminFilter Конструктор класса.
Begin Вывод шапки фильтра.
Buttons Вывод кнопок фильтра.
End Завершение вывода фильтра.

Пример работы с фильтром

Предварительная работа с фильтром осуществляется следующим образом:

// опишем элементы фильтра
$FilterArr = Array(
	"find_id",
	"find_lid",
	"find_active",
	"find_visible",
	"find_auto",
	);

// инициализируем фильтр
$lAdmin->InitFilter($FilterArr);

// если все значения фильтра корректны, обработаем его
{
	// создадим массив фильтрации для выборки CRubric::GetList() на основе значений фильтра
	$arFilter = Array(
		"ID"		=> $find_id,
		"LID"		=> $find_lid,
		"ACTIVE"	=> $find_active,
		"VISIBLE"	=> $find_visible,
		"AUTO"		=> $find_auto,
	);
}

// далее, полученный массив передаем в CRubric::GetList()

Для вывода фильтра требуется сперва создать экземпляр класса CAdminFilter, передав ему список полей, а затем сформировать форму фильтра "вручную".

// создадим объект фильтра
$oFilter = new CAdminFilter(
$sTableID."_filter",
	array(
		'find_id' => 'ID',
		'find_lid' => Loc::getMessage("rub_f_site"),
		'find_active' => Loc::getMessage("rub_f_active"),
		'find_visible' => Loc::getMessage("rub_f_public"),
		'find_auto' => Loc::getMessage("rub_f_auto"),
	)
);

<form name="find_form" method="get" action="<?echo $APPLICATION->GetCurPage();?>">
<?php
$oFilter->Begin();
<tr>
	<td><?="ID"?>:</td>
	<td>
		<input type="text" name="find_id" size="47" value="<?echo htmlspecialchars($find_id)?>">
	</td>
</tr>
<tr>
	<td><?=Loc::getMessage("rub_f_site").":"?></td>
	<td><input type="text" name="find_lid" size="47" value="<?echo htmlspecialchars($find_lid)?>"></td>
</tr>
<tr>
	<td><?=Loc::getMessage("rub_f_active")?>:</td>
	<td>
		<?php
		$arr = array(
			"reference" => array(
			Loc::getMessage("POST_YES"),
			Loc::getMessage("POST_NO"),
		),
		"reference_id" => array(
			"Y",
			"N",
		)
	);
	echo SelectBoxFromArray("find_active", $arr, $find_active, Loc::getMessage("POST_ALL"), "");
	</td>
</tr>
<tr>
	<td><?=Loc::getMessage("rub_f_public")?>:</td>
	<td><?echo SelectBoxFromArray("find_visible", $arr, $find_visible, Loc::getMessage("POST_ALL"), "");?></td>
</tr>
<tr>
	<td><?=Loc::getMessage("rub_f_auto")?>:</td>
	<td><?echo SelectBoxFromArray("find_auto", $arr, $find_auto, Loc::getMessage("POST_ALL"), "");?></td>
</tr>
<?php
$oFilter->Buttons(array("table_id"=>$sTableID,"url"=>$APPLICATION->GetCurPage(),"form"=>"find_form"));
$oFilter->End();
</form>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024