- Модуль: 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;
}