Current Path : /var/www/axolotl/data/www/nn.axolotls.ru/bitrix/modules/recyclebin/install/ |
Current File : /var/www/axolotl/data/www/nn.axolotls.ru/bitrix/modules/recyclebin/install/index.php |
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die(); } use Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); /** * Class recyclebin */ class recyclebin extends CModule { public $MODULE_ID = 'recyclebin'; public $MODULE_VERSION; public $MODULE_VERSION_DATE; public $MODULE_NAME; public $MODULE_DESCRIPTION; private $errors; /** * recyclebin constructor. */ function __construct() { $arModuleVersion = array(); include __DIR__.'/version.php'; $this->MODULE_VERSION = $arModuleVersion['VERSION']; $this->MODULE_VERSION_DATE = $arModuleVersion['VERSION_DATE']; $this->MODULE_NAME = Loc::getMessage('RECYCLEBIN_MODULE_NAME'); $this->MODULE_DESCRIPTION = Loc::getMessage('RECYCLEBIN_MODULE_DESC'); } /** * Install */ function DoInstall() { $this->InstallDB(); $this->InstallFiles(); return true; } /** * Install module into system */ function InstallDB() { global $DB, $DBType, $APPLICATION; if (!$DB->Query("SELECT 'x' FROM b_recyclebin WHERE 1=0", true)) { $dbFilePath = '/bitrix/modules/'.$this->MODULE_ID.'/install/db/'.ToLower($DBType).'/install.sql'; $errors = $DB->RunSQLBatch($_SERVER['DOCUMENT_ROOT'].$dbFilePath); if ($errors !== false) { $APPLICATION->ResetException(); $APPLICATION->ThrowException(implode('', $errors)); return false; } } $this->InstallUserFields(); RegisterModule($this->MODULE_ID); return true; } private function installUserFields() { $oUserTypeEntity = new \CUserTypeEntity(); $aUserFields = array( 'ENTITY_ID' => 'RECYCLEBIN_DISK', 'FIELD_NAME' => 'UF_RECYCLEBIN_FILES', 'USER_TYPE_ID' => 'disk_file', 'XML_ID' => 'XML_ID_RECYCLEBIN_FILES', 'SORT' => 500, 'MULTIPLE' => 'Y', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'S', 'SHOW_IN_LIST' => '', 'EDIT_IN_LIST' => '', 'IS_SEARCHABLE' => 'N' ); $oUserTypeEntity->Add($aUserFields); } /** * Compy admin files, components and images * * @param array $arParams * * @return bool */ function InstallFiles($arParams = array()) { CopyDirFiles( $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/recyclebin/install/admin', $_SERVER['DOCUMENT_ROOT'].'/bitrix/admin', true, true ); CopyDirFiles( $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/recyclebin/install/components/bitrix', $_SERVER['DOCUMENT_ROOT'].'/bitrix/components/bitrix', true, true ); CopyDirFiles( $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/recyclebin/install/images', $_SERVER['DOCUMENT_ROOT'].'/bitrix/images', true, true ); return true; } function InstallEvents() { parent::InstallEvents(); // TODO: Change the autogenerated stub } function UnInstallEvents() { parent::UnInstallEvents(); // TODO: Change the autogenerated stub } /** * Remove module from system * * @return bool */ function DoUninstall() { global $DB, $DOCUMENT_ROOT, $APPLICATION, $step; $step = intval($step); if($step < 2) { $APPLICATION->IncludeAdminFile(GetMessage("RECYCLEBIN_UNINSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/recyclebin/install/unstep1.php"); } elseif($step == 2) { $GLOBALS["CACHE_MANAGER"]->CleanAll(); $this->UnInstallDB(array( "savedata" => $_REQUEST["savedata"], )); $this->UnInstallFiles(); $this->UnInstallEvents(); $GLOBALS["errors"] = $this->errors; $APPLICATION->IncludeAdminFile(GetMessage("RECYCLEBIN_UNINSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/recyclebin/install/unstep2.php"); } } /** * Uninstall module from system * * @param array $arParams * * @return bool */ function UnInstallDB($arParams = array()) { global $DB, $DBType, $APPLICATION, $USER_FIELD_MANAGER; if(!array_key_exists("savedata", $arParams) || $arParams["savedata"] != "Y") { $dbFilePath = '/bitrix/modules/' . $this->MODULE_ID . '/install/db/' . ToLower($DBType) . '/uninstall.sql'; $errors = $DB->RunSQLBatch($_SERVER['DOCUMENT_ROOT'] . $dbFilePath); if (!empty($errors)) { $APPLICATION->ResetException(); $APPLICATION->ThrowException(implode('', $errors)); return false; } } $userFields = $USER_FIELD_MANAGER->GetUserFields('RECYCLEBIN_DISK'); $oUserTypeEntity = new \CUserTypeEntity(); $oUserTypeEntity->Delete($userFields['UF_RECYCLEBIN_FILES']['ID']); UnRegisterModule($this->MODULE_ID); $GLOBALS["CACHE_MANAGER"]->CleanAll(); return true; } /** * Remove admin files, components and images * * @return bool */ function UnInstallFiles() { $root = $_SERVER['DOCUMENT_ROOT']; DeleteDirFiles($root.'/bitrix/modules/recyclebin/install/admin', $root.'/bitrix/admin'); DeleteDirFiles($root.'/bitrix/modules/recyclebin/install/components', $root.'/bitrix/components/bitrix'); DeleteDirFiles($root.'/bitrix/modules/recyclebin/install/images', $root.'/bitrix/images/recyclebin'); return true; } }