Курсы

Создание класса модуля 1С-Битрикс: практический пример

Создание класса модуля 1С-Битрикс: практический пример

Пример класса для модуля alexey.mycar

Class alexey_mycar extends CModule
{
    var $MODULE_ID = "alexey.mycar";
    var $MODULE_VERSION;
    var $MODULE_VERSION_DATE;
    var $MODULE_NAME;
    var $MODULE_DESCRIPTION;
    var $MODULE_CSS;
    var $MODULE_GROUP_RIGHTS = "Y";
    function __construct()
    {
        $arModuleVersion = array();
        $path = str_replace("\\", "/", __FILE__);
        $path = substr($path, 0, strlen($path) - strlen("/index.php"));
        include($path."/version.php");
        $this->MODULE_VERSION = $arModuleVersion["VERSION"];
        $this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];
        $this->PARTNER_NAME = "Partner name";
        $this->PARTNER_URI = "http://www.1c-bitrix.ru/";
        $this->MODULE_NAME = GetMessage("MYCAR_MODULE_NAME");
        $this->MODULE_DESCRIPTION = GetMessage("MYCAR_MODULE_DESCRIPTION");
    }
    function InstallDB()
    {
        RegisterModule("alexey.mycar");
        //RegisterModuleDependences("search", "OnReindex", "alexey.mycar", "CMyCarSearch", "OnSearchReindex");
        return true;
    }
    function UnInstallDB()
    {
        //UnRegisterModuleDependences("search", "OnReindex", "alexey.mycar", "CMyCarSearch", "OnSearchReindex");
        UnRegisterModule("alexey.mycar");
        return true;
    }
    function InstallEvents()
    {
        return true;
    }
    function UnInstallEvents()
    {
        return true;
    }
    function InstallFiles()
    {
        CopyDirFiles(
            $_SERVER["DOCUMENT_ROOT"]."/local/modules/alexey.mycar/install/components/",
            $_SERVER["DOCUMENT_ROOT"]."/alexey/components",
            true, true
        );
        CopyDirFiles(
            $_SERVER["DOCUMENT_ROOT"]."/local/modules/alexey.mycar/install/admin/",
            $_SERVER["DOCUMENT_ROOT"]."/local/admin",
            true, true
        );
        CopyDirFiles(
            $_SERVER["DOCUMENT_ROOT"]."/local/modules/alexey.mycar/install/themes", 
            $_SERVER["DOCUMENT_ROOT"]."/local/themes", true, true
        );
        return true;
    }
    function UnInstallFiles()
    {
        DeleteDirFiles($_SERVER["DOCUMENT_ROOT"]."/local/modules/alexey.mycar/install/admin", $_SERVER["DOCUMENT_ROOT"]."/bitrix/admin");
        DeleteDirFiles($_SERVER["DOCUMENT_ROOT"]."/local/modules/alexey.mycar/install/themes/.default/",
                       $_SERVER["DOCUMENT_ROOT"]."/local/themes/.default");//css
        DeleteDirFilesEx("/local/themes/.default/icons/alexey.mycar/");//icons
        return true;
    }
    function DoInstall()
    {
        global $APPLICATION;
        if (!IsModuleInstalled("alexey.mycar"))
        {
            $this->InstallDB();
            $this->InstallEvents();
            $this->InstallFiles();
        }
    }
    function DoUninstall()
    {
        $this->UnInstallDB();
        $this->UnInstallEvents();
        $this->UnInstallFiles();
    }
}

Примечание: При описании модуля нужно наследоваться именно от CModule, потому что при добавлении ведущего слеша с CModule загрузка не пройдет по маске.

!Прокрутить вверх

🚀 Нужна помощь с сайтом на 1С-Битрикс или Аспро?

Я работаю удалённо по всей России и СНГ. Узнайте цены и условия для вашего города:

Все регионы →