10  /  36

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

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

17
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии