Exemplo n.º 1
0
 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;
     }
 }
Exemplo n.º 2
0
            } 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")));
    }
}
/********************************************************************