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

Класс 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
Наверх