Skip to content

lacodda/BxFrame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BxFrame

Bitrix Module

API для сборки кастомных админок в Битриксе

Документация по модулю доступна по адресу http://api.digitalwand.ru/admin_helper/. Её же можно прочитать в комментариях в коде модуля.

Простой рабочий пример реализован отдельным модулем lacodda.bxmodule-demo

Концепция

Данный модуль реализует подход MVC для создания административного интерфейса.

Возможность построения административного интерфейса появляется благодаря наличию единого API для CRUD-операциями над сущностями. Поэтому построение админ. интерфейса средствами данного модуля возможно только для классов, реализующих API ORM Битрикс. При желании использовать данный модуль для сущностей, не использующих ORM Битрикс, можно подготовить для таких сущностей класс-обёртку, реализующий необходимые функции.

Основные понятия модуля:

  • Модель: "model" в терминах MVC. Класс, унаследованный от DataManager или реализующий аналогичный API.
  • Хэлпер: "view" в терминах MVC. Класс, реализующий отрисовку интерфейса списка или детальной страницы.
  • Роутер: "controller" в терминах MVC. Файл, принимающий все запросы к админке данного модуля, создающий нужные хэлперы с нужными настройками. С ним напрямую работать не придётся.
  • Виджеты: "delegate" в терминах MVC. Классы, отвечающие за отрисовку элементов управления для отдельных полей сущностей. В списке и на детальной.

Схема работы с модулем следующая:

  • Реализация класса AdminListHelper - для управления страницей списка элементов
  • Реализация класса AdminEditHelper - для управления страницей просмотра/редактирования элемента
  • Создание файла Interface.php с вызовом AdminBaseHelper::setInterfaceSettings(), в которую передается конфигурация полей админки и классы, используемые для её построения.
  • Если не хватает возможностей виджетов, идущих с модулем, можно реализовать свой виджет, унаследованный от любого другого готового виджета или от абстрактного класса HelperWidget

Рекомендуемая файловая структура для модулей, использующих данный функционал:

  • Каталог admin. Достаточно поместить в него файл menu.php, отдельные файлы для списка и детальной создавать не надо благодаря единому роутингу.
  • Каталог classes (или lib): содержит классы модели, представлений и делегатов.
  • -- classes/helper: каталог, содержащий классы "view", унаследованные от AdminListHelper и AdminEditHelper.
  • -- classes/widget: каталог, содержащий виджеты ("delegate"), если для модуля пришлось создавать свои.
  • -- classes/model: каталог с моделями, если пришлось переопределять поведение стандартных функций getList и т.д.

Использовать данную структуру не обязательно, это лишь рекомендация, основанная на успешном опыте применения модуля в ряде проектов.

Bitrix Console

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads License

Console application for administration and support projects on Bitrix CMS.

Features:

  • Continuous integration.
  • Environments settings.
  • Managing caching, modules, search system.
  • Nice API for creating agents.

Made based on Symfony Console.

Installation

composer require lacodda/bxframe

./vendor/bin/bxcli init

Documentation

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages