Для создания заготовки шаблона в Битриксе для вывода таблицы из базы данных с поиском и постраничной навигацией можно использовать компоненты bitrix:main.ui.grid и bitrix:main.ui.filter.
1 Компонент bitrix:main.ui.filter предоставляет возможность создания фильтра и поиска. Важные параметры этого компонента:
FILTER_ID: Идентификатор фильтра (должен быть уникальным).
GRID_ID: Идентификатор грида, к которому применяется фильтр.
FILTER: Массив с полями для фильтрации.
DISABLE_SEARCH: Отключение полнотекстового поиска.
2 Компонент bitrix:main.ui.grid отвечает за вывод таблицы. Основные параметры:
GRID_ID: Идентификатор грида.
COLUMNS: Массив с заголовками таблицы.
ROWS: Массив со значениями таблицы.
SHOW_ROW_CHECKBOXES: Показывать названия полей или нет.
ENABLE_LIVE_SEARCH: Доступна ли live-фильтрация.
вызов компонента bitrix:main.ui.filter:
$APPLICATION->IncludeComponent('bitrix:main.ui.filter', '', [
'FILTER_ID' => 'report_list',
'GRID_ID' => 'report_list',
'FILTER' => [
['id' => 'DATE', 'name' => 'Дата', 'type' => 'date'],
['id' => 'IS_SPEND', ...]
]
]);
вызов компонента bitrix:main.ui.grid:
$grid_options = new Bitrix\Main\Grid\Options('report_list');
$sort = $grid_options->GetSorting(['sort' => ['ID' => 'DESC'], 'vars' => ['by' => 'by', 'order' => 'order']]);
$nav_params = $grid_options->GetNavParams();
$nav = new Bitrix\Main\UI\PageNavigation('report_list');
Чтобы передать данные из фильтра в таблицу, необходимо собрать фильтр:
$filter = [];
$filterOption = ...