Базовый модуль для построения других модулей, выполняющий общие задачи и содержащий общие классы
Для управления настройками модулей могут быть полезны ниже описанные классы. Пояснения в комментариях в самом коде
\Vasoft\Core\Settings\ModuleSettings
Абстрактный класс для создания классов настроек модулей. Реализует паттерн одиночка. Построенные на нем классы можно использовать в модулях для получения значений конкретный настроек
\Vasoft\Core\Settings\Field
Абстрактный класс для создания своих классов представления различных типов данных на страницах настройки модулей
В данном модуле реализован ряд классов, которые можно использовать. Они расположены в \Vasoft\Core\Settings\Entities\Fields
\Vasoft\Core\Settings\SelectOptionsInterface
\Vasoft\Core\Settings\SelectOptions
Данная страничка формируется для настроек \Vasoft\Core\Settings\Example\ExampleModuleSettings
Можно посмотреть некоторые решения в каталоге /bitrix/modules/vasoft.core/lib/Settings/Example/. А так же конфигурировании самой страницы настроек в файле /bitrix/modules/vasoft.core/options.php
Примеры использования существующих реализаций отображения полей - на вкладке "Примеры полей"
Вспомогательные классы для обновления, установки и переноса модулей
Создает необходимые и удаляет устаревшие страницы административной части в соответствии с содержимым директории источника. Так же есть метод для удаления созданных
Регистрирует необходимые и удаляет устаревшие обработчики событий в соответствии с заданным списком. Так же есть метод для удаления созданных
Инициализирует необходимые таблицы в соответствии с заданным списком. Так же есть метод для удаления созданных
Инструмент для импорта/экспорта настроек модулей
При использовании модуля, в частности для создания классов конфигурации, данный модуль желательно подключать в include.php своего модуля. При этом во избежание ситуации, когда модуль vasoft.core удалили - необходимо подписываться на событие модуля onBeforeRemoveVasoftCore. Обработчик должен передать в качестве данных наименование модуля и идентификатор модуля. Пример обработчика (Vasoft\Core\Updater\Example\DependencyHandler):
namespace Vasoft\Core\Updater\Example; use Bitrix\Main\Event; use Bitrix\Main\EventResult; class DependencyHandler { /** * Предотвращение удаления модуля vasoft.core * @param Event $event * @return EventResult * @noinspection PhpUnusedParameterInspection * @noinspection PhpUnused */ public static function onBeforeRemoveVasoftCore(Event $event): EventResult { /** * Возвращаем наименование модуля вторым параметром * И идентификатор модуля третьим */ return new EventResult(EventResult::ERROR, 'Example module name', 'vendor.module'); } }