BIK.REST Help

Подмодули

В данном руководстве описывается процесс создания подмодулей. Подмодули позволяют расширять функциональность основного модуля и обеспечивают более модульную архитектуру.

Структура директорий

Все подмодули должны размещаться в директории: /local/bik.rest/modules/

Создание подмодуля

  1. Создать директорию /local/bik.rest/modules/.

  2. Создать новый PHP-файл с именем, отражающим назначение вашего подмодуля (например, CustomModule.php).

  3. CustomModule.php должен содержать класс, который наследуется от абстрактного класса AbstractModule и определяет его абстрактные методы такие как setTitle, setIcon, setTabs, setOptions.

  4. Создайте свой первый подмодуль, основываясь на приведенном ниже примере.

  5. Созданный подмодуль можно посмотреть в Настройки -> Настройки модулей -> BIK.REST -> Модули

Пример подмодуля

<?php namespace BIK\Rest\Modules; use BIK\Rest\Admin\Core\IconCollection; use BIK\Rest\Admin\Core\PageOption; use BIK\Rest\Admin\Core\PageOptionList; use BIK\Rest\Admin\Core\PageTabList; class CustomModule extends AbstractModule { /* * Уникальный идентификатор */ public static function setID(): string { return 'custom_module'; } /* * Описание модуля */ public static function setDescription(): string { return 'Описание модуля'; } /* * Заголовок страницы и пункта меню */ public static function setTitle(): string { return 'Интеграция Custom Module'; } /* * Иконка пункта меню * * Функция должна возвращать css класс иконки; если иконка не требуется, можно вернуть пустую строку * Класс IconCollection включает в себя набор css классов стандартных иконок, которые используются в Bitrix */ protected static function setIcon(): string { return IconCollection::CLOUDS_MENU_ICON; } /* * Вкладки * * Функция должна возвращать объект PageTabList * Для добавления вкладки необходимо создать объект класса PageTabList и вызвать метод add, передав в качестве аргумента ID вкладки и её заголовок */ protected static function setTabs(): PageTabList { $list = new PageTabList(); $list ->add("base", "Основное"); return $list; } /* * Список конфигураций * * Каждая вкладка может содержат список своих конфигураций * Функция должна возвращать объект PageOptionList * * Для добавления конфигурации необходимо создать объект класса PageOptionList и вызвать метод add * Метод add принимает в качестве первого аргумента ID таба, указанный ранее в методе setTabs, и вторым аргументом - объект класса PageOption * * Объект PageOption * setTitle - задает заголовок конфигурации, обязательный метод * setInputType - задает тип поля, можно использовать PageOption::INPUT, PageOption::SELECT, PageOption::TEXTAREA, обязательный метод * setName - задает уникальный идентификатор, обязательный метод * setHint - задает подсказку, необязательный метод * setDefaultValue - задает значение по умолчанию, необязательный метод * setSelectOptions - задает список option для типа select(PageOption::SELECT), обязательный метод * * К значениям созданных конфигураций можно получить доступ так: \Bitrix\Main\Config\Option::get('bik.rest', 'уникальный идентификатор из setName'); */ protected static function setOptions(): PageOptionList { $optionList = new PageOptionList(); return $optionList ->add("base", (new PageOption()) ->setTitle('Хост') ->setInputType(PageOption::INPUT) ->setName('cs_host') ) ->add("base", (new PageOption()) ->setTitle('Логин') ->setInputType(PageOption::INPUT) ->setName('cs_login') ) ->add("base", (new PageOption()) ->setTitle('Пароль') ->setInputType(PageOption::INPUT) ->setName('cs_password') ) ->add("base", (new PageOption()) ->setTitle('Создавать лиды на основе инфоблока "Формы обратной связи"') ->setInputType(PageOption::INPUT) ->setName('cs_enable_from_feedback') ->setDefaultValue(0) ->setSelectOptions([ 0 => 'Нет', 1 => 'Да', ]) ) ->add("base", (new PageOption()) ->setTitle('Свойство для размещения названия отправляемой формы') ->setInputType(PageOption::INPUT) ->setName('cs_lead_from_uf_form_name') ) ->add("base", (new PageOption()) ->setTitle('Свойство для размещения кода Ройстат') ->setInputType(PageOption::INPUT) ->setDefaultValue('UF_CRM_XXXXXXXXX') ->setName('cs_lead_uf_roistat') ); } }
Last modified: 19 июня 2025