Exemplo n.º 1
0
 $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"]));