Skip to content

Latest commit

 

History

History
52 lines (44 loc) · 3.08 KB

quick_start.md

File metadata and controls

52 lines (44 loc) · 3.08 KB

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

Рассмотрим пример созданим модуля FAQ разработчика OkayCMS. Все действия в этом гайде (если инного не указанно) выполняются в директории Okay/Modules/OkayCMS/FAQ (и в namespace Okay\Modules\OkayCMS\FAQ).

Инициализация модуля

Для начала нужно создать класс Init\Init, в котором нужно описать установку и инициализацию модуля. В методе install() выполняем миграцию таблицы для модуля. и прочие первоначальные настройки. Подробнее о классе Init.

public function install()
{
    $this->setBackendMainController('FAQsAdmin');
    $this->migrateEntityTable(FAQEntity::class, [
        (new EntityField('id'))->setIndexPrimaryKey()->setTypeInt(11, false)->setAutoIncrement(),
        (new EntityField('question'))->setTypeText()->setIsLang(),
        (new EntityField('answer'))->setTypeText()->setIsLang()->setNullable(),
        (new EntityField('visible'))->setTypeTinyInt(1),
        (new EntityField('position'))->setTypeInt(11),
    ]);
}
  • В методе init() выполняем настройку работы модуля.
  • Регистрируем бек-контроллеры, и указываем их разрешения для менеджера.
public function init()
{
    $this->registerBackendController('FAQsAdmin');
    $this->addBackendControllerPermission('FAQsAdmin', 'okaycms__faq__faq');

    $this->registerBackendController('FAQAdmin');
    $this->addBackendControllerPermission('FAQAdmin', 'okaycms__faq__faq');

    $this->extendUpdateObject('OkayCMS.FAQ.FAQEntity', 'okaycms__faq__faq', FAQEntity::class);

    $this->extendBackendMenu('left_faq_title', [
        'left_faq_title' => ['FAQsAdmin', 'FAQAdmin'],
    ]);
}