function Recover($HISTORY_ID, $ID, $IBLOCK_ID) { $this->CleanCacheById($ID, $IBLOCK_ID); $rIBlock = CIBlock::getList(array(), array('ID' => $IBLOCK_ID, 'CHECK_PERMISSIONS' => 'N')); $arIBlock = $rIBlock->GetNext(); if ($arIBlock['BIZPROC'] == 'Y' && CModule::IncludeModule('bizproc')) { $arErrorsTmp = array(); $arHistoryResult = CBPDocument::GetDocumentFromHistory($HISTORY_ID, $arErrorsTmp); $modifyComment = GetMessage('WIKI_RECOVER_COMMENT') . " " . $arHistoryResult["MODIFIED"]; if (CBPHistoryService::RecoverDocumentFromHistory($HISTORY_ID)) { if ($this->UpdateHistory($ID, $IBLOCK_ID, $modifyComment)) { return true; } else { return false; } } else { return false; } } else { return false; } }
} else { CBPHistoryService::Delete($ID, $arParams["DOCUMENT_ID"]); } break; case "recover": if ($arParams["MODULE_ID"] == "webdav" && isset($arParams["OBJECT"])) { $arParams['OBJECT']->IsDir(array('element_id' => $arParams["DOCUMENT_ID"][2])); if (($arParams["OBJECT"]->workflow == 'bizproc' || $arParams["OBJECT"]->workflow == 'bizproc_limited') && $arParams['OBJECT']->arParams['not_found'] == false) { CBPDocument::AddDocumentToHistory($arParams['DOCUMENT_ID'], $arParams['OBJECT']->arParams["element_name"], $GLOBALS["USER"]->GetID()); if (method_exists('CIBlockDocumentWebdav', 'TruncateHistory')) { CIBlockDocumentWebdav::TruncateHistory($arParams['OBJECT']->wfParams['DOCUMENT_TYPE'], $arParams["DOCUMENT_ID"][2]); } } } try { if (!CBPHistoryService::RecoverDocumentFromHistory($ID)) { $arError[] = array("id" => "not recover", "text" => GetMessage("BPADH_RECOVERY_ERROR")); } } catch (Exception $e) { $arError[] = array("id" => "not recover", "text" => $e->getMessage()); } break; } if (!empty($arError)) { $e = new CAdminException($arError); $arResult["ERROR_MESSAGE"] = $e->GetString(); } else { LocalRedirect($APPLICATION->GetCurPageParam("result=" . $arParams["ACTION"], array("action", "ID", "sessid", "result"))); } } /********************************************************************