- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/classes/general/mail.php
- Класс: CMailFilter
- Вызов: CMailFilter::Update
static function Update($ID, $arFields)
{
if(!CMailFilter::CheckConditionTypes($arFields))
{
return false;
}
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;
}