• Модуль: 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;
}