Просмотров: 40086
Дата последнего изменения: 09.03.2023
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
4
5
Пример класса для модуля 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 загрузка не пройдет по маске.