function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); if(is_set($arFields, "ACTIVE") && $arFields["ACTIVE"]!="Y") $arFields["ACTIVE"]="N"; if(is_set($arFields, "WHEN_MAIL_RECEIVED") && $arFields["WHEN_MAIL_RECEIVED"]!="Y") $arFields["WHEN_MAIL_RECEIVED"] = "N"; if(is_set($arFields, "WHEN_MANUALLY_RUN") && $arFields["WHEN_MANUALLY_RUN"]!="Y") $arFields["WHEN_MANUALLY_RUN"] = "N"; if(is_set($arFields, "ACTION_READ") && $arFields["ACTION_READ"]!="Y" && $arFields["ACTION_READ"]!="N") $arFields["ACTION_READ"] = "-"; if(is_set($arFields, "ACTION_SPAM") && $arFields["ACTION_SPAM"]!="Y" && $arFields["ACTION_SPAM"]!="N") $arFields["ACTION_SPAM"] = "-"; if(is_set($arFields, "ACTION_DELETE_MESSAGE") && $arFields["ACTION_DELETE_MESSAGE"]!="Y") $arFields["ACTION_DELETE_MESSAGE"] ="N"; if(is_set($arFields, "ACTION_STOP_EXEC") && $arFields["ACTION_STOP_EXEC"]!="Y") $arFields["ACTION_STOP_EXEC"] = "N"; if(!CMailFilter::CheckFields($arFields, $ID)) return false; $arUpdateBinds = array(); $strUpdate = $DB->PrepareUpdateBind("b_mail_filter", $arFields,"", false, $arUpdateBinds); $strSql = "UPDATE b_mail_filter SET ". $strUpdate." ". "WHERE ID=".$ID; $arBinds = array(); foreach($arUpdateBinds as $field_id) $arBinds[$field_id] = $arFields[$field_id]; $DB->QueryBind($strSql, $arBinds); if(is_set($arFields, "CONDITIONS")) CMailFilterCondition::SetConditions($ID, $arFields["CONDITIONS"]); CMailbox::SMTPReload(); return true; }