• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/eventmessage.php
  • Класс: CEventType
  • Вызов: CEventType::CheckFields
static function CheckFields($arFields = array(), $action = "ADD", $ID = array())
{
	/** @global CMain $APPLICATION */
	global $APPLICATION;

	$arFilter = array();
	$aMsg = array();
	//ID, LID, EVENT_NAME, NAME, DESCRIPTION, SORT
	if ($action == "ADD")
	{
		if (empty($arFields["EVENT_NAME"]))
			$aMsg[] = array("id"=>"EVENT_NAME_EMPTY", "text"=>GetMessage("EVENT_NAME_EMPTY"));

		if(!is_set($arFields, "LID") && is_set($arFields, "SITE_ID"))
			$arFields["LID"] = $arFields["SITE_ID"];
		if (is_set($arFields, "LID") && empty($arFields["LID"]))
			$aMsg[] = array("id"=>"LID_EMPTY", "text"=>GetMessage("LID_EMPTY"));

		if (empty($aMsg))
		{
			$db_res = CEventType::GetList(array("LID" => $arFields["LID"], "EVENT_NAME" => $arFields["EVENT_NAME"]));
			if ($db_res && $db_res->Fetch())
			{
				$aMsg[] = array("id"=>"EVENT_NAME_EXIST", "text"=>str_replace(
					array("#SITE_ID#", "#EVENT_NAME#"),
					array($arFields["LID"], $arFields["EVENT_NAME"]),
					GetMessage("EVENT_NAME_EXIST")));
			}
		}
	}
	elseif ($action == "UPDATE")
	{
		if (empty($ID))
		{
			$aMsg[] = array("id"=>"EVENT_ID_EMPTY", "text"=>GetMessage("EVENT_ID_EMPTY"));
		}

		if(isset($arFields["EVENT_TYPE"]) && $arFields["EVENT_TYPE"] == '')
		{
			$aMsg[] = array("id"=>"EVENT_TYPE_EMPTY", "text"=>GetMessage('EVENT_TYPE_EMPTY'));
		}

		if (empty($aMsg) && is_set($arFields, "EVENT_NAME") && (is_set($arFields, "LID")))
		{
			if (is_set($arFields, "EVENT_NAME"))
				$arFilter["EVENT_NAME"] = $arFields["EVENT_NAME"];
			if (is_set($arFields, "LID"))
				$arFilter["LID"] = $arFields["LID"];

			if (!empty($arFilter) && (count($arFilter) < 2) && is_set($arFilter, "LID"))
			{
				unset($arFields["LID"]);
			}
			else
			{
				$db_res = CEventType::GetList($arFilter);

				if ($db_res && ($res = $db_res->Fetch()))
				{
					if ((is_set($ID, "EVENT_NAME") && is_set($ID, "LID") &&
							(($res["EVENT_NAME"] != $ID["EVENT_NAME"]) || ($res["LID"] != $ID["LID"]))) ||
							(is_set($ID, "ID") && $res["ID"] != $ID["ID"]) ||
							(is_set($ID, "EVENT_NAME") && ($res["EVENT_NAME"] != $ID["EVENT_NAME"])))
					{
						$aMsg[] = array("id"=>"EVENT_NAME_EXIST", "text"=>str_replace(
							array("#SITE_ID#", "#EVENT_NAME#"),
							array($arFields["LID"], $arFields["EVENT_NAME"]),
							GetMessage("EVENT_NAME_EXIST")));
					}
				}
			}
		}
	}
	else
	{
		$aMsg[] = array("id"=>"ACTION_EMPTY", "text"=>GetMessage("ACTION_EMPTY"));
	}

	if(!empty($aMsg))
	{
		$e = new CAdminException($aMsg);
		$APPLICATION->ThrowException($e);
		return false;
	}
	return true;
}