Skip to content
Snippets Groups Projects
index.php 3.20 KiB
<?php

use Bitrix\Main\Application;
use Bitrix\Main\EventManager;
use Bitrix\Main\IO\Directory;
use Bitrix\Main\Localization\Loc;
use Mail\Mjml\Events;
use Mail\Mjml\Module;

if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) {
    die();
}

class mail_mjml extends CModule
{
    public $MODULE_ID = Module::ID;
    public $MODULE_NAME;
    public $MODULE_VERSION;
    public $MODULE_VERSION_DATE;
    public $MODULE_DESCRIPTION;
    public $PARTNER_NAME;
    public $PARTNER_URI;

    /**
     * Конструктор
     *
     * @return void
     */
    public function __construct()
    {
        $arModuleVersion = [];

        include(__DIR__ . '/version.php');

        $this->MODULE_VERSION      = $arModuleVersion['VERSION'];
        $this->MODULE_VERSION_DATE = $arModuleVersion['VERSION_DATE'];

        Loc::loadMessages(__FILE__);

        $this->MODULE_NAME        = Loc::getMessage('MODULE_NAME');
        $this->MODULE_DESCRIPTION = Loc::getMessage('MODULE_DESCRIPTION');
        $this->PARTNER_NAME       = Loc::getMessage('PARTNER_NAME');
        $this->PARTNER_URI        = Loc::getMessage('PARTNER_URI');
    }

    /**
     * Установка модуля
     *
     * @return void
     */
    function DoInstall()
    {
        RegisterModule($this->MODULE_ID);
        $this->installFiles();
        $this->registerEvents();
    }

    /**
     * Копирование файлов
     *
     * @return void
     */
    function InstallFiles()
    {
        CopyDirFiles(
            __DIR__ . '/components',
            Application::getDocumentRoot() . '/bitrix/components/',
            true,
            true
        );
        CopyDirFiles(__DIR__ . '/admin', Application::getDocumentRoot() . '/bitrix/admin');
        
        
    }

    /**
     * Регистрация событий
     * 
     * @return void
     */
    function registerEvents()
    {
        EventManager::getInstance()->registerEventHandler(
            'main',
            'OnProlog',
            $this->MODULE_ID,
            Events::class,
            'bindEvents'
        );
    }

    /**
     * Удаление файлов
     *
     * @return void
     */
    function UnInstallFiles()
    {
        $aDir = new DirectoryIterator(__DIR__ . '/components/iqdev/');
        foreach ($aDir as $oFileInfo) {
            if ($oFileInfo->isDir() && !$oFileInfo->isDot()) {
                Directory::deleteDirectory(
                    Application::getDocumentRoot() . '/bitrix/components/iqdev/' . $oFileInfo->getFilename() . '/'
                );
            }
        }
        DeleteDirFiles(__DIR__ . '/admin', Application::getDocumentRoot() . '/bitrix/admin');
    }

    /**
     * Удаление модуля
     *
     * @return void
     * @throws \Bitrix\Main\ArgumentNullException
     */
    function DoUninstall()
    {
        UnRegisterModule($this->MODULE_ID);
        $this->UnInstallFiles();
    }

    /**
     * Удаление событий
     *
     * @return void
     */
    function unRegisterEvents()
    {
        EventManager::getInstance()->unRegisterEventHandler(
            'main',
            'OnProlog',
            $this->MODULE_ID,
            Events::class,
            'bindEvents'
        );
    }
}