MODULE_VERSION = $arModuleVersion['VERSION']; $this->MODULE_VERSION_DATE = $arModuleVersion['VERSION_DATE']; $this->MODULE_NAME = GetMessage('BCL_MODULE_NAME'); $this->MODULE_DESCRIPTION = GetMessage('BCL_MODULE_DESCRIPTION_2'); } public function GetModuleTasks() { return [ 'bitrixcloud_deny' => [ 'LETTER' => 'D', 'BINDING' => 'module', 'OPERATIONS' => [ ] ], 'bitrixcloud_control' => [ 'LETTER' => 'W', 'BINDING' => 'module', 'OPERATIONS' => [ 'bitrixcloud_monitoring', 'bitrixcloud_backup', ] ], ]; } public function InstallDB($arParams = []) { global $DB, $APPLICATION; $connection = \Bitrix\Main\Application::getConnection(); $this->errors = false; if (!$DB->TableExists('b_bitrixcloud_option')) { $this->errors = $DB->RunSQLBatch($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/db/' . $connection->getType() . '/install.sql'); } if ($this->errors !== false) { $APPLICATION->ThrowException(implode('
', $this->errors)); return false; } $this->InstallTasks(); RegisterModule('bitrixcloud'); RegisterModuleDependences('main', 'OnAdminInformerInsertItems', 'bitrixcloud', 'CBitrixCloudBackup', 'OnAdminInformerInsertItems'); RegisterModuleDependences('mobileapp', 'OnBeforeAdminMobileMenuBuild', 'bitrixcloud', 'CBitrixCloudMobile', 'OnBeforeAdminMobileMenuBuild'); return true; } public function UnInstallDB($arParams = []) { global $DB, $APPLICATION; $connection = \Bitrix\Main\Application::getConnection(); $this->errors = false; UnRegisterModuleDependences('main', 'OnAdminInformerInsertItems', 'bitrixcloud', 'CBitrixCloudBackup', 'OnAdminInformerInsertItems'); UnRegisterModuleDependences('mobileapp', 'OnBeforeAdminMobileMenuBuild', 'bitrixcloud', 'CBitrixCloudMobile', 'OnBeforeAdminMobileMenuBuild'); if (!array_key_exists('save_tables', $arParams) || $arParams['save_tables'] != 'Y') { $this->errors = $DB->RunSQLBatch($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/db/' . $connection->getType() . '/uninstall.sql'); } UnRegisterModule('bitrixcloud'); if ($this->errors !== false) { $APPLICATION->ThrowException(implode('
', $this->errors)); return false; } return true; } public function InstallFiles($arParams = []) { CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/admin', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin', true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/gadgets', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/gadgets', true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/components', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components', true, true); CopyDirFiles($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/js', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/js', true, true); return true; } public function UnInstallFiles() { DeleteDirFiles($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/admin/', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin'); DeleteDirFilesEx('/bitrix/js/bitrixcloud/'); return true; } public function DoInstall() { global $USER, $APPLICATION, $step; if ($USER->IsAdmin()) { $step = intval($step); if ($step < 2) { $APPLICATION->IncludeAdminFile(GetMessage('BCL_INSTALL_TITLE'), $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/step1.php'); } elseif ($step == 2) { if ($this->InstallDB()) { $this->InstallFiles(); } $GLOBALS['errors'] = $this->errors; $APPLICATION->IncludeAdminFile(GetMessage('BCL_INSTALL_TITLE'), $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/step2.php'); } } } public function DoUninstall() { global $USER, $APPLICATION, $step; if ($USER->IsAdmin()) { $step = intval($step); if ($step < 2) { $APPLICATION->IncludeAdminFile(GetMessage('BCL_UNINSTALL_TITLE'), $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/unstep1.php'); } elseif ($step == 2) { $this->UnInstallDB([ 'save_tables' => $_REQUEST['save_tables'], ]); $this->UnInstallFiles(); $GLOBALS['errors'] = $this->errors; $APPLICATION->IncludeAdminFile(GetMessage('BCL_UNINSTALL_TITLE'), $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/bitrixcloud/install/unstep2.php'); } } } }