Гриды и списки: Bitrix Framework 9.0 Вадим Думбравану Руководитель проектов
Гриды Гриды – набор компонентов ядра для создания унифицированного интерфейса.
Гриды Инструмент разработчика (не пользовательские компоненты). Могут работать с абстрактными данными (нет привязки только к инфоблокам и т.п.) Помогают использовать типовой функционал для работы со списками и формами. Предоставляют широкие возможности кастомизации для пользователя. Общая схема использования Вы создаете компонент, который выбирает/сортирует/фильтрует данные; Выбранные данные в шаблоне компонента передаются для отображения в компонент грида или компонент формы. Если необходимо, отображаете панель кнопок через компонент тулбара.
main.interface.toolbar Простой компонент для отображения кнопок. //$arParams["BUTTONS"] = array( //array("NEWBAR"=>true), //array("SEPARATOR"=>true), //array("HTML"=>""), //array("TEXT", "ICON", "TITLE", "LINK", "LINK_PARAM"), //array("TEXT", "ICON", "TITLE", "MENU"=>array(array("SEPARATOR"=>true, "ICONCLASS", "TEXT", "TITLE", "ONCLICK"),...)), //... //) $APPLICATION->IncludeComponent( "bitrix:main.interface.toolbar", "", array( "BUTTONS"=>$arToolbar, ), $component, array("HIDE_ICONS" => "Y") );
main.interface.grid Многофункциональный компонент для отображения списков. Сортировка элементов списка. Меню действий над элементом списка. Групповое инлайн-редактирование в списке. Групповые действия над строками. Строка состояния. Постраничная навигация. Фильтр (поиск) по элементам списка. Настройка колонок списка. Драг-н-дроп колонок списка. Настройка представлений списка. Цветовые схемы, современный внешний вид. Сохраненные фильтры. Работа в режиме AJAX.
main.interface.grid Редактирование без перегрузки страницы (даже без AJAX). Типизированные колонки (строка, чекбокс, дата).
main.interface.grid Представление – сохраненная настройка колонок, сортировки, кол-ва элементов на странице, фильтра по умолчанию. Можно настроить несколько представлений – выбранное представление сохраняется.
main.interface.grid
Типизированные условия поиска (текст, список, дата, кастомный тип). Кастомизируемый фильтр. Сохраненные фильтры (могут быть использованы в представлении списка)
main.interface.grid $APPLICATION->IncludeComponent( "bitrix:main.interface.grid", "", array( "GRID_ID"=>$arResult["GRID_ID"], "HEADERS"=>$arResult["ELEMENTS_HEADERS"], "ROWS"=>$arResult["ELEMENTS_ROWS"], "ACTIONS"=>$arActions, "NAV_OBJECT"=>$arResult["NAV_OBJECT"], "SORT"=>$arResult["SORT"], "FILTER"=>$arResult["FILTER"], "FOOTER" => array( array("title" => GetMessage("CT_BLL_SELECTED"), "value" => $arResult["NAV_OBJECT"]->SelectedRowsCount()) ), "AJAX_MODE" => "Y", ), $component, array("HIDE_ICONS" => "Y") );
main.interface.grid $grid_options = new CGridOptions($arResult["GRID_ID"]); $grid_columns = $grid_options->GetVisibleColumns(); $grid_sort = $grid_options->GetSorting(array("sort"=>array("name"=>"asc"))); Специальный класс CGridOptions для получения информации о настройке списка Вызывается перед построением данных, чтобы узнать сортировки, фильтры, колонки.
main.interface.form Компонент для отображения формы редактирования. Типизированные поля (текст, дата, список и т.д.). Поля группируются во вкладки. В ближайших планах - кастомизация вкладок и полей.
main.interface.form $APPLICATION->IncludeComponent( "bitrix:main.interface.form", "", array( "FORM_ID"=>$arResult["FORM_ID"], "TABS"=>array( array("id"=>"tab1", "name"=>GetMessage("CT_BLLE_TAB_EDIT"), "title"=>GetMessage("CT_BLLE_TAB_EDIT_TITLE"), "icon"=>"", "fields"=>array( array("id"=>"NAME", "name"=>GetMessage("CT_BLLE_FIELD_NAME"), "required"=>true), )), array("id"=>"tab2", "name"=>GetMessage("CT_BLLE_TAB_MESSAGES"), "title"=>GetMessage("CT_BLLE_TAB_MESSAGES_TITLE"), "icon"=>"", "fields"=>array( array("id"=>"ELEMENTS_NAME", "name"=>GetMessage("CT_BLLE_FIELD_ELEMENTS_NAME")), )), ), "BUTTONS"=>array("back_url"=>$arResult["~LISTS_URL"], "custom_html"=>""), "DATA"=>$arResult["FORM_DATA"], ), $component, array("HIDE_ICONS" => "Y") );
Модуль универсальных списков Списки – надстройка над инфоблоками в виде публичного комплексного компонента. Реализованы на компонентах гридов.
Модуль универсальных списков Компонент работает с указанным типом инфоблоков. В настройке модуля указывается, кто имеет право создавать новые списки. Все созданные списки – это инфоблоки одного типа, выводятся на одной странице. В планах – списки в рабочих группах и личных профилях.
Модуль универсальных списков У списка настраиваются подписи. Устанавливаются права доступа к элементам списка для групп пользователей. Настраиваются поля списка: как стандартные поля инфоблока, так и свойства. Обязательность поля. Множественные значения полей. Значения по умолчанию. Используются разделы инфоблока.
Модуль универсальных списков Используются стандартные возможности гридов: форма редактирования элемента, фильтры, сортировки, групповое редактирование/удаление, постраничная навигация.
Модуль универсальных списков Списки поддерживают бизнес-процессы! (включаются в свойствах инфоблока в админке)
Спасибо за внимание! Вопросы?