public static function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); if ($ID <= 0) { return False; } $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CSaleAffiliate::CheckFields("UPDATE", $arFields, $ID)) { return false; } $db_events = GetModuleEvents("sale", "OnBeforeAffiliateUpdate"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } $strUpdate = $DB->PrepareUpdate("b_sale_affiliate", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) { $strUpdate = ", " . $strUpdate; } $strUpdate = $key . "=" . $value . $strUpdate; } $strSql = "UPDATE b_sale_affiliate SET " . $strUpdate . " WHERE ID = " . $ID . " "; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); unset($GLOBALS["SALE_AFFILIATE"]["SALE_AFFILIATE_CACHE_" . $ID]); $events = GetModuleEvents("sale", "OnAfterAffiliateUpdate"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }