function UnInstallDB($arParams = array()) { global $DB, $DBType, $APPLICATION; $this->errors = false; if (!array_key_exists("save_tables", $arParams) || $arParams["save_tables"] != "Y") { // remove user data CModule::IncludeModule("highloadblock"); $result = \Bitrix\Highloadblock\HighloadBlockTable::getList(); while ($hldata = $result->fetch()) { \Bitrix\Highloadblock\HighloadBlockTable::delete($hldata['ID']); } // remove hl system data $this->errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/highloadblock/install/db/" . strtolower($DB->type) . "/uninstall.sql"); } UnRegisterModule("highloadblock"); UnRegisterModuleDependences("main", "OnBeforeUserTypeAdd", "highloadblock", '\\Bitrix\\Highloadblock\\HighloadBlockTable', "OnBeforeUserTypeAdd"); UnRegisterModuleDependences("main", "OnAfterUserTypeAdd", "highloadblock", '\\Bitrix\\Highloadblock\\HighloadBlockTable', "onAfterUserTypeAdd"); UnRegisterModuleDependences("main", "OnBeforeUserTypeDelete", "highloadblock", '\\Bitrix\\Highloadblock\\HighloadBlockTable', "OnBeforeUserTypeDelete"); UnRegisterModuleDependences('main', 'OnUserTypeBuildList', 'highloadblock', 'CUserTypeHlblock', 'GetUserTypeDescription'); UnRegisterModuleDependences('iblock', 'OnIBlockPropertyBuildList', 'highloadblock', 'CIBlockPropertyDirectory', 'GetUserTypeDescription'); if ($this->errors !== false) { $APPLICATION->ThrowException(implode("<br>", $this->errors)); return false; } return true; }
public function deleteHlblock($hlblockId) { $result = HL\HighloadBlockTable::delete($hlblockId); if ($result->isSuccess()) { return true; } $this->throwException(__METHOD__, implode(', ', $result->getErrors())); }
if ($is_create_form) { // default values for create form $hlblock = array_fill_keys(array('ID', 'NAME', 'TABLE_NAME'), ''); // page title $APPLICATION->SetTitle(GetMessage('HLBLOCK_ADMIN_ENTITY_EDIT_PAGE_TITLE_NEW')); } else { $APPLICATION->SetTitle(GetMessage('HLBLOCK_ADMIN_ENTITY_EDIT_PAGE_TITLE_EDIT', array('#NAME#' => $hlblock['NAME']))); $entity = HL\HighloadBlockTable::compileEntity($hlblock); $entity_data_class = $entity->getDataClass(); $entity_table_name = $hlblock['TABLE_NAME']; $hlblock['ROWS_COUNT'] = $entity_data_class::getCount(); } $isEditMode = true; // delete action if ($is_update_form && isset($_REQUEST['action']) && $_REQUEST['action'] === 'delete' && check_bitrix_sessid()) { HL\HighloadBlockTable::delete($hlblock['ID']); LocalRedirect("highloadblock_index.php?lang=" . LANGUAGE_ID); } // save action if ((strlen($save) > 0 || strlen($apply) > 0) && $REQUEST_METHOD == "POST" && check_bitrix_sessid()) { $data = array('NAME' => trim($_REQUEST['NAME']), 'TABLE_NAME' => trim($_REQUEST['TABLE_NAME'])); if ($is_update_form) { $ID = intval($_REQUEST['ID']); $result = HL\HighloadBlockTable::update($ID, $data); } else { // create $result = HL\HighloadBlockTable::add($data); $ID = $result->getId(); } if ($result->isSuccess()) { if (strlen($save) > 0) {
/** * Delete * @param $entityName * @return bool * @throws \Exception */ public static function Delete($entityName) { $userType = new \CUserTypeEntity(); if (!strlen($entityName)) { throw new BimException('Incorrect entityName param value'); } $filter = array('NAME' => $entityName); $hlBlockDbRes = HL\HighloadBlockTable::getList(array("filter" => $filter)); if (!$hlBlockDbRes->getSelectedRowsCount()) { throw new BimException('Not found highloadBlock with entityName = ' . $entityName); } $hlBlockRow = $hlBlockDbRes->fetch(); $entity = HL\HighloadBlockTable::compileEntity($hlBlockRow); $entityDataClass = $entity->getDataClass(); $obList = $entityDataClass::getList(); if ($obList->getSelectedRowsCount() > 0) { throw new BimException('Unable to remove a highloadBlock[' . $entityName . '], because it has elements'); } # delete all Fields $obHl = $userType->GetList(array(), array("ENTITY_ID" => "HLBLOCK_" . $hlBlockRow['ID'])); while ($arHl = $obHl->Fetch()) { $obUF = new \CUserTypeEntity(); $obUF->Delete($arHl['ID']); } $delResult = HL\HighloadBlockTable::delete($hlBlockRow['ID']); if (!$delResult->isSuccess()) { throw new BimException(implode(", ", $delResult->getErrorMessages())); } return true; }