• Модуль: vote
  • Путь к файлу: ~/bitrix/modules/vote/classes/general/channel.php
  • Класс: CAllVoteChannel
  • Вызов: CAllVoteChannel::CheckFields
static function CheckFields($ACTION, &$arFields, $ID = 0)
{
	global $DB, $APPLICATION;
	$aMsg = array();
	$ID = intval($ID);

	foreach(array("TITLE", "SYMBOLIC_NAME") as $key)
	{
		if (is_set($arFields, $key) || $ACTION == "ADD")
		{
			$arFields[$key] = trim($arFields[$key]);
			if (empty($arFields[$key]))
				$aMsg[] = array(
					"id" => $key,
					"text" => GetMessage("VOTE_FORGOT_".$key));
//				GetMessage("VOTE_FORGOT_SYMBOLIC_NAME");
//				GetMessage("VOTE_FORGOT_TITLE");
		}
	}
	if (is_set($arFields, "SITE") || $ACTION == "ADD")
	{
		if (!(is_array($arFields["SITE"]) && !empty($arFields["SITE"])))
		{
			$aMsg[] = array(
				"id" => "SITE",
				"text" => GetMessage("VOTE_FORGOT_SITE"));
		}
		else
		{
			reset($arFields["SITE"]);
		}
	}
	if (empty($aMsg) && is_set($arFields, "SYMBOLIC_NAME"))
	{
		if (preg_match("/[^a-z_0-9]/is", $arFields["SYMBOLIC_NAME"], $matches))
		{
			$aMsg[] = array(
				"id" => "SYMBOLIC_NAME",
				"text" => GetMessage("VOTE_INCORRECT_SYMBOLIC_NAME"));
		}
		elseif (is_set($arFields, "SITE"))
		{
			$arFilter = array(
				"ID" => "~".$ID,
				"SITE" => $arFields["SITE"],
				"ACTIVE" => "Y",
				"SID" => $arFields["SYMBOLIC_NAME"],
				"SID_EXACT_MATCH" => "Y");
			$db_res = CVoteChannel::GetList('', '', $arFilter);
			if ($db_res && ($res = $db_res->Fetch()))
			{
				$aMsg[] = array(
					"id" => "SYMBOLIC_NAME",
					"text" => str_replace(
						"#ID#", $res["ID"],
						GetMessage("VOTE_SYMBOLIC_NAME_ALREADY_IN_USE")));
			}
		}
		if (empty($aMsg))
			$arFields["SYMBOLIC_NAME"] = mb_strtoupper($arFields["SYMBOLIC_NAME"]);
	}

	unset($arFields["TIMESTAMP_X"]);

	if (is_set($arFields, "FIRST_SITE_ID") || $ACTION == "ADD")
	{
		$arFields["=FIRST_SITE_ID"] = $DB->ForSql($arFields["FIRST_SITE_ID"], 2);
		unset($arFields["FIRST_SITE_ID"]);
	}

	if (is_set($arFields, "C_SORT") || $ACTION == "ADD") $arFields["C_SORT"] = trim($arFields["C_SORT"]);
	foreach(array("ACTIVE", "HIDDEN", "VOTE_SINGLE", "USE_CAPTCHA") as $key)
		if (is_set($arFields, $key) || $ACTION == "ADD") $arFields[$key] = ($arFields[$key] == "Y" ? "Y" : "N");

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