$arID = is_array($arID) ? $arID : array($arID); $ob = new CWebDavIblock($arParams['IBLOCK_ID']); foreach ($arID as $ID) { if (strlen($ID) <= 0 || empty($arResult['VERSIONS'][$ID])) { continue; } $ID = IntVal($ID); $d = CIBlockElement::GetByID($ID); if ($dr = $d->Fetch()) { if ($_REQUEST["action"] == "restore") { $DB->StartTransaction(); if (!CIBlockElement::WF_Restore($ID)) { $DB->Rollback(); } else { $options = array("element_id" => $arParams["ELEMENT_ID"]); $ob->UNLOCK($options); $DB->Commit(); } } elseif (strlen($dr["WF_PARENT_ELEMENT_ID"]) > 0) { if (CWebDavIblock::CheckRight($arResult["ELEMENT"]["PERMISSION"], "element_edit") < "W" && !($dr["WF_STATUS_ID"] > 1 && $arResult["WF_STATUSES_PERMISSION"][$dr["WF_STATUS_ID"]] >= 2)) { $DB->StartTransaction(); if (!CIBlockElement::Delete(intval($ID))) { $DB->Rollback(); } else { $DB->Commit(); } } } } } $url = isset($_REQUEST['back_url']) ? $_REQUEST['back_url'] : CComponentEngine::MakePathFromTemplate($arParams["~ELEMENT_HISTORY_URL"], array("ELEMENT_ID" => $arParams["ELEMENT_ID"]));