Набор классов ControlsManager создан для автоматической регистрации полей управления виджетом (Controls). Класс принимает объект класса Base (Base Widget) и на основе константы ALPINE_WIDGET_TYPE выбирает и регистрирует требуемые поля
Для конфигурации ControlsManager используются следующие поля:
protected string $section_id- уникальный id секцииprotected string $section_label- заголовок секции. Задается в конструкторе с переводомprotected string $tab = Controls_Manager::TAB_CONTENT- Вкладка, на которой должна выводится секция с настройками
Все зарегистрированные поля управления будут объединены в одну секцию. Если требуется разбивка на несколько секций, то требуется создать несколько классов наследующихся от ControlsManagerBase. Так сделано с классами ControlsManagerFrames и ControlsManagerFrameStyles - поля управления из этих классов находятся не только в разных секциях, но и в разных вкладках из-за того, что в ControlsManagerFrameStyles указан $tab = Controls_Manager::TAB_STYLE
Все поля управления должны быть добавлены в массив $controls в конструкторе класса. Выбор полей для регистрации зависит от константы ALPINE_WIDGET_TYPE и соответственно от характеристик виджета, но могут использоваться и другие данные, если потребуется
В классе СontrolsManager есть метод get_data, который возвращает значения всех полей управления
Controls классы
Все Controls классы, которыми управляют ControlManager'ы выполняют две функции и соответственно имеют два метода:
register_controls- регистрация полей управленияget_data- возвращение значений из этих полей
ControlsManagers
Класс, позволяющий зарегистрировать все менеджеры разом, а также получить из них все настройки с помощью метода get_data