定制 proklung/bitrix.module.boilerplate 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

proklung/bitrix.module.boilerplate

Composer 安装命令:

composer require proklung/bitrix.module.boilerplate

包简介

PHP boilerplate for Bitrix modules

README 文档

README

Описание

Цель: минимизация дублирования кода при написании модулей.

Возможности

Адаптер для настроек модуля

Простая обертка над Bitrix\Main\Config\Option

Готовая страница настроек модуля

Стандартная страница настроек модуля.

ModuleUtilsTrait

Общий для стандартного модуля функционал.

Файл /install/index.php:

use Bitrix\Main\Localization\Loc;
use ProklUng\Module\Boilerplate\Module;
use ProklUng\Module\Boilerplate\ModuleUtilsTrait;

Loc::loadMessages(__FILE__);

class example_module extends CModule
{
    use ModuleUtilsTrait;

    public function __construct()
    {
        $arModuleVersion = [];

        include __DIR__.'/version.php';

        if (is_array($arModuleVersion)
            &&
            array_key_exists('VERSION', $arModuleVersion)) {
            $this->MODULE_VERSION = $arModuleVersion['VERSION'];
            $this->MODULE_VERSION_DATE = $arModuleVersion['VERSION_DATE'];
        }

        $this->MODULE_FULL_NAME = 'module';
        $this->MODULE_VENDOR = 'example';
        $prefixLangCode = 'MODULE';

        $this->MODULE_NAME = Loc::getMessage($prefixLangCode.'_MODULE_NAME');
        $this->MODULE_ID = $this->MODULE_VENDOR.'.'.$this->MODULE_FULL_NAME;

        $this->MODULE_DESCRIPTION = Loc::getMessage($prefixLangCode.'_MODULE_DESCRIPTION');
        $this->MODULE_GROUP_RIGHTS = 'N';
        $this->PARTNER_NAME = Loc::getMessage($prefixLangCode.'_MODULE_PARTNER_NAME');
        $this->PARTNER_URI = Loc::getMessage($prefixLangCode.'MODULE_PARTNER_URI');

        $this->moduleManager = new Module(
            [
                'MODULE_ID' => $this->MODULE_ID,
                'VENDOR_ID' => $this->MODULE_VENDOR,
                'MODULE_VERSION' => $this->MODULE_VERSION,
                'MODULE_VERSION_DATE' => $this->MODULE_VERSION_DATE,
                'ADMIN_FORM_ID' => $this->MODULE_VENDOR.'_settings_form',
            ]
        );

        $this->moduleManager->addModuleInstance($this); // Регистрация экземпляра модуля.
        $this->options(); // Подготовка данных для генерации админки модуля
    }
  }  

Далее при необходимости можно переопределить стандартные методы модуля (типа InstallEvents()).

Module

Менеджер модулей, зарегистрированных в системе посредством этого boilerplate.

  • showOptionsForm - вывод формы настроек модуля.
  • getOptionsManager - экземпляр класса Options\ModuleManager. Настройки модуля.
  • addModuleInstance($moduleObject) - Статика. Добавить экземпляр модуля. Объект, отнаследованный от CModule.
  • getModuleInstance(string $moduleId) - Статика. Получить экземпляр класса модуля по ID.

Опции модуля

Добавляются методом addOption (и скопом - addOptions) класса Options\ModuleManager.

Меню опций модуля

В основном классе модуля должен быть отнаследован метод getSchemaTabsAdmin, описывающий массивом схему табов.

    protected function getSchemaTabsAdmin() : array
    {
        // Все возможные параметры - https://dev.1c-bitrix.ru/api_help/main/general/admin.section/rubric_edit.php
        return ['tab1' => [
            'TAB' => 'Таб 1',
            'TITLE' => 'Таб 1',
        ],
            'tab2' => [
                'TAB' => 'Таб 2',
                'TITLE' => 'Таб 2',
            ]
        ];
    }

Также должен отнаследоваться метод getSchemaOptionsAdmin, возвращающий схему связки опций модуля с табами:

    protected function getSchemaOptionsAdmin() : array
    {
        return [
            'Test_option_1' =>
                [
                    'label' => 'Тестовая опция 1',
                    'tab' => 'tab1', // На каком табе будет показываться input
                    'type' => 'text', // Тип input-а
                ],
            'Test_option_2' =>
                [
                    'label' => 'Тестовая опция 2',
                    'tab' => 'tab2', // На каком табе будет показываться input
                    'type' => 'text', // Тип input-а
                ],
        ];
    }

统计信息

  • 总下载量: 199
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 1
  • 依赖项目数: 8
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-04-18

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固