• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/general/stoplist.php
  • Класс: CAllStopList
  • Вызов: CAllStopList::CheckFields
function CheckFields($ID, &$arFields)
{
	$DB = CDatabase::GetModuleConnection('statistic');

	$aMsg = array();

	$arFields["TEST"] = "N";

	unset($arFields["ID"]);

	unset($arFields["TIMESTAMP_X"]);
	$arFields["~TIMESTAMP_X"] = $DB->GetNowFunction();

	if($arFields["SITE_ID"] == '' || $arFields["SITE_ID"] == "NOT_REF")
		$arFields["SITE_ID"] = false;

	if($arFields["ACTIVE"] != "N")
		$arFields["ACTIVE"] = "Y";

	if($arFields["SAVE_STATISTIC"] != "Y")
		$arFields["SAVE_STATISTIC"] = "N";

	$arIPFields = array("IP_1", "IP_2", "IP_3", "IP_4", "MASK_1", "MASK_2", "MASK_3", "MASK_4");
	foreach($arIPFields as $FIELD_ID)
	{
		if(trim($arFields[$FIELD_ID]) <> '')
		{
			$arFields[$FIELD_ID] = intval($arFields[$FIELD_ID]);
			if($arFields[$FIELD_ID] < 0)
				$arFields[$FIELD_ID] = 0;
			elseif($arFields[$FIELD_ID] > 255)
				$arFields[$FIELD_ID] = 255;
		}
		else
		{
			$arFields[$FIELD_ID] = false;
		}
	}

	if($arFields["USER_AGENT_IS_NULL"] != "Y")
		$arFields["USER_AGENT_IS_NULL"] = "N";

	if($arFields["DATE_END"] <> '' && !CheckDateTime($arFields["DATE_END"]))
		$aMsg[] = array("id"=>"DATE_END", "text"=> GetMessage("STAT_WRONG_END_DATE"));

	if($arFields["DATE_START"] <> '' && !CheckDateTime($arFields["DATE_START"]))
		$aMsg[] = array("id"=>"DATE_START", "text"=> GetMessage("STAT_WRONG_START_DATE"));

	$arTestFields = $arFields;
	$arTestFields["TEST"] = "Y";

	$TEST_ID = $DB->Add("b_stop_list", $arTestFields);
	$TEST_ID = intval($TEST_ID);

	$TEST_STOP_ID = $this->Check("Y");
	$TEST_STOP_ID = intval($TEST_STOP_ID);


	if($TEST_ID==$TEST_STOP_ID && $TEST_STOP_ID > 0 && $TEST_ID > 0)
		$aMsg[] = array("id"=>"WRONG_PARAMS", "text"=> GetMessage("STAT_WRONG_STOPLIST_PARAMS"));

	$DB->Query("DELETE FROM b_stop_list WHERE ID='".$TEST_ID."'");


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