/** * @param $id * @param $arFields * @return bool */ public static function update($id, $arFields) { /** @global CDataBase $DB */ global $DB; $id = (int) $id; foreach (GetModuleEvents("catalog", "OnBeforeDocumentUpdate", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($id, &$arFields)) === false) { return false; } } if (array_key_exists('DATE_CREATE', $arFields)) { unset($arFields['DATE_CREATE']); } if (array_key_exists('DATE_MODIFY', $arFields)) { unset($arFields['DATE_MODIFY']); } if (array_key_exists('DATE_STATUS', $arFields)) { unset($arFields['DATE_STATUS']); } if (array_key_exists('CREATED_BY', $arFields)) { unset($arFields['CREATED_BY']); } $arFields['~DATE_MODIFY'] = $DB->GetNowFunction(); if ($id <= 0 || !self::CheckFields('UPDATE', $arFields)) { return false; } $strUpdate = $DB->PrepareUpdate("b_catalog_store_docs", $arFields); if (!empty($strUpdate)) { $strSql = "update b_catalog_store_docs set " . $strUpdate . " where ID = " . $id; if (!$DB->Query($strSql, true, "File: " . __FILE__ . "<br>Line: " . __LINE__)) { return false; } if (isset($arFields["ELEMENT"])) { foreach ($arFields["ELEMENT"] as $arElement) { if (is_array($arElement)) { CCatalogStoreDocsElement::update($arElement["ID"], $arElement); } } } foreach (GetModuleEvents("catalog", "OnDocumentUpdate", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($id, $arFields)); } } return true; }