• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/classes/general/mail.php
  • Класс: CMailFilter
  • Вызов: CMailFilter::CheckFields
static function CheckFields($arFields, $ID=false)
{
	$err_cnt = CMailError::ErrCount();
	$arMsg = Array();

	if(is_set($arFields, "NAME") && mb_strlen($arFields["NAME"]) < 1)
	{
		CMailError::SetError("B_MAIL_ERR_NAME", GetMessage("MAIL_CL_ERR_NAME")." "".GetMessage("MAIL_CL_NAME").""");
		$arMsg[] = array("id"=>"NAME", "text"=> GetMessage("MAIL_CL_ERR_NAME")." "".GetMessage("MAIL_CL_NAME").""");
	}

	if(is_set($arFields, "PHP_CONDITION") && trim($arFields["PHP_CONDITION"]) <> '')
	{
		if (!CMailFilter::CheckPHP($arFields["PHP_CONDITION"], GetMessage("MAIL_CL_PHP_COND")))
			$arMsg[] = array("id"=>"PHP_CONDITION", "text"=> GetMessage("MAIL_CL_ERR_IN_PHP").GetMessage("MAIL_CL_PHP_COND"));
	}

	if(is_set($arFields, "ACTION_PHP") && trim($arFields["ACTION_PHP"]) <> '')
	{
		if (!CMailFilter::CheckPHP($arFields["ACTION_PHP"], GetMessage("MAIL_CL_PHP_ACT")))
			$arMsg[] = array("id"=>"ACTION_PHP", "text"=> GetMessage("MAIL_CL_ERR_IN_PHP").GetMessage("MAIL_CL_PHP_ACT"));
	}

	if(is_set($arFields, "MAILBOX_ID"))
	{
		$r = CMailBox::GetByID($arFields["MAILBOX_ID"]);
		if(!$r->Fetch())
		{
			CMailError::SetError("B_MAIL_ERR_BAD_MAILBOX", GetMessage("MAIL_CL_ERR_WRONG_MAILBOX"));
			$arMsg[] = array("id"=>"MAILBOX_ID", "text"=> GetMessage("MAIL_CL_ERR_WRONG_MAILBOX"));
		}
	}
	elseif($ID===false)
	{
		CMailError::SetError("B_MAIL_ERR_BAD_MAILBOX_NA", GetMessage("MAIL_CL_ERR_MAILBOX_NA"));
		$arMsg[] = array("id"=>"MAILBOX_ID", "text"=> GetMessage("MAIL_CL_ERR_MAILBOX_NA"));
	}

	if(!empty($arMsg))
	{
		$e = new CAdminException($arMsg);
		$GLOBALS["APPLICATION"]->ThrowException($e);
		return false;
	}
	return true;

	//return ($err_cnt == CMailError::ErrCount());
}