• Модуль: subscribe
  • Путь к файлу: ~/bitrix/modules/subscribe/classes/general/subscription.php
  • Класс: CSubscriptionGeneral
  • Вызов: CSubscriptionGeneral::CheckFields
public function CheckFields(&$arFields, $ID, $SITE_ID=SITE_ID)
{
	global $DB, $APPLICATION;

	$APPLICATION->ResetException();
	$this->LAST_ERROR = "";
	$aMsg = array();
	if($ID > 0)
	{
		$arFields["ID"] = $ID;
	}

	if ($ID > 0)
		$db_events = GetModuleEvents("subscribe", "OnStartSubscriptionUpdate", true);
	else
		$db_events = GetModuleEvents("subscribe", "OnStartSubscriptionAdd", true);

	foreach($db_events as $arEvent)
	{
		if (ExecuteModuleEventEx($arEvent, array(&$arFields, $SITE_ID)) === false)
		{
			break;
		}
	}


	if(is_set($arFields, "EMAIL"))
	{
		if($arFields["EMAIL"] == '' || !check_email($arFields["EMAIL"]))
			$aMsg[] = array("id"=>"EMAIL", "text"=>GetMessage("class_subscr_addr"));
		else
		{
			$res = $this->GetByEmail($arFields["EMAIL"], intval($arFields["USER_ID"]));
			$ar = $res->Fetch();
			if($ar && ($ar["ID"] <> intval($ID)))
				$aMsg[] = array("id"=>"EMAIL", "text"=>GetMessage("class_subscr_addr2"));
		}
	}

	if(is_set($arFields, "USER_ID"))
	{
		if(intval($arFields["USER_ID"]) > 0)
		{
			$res = $DB->Query("SELECT 'x' FROM b_user WHERE ID = ".intval($arFields["USER_ID"]), false, "File: ".__FILE__."
Line: ".__LINE__); if(!$res->Fetch()) $aMsg[] = array("id"=>"USER_ID", "text"=>GetMessage("class_subscr_user")); } } if ($ID > 0) $db_events = GetModuleEvents("subscribe", "OnBeforeSubscriptionUpdate", true); else $db_events = GetModuleEvents("subscribe", "OnBeforeSubscriptionAdd", true); foreach($db_events as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$arFields, $SITE_ID)) === false) { $err = $APPLICATION->GetException(); if ($err) { $aMsg[] = array("id"=>"", "text"=>$err->GetString()); $APPLICATION->ResetException(); } else { $aMsg[] = array("id"=>"", "text"=>"Unknown error."); } break; } } if($ID > 0) { unset($arFields["ID"]); } if(!empty($aMsg)) { $e = new CAdminException($aMsg); $APPLICATION->ThrowException($e); $this->LAST_ERROR = $e->GetString(); return false; } return true; }