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

Системные компоненты

Рассмотрим работу с компонентами main.ui.grid (классы Bitrix\Main\Grid) и main.ui.filter (классы Bitrix\Main\UI\Filter).

КомпонентОписание
main.ui.gridВыводит информацию в табличной форме.
main.ui.filterВыводит фильтр + поиск О том, как выглядит работа с фильтром можно посмотреть в уроке Фильтр (новый интерфейс) в курсе
Контент-менеджер.
.

Компоненты являются системными и в визуальном редакторе не отображаются. В физической структуре сайта их можно найти в папке \bitrix\components\bitrix\[название_компонента]

Связка компонентов

Компоненты могут работать в связке, что позволяет вывести информацию в виде таблицы с возможностью фильтрации и поиска.

Для связи фильтра и таблицы необходимо передать данные из фильтра в грид. Общая схема выглядит так:
// Подключаем фильтр.
$APPLICATION->includeComponent(
    "bitrix:main.ui.filter",
    "",
    [
        "FILTER_ID" => "DEMO_FILTER",
        "GRID_ID" => "DEMO_GRID",
        // ...
    ]
);

// Получаем данные для фильтрации.
$filterOptions = new \Bitrix\Main\UI\Filter\Options("DEMO_FILTER");
$filterFields = $filterOptions->getFilter();

// Конвертируем то, что вернул фильтр в формат пригодный для выборки данных.
// (формат зависит от того, как и с помощью чего планируется выбирать данные)
$filter = [];
foreach ($filterFields as $key => $value)
{
    // ...
}

// Получаем данные на основе сконвертированного фильтра.
$data = \AnyClass::getList(..., $filter);

// Конвертируем данные в формат пригодный для грида
$rows = [];
foreach ($data as $key => $value)
{
    // ...
}

// Подключаем грид и передаем ему данные
$APPLICATION->includeComponent(
    "bitrix:main.ui.grid",
    "",
    [
        "GRID_ID" => "DEMO_GRID",
        "ROWS" => $rows,
        // ...
    ]
);

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх