Giter Club home page Giter Club logo

digitalwand.admin_helper's Introduction

digitalwand.admin_helper

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

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

Есть хорошая вводная статья в блоге: Генератор админок «Битрикса».

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

Концепция

Данный модуль реализует подход 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 и т.д.

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

Разработчики

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.