- Модуль: subscribe
- Путь к файлу: ~/bitrix/modules/subscribe/classes/general/rubric.php
- Класс: CRubric
- Вызов: CRubric::CheckFields
function CheckFields($arFields)
{
global $DB;
$this->LAST_ERROR = "";
$aMsg = array();
if($arFields["NAME"] == '')
$aMsg[] = array("id"=>"NAME", "text"=>GetMessage("class_rub_err_name"));
if($arFields["LID"] <> '')
{
$r = CLang::GetByID($arFields["LID"]);
if(!$r->Fetch())
$aMsg[] = array("id"=>"LID", "text"=>GetMessage("class_rub_err_lang"));
}
else
$aMsg[] = array("id"=>"LID", "text"=>GetMessage("class_rub_err_lang2"));
if($arFields["DAYS_OF_MONTH"] <> '')
{
$arDoM = explode(",", $arFields["DAYS_OF_MONTH"]);
$arFound = array();
foreach($arDoM as $strDoM)
{
if(preg_match("/^(d{1,2})$/", trim($strDoM), $arFound))
{
if(intval($arFound[1]) < 1 || intval($arFound[1]) > 31)
{
$aMsg[] = array("id"=>"DAYS_OF_MONTH", "text"=>GetMessage("class_rub_err_dom"));
break;
}
}
elseif(preg_match("/^(d{1,2})-(d{1,2})$/", trim($strDoM), $arFound))
{
if(intval($arFound[1]) < 1 || intval($arFound[1]) > 31 || intval($arFound[2]) < 1 || intval($arFound[2]) > 31 || intval($arFound[1]) >= intval($arFound[2]))
{
$aMsg[] = array("id"=>"DAYS_OF_MONTH", "text"=>GetMessage("class_rub_err_dom"));
break;
}
}
else
{
$aMsg[] = array("id"=>"DAYS_OF_MONTH", "text"=>GetMessage("class_rub_err_dom2"));
break;
}
}
}
if($arFields["DAYS_OF_WEEK"] <> '')
{
$arDoW = explode(",", $arFields["DAYS_OF_WEEK"]);
$arFound = array();
foreach($arDoW as $strDoW)
{
if(preg_match("/^(d)$/", trim($strDoW), $arFound))
{
if(intval($arFound[1]) < 1 || intval($arFound[1]) > 7)
{
$aMsg[] = array("id"=>"DAYS_OF_WEEK", "text"=>GetMessage("class_rub_err_dow"));
break;
}
}
else
{
$aMsg[] = array("id"=>"DAYS_OF_WEEK", "text"=>GetMessage("class_rub_err_dow2"));
break;
}
}
}
if($arFields["TIMES_OF_DAY"] <> '')
{
$arToD = explode(",", $arFields["TIMES_OF_DAY"]);
$arFound = array();
foreach($arToD as $strToD)
{
if(preg_match("/^(d{1,2}):(d{1,2})$/", trim($strToD), $arFound))
{
if(intval($arFound[1]) > 23 || intval($arFound[2]) > 59)
{
$aMsg[] = array("id"=>"TIMES_OF_DAY", "text"=>GetMessage("class_rub_err_tod"));
break;
}
}
else
{
$aMsg[] = array("id"=>"TIMES_OF_DAY", "text"=>GetMessage("class_rub_err_tod2"));
break;
}
}
}
if($arFields["TEMPLATE"] <> '' && !CPostingTemplate::IsExists($arFields["TEMPLATE"]))
$aMsg[] = array("id"=>"TEMPLATE", "text"=>GetMessage("class_rub_err_wrong_templ"));
if($arFields["AUTO"]=="Y")
{
if((mb_strlen($arFields["FROM_FIELD"]) < 3) || !check_email($arFields["FROM_FIELD"]))
$aMsg[] = array("id"=>"FROM_FIELD", "text"=>GetMessage("class_rub_err_email"));
if(mb_strlen($arFields["DAYS_OF_MONTH"]) + mb_strlen($arFields["DAYS_OF_WEEK"]) <= 0)
$aMsg[] = array("id"=>"DAYS_OF_MONTH", "text"=>GetMessage("class_rub_err_days_missing"));
if($arFields["TIMES_OF_DAY"] == '')
$aMsg[] = array("id"=>"TIMES_OF_DAY", "text"=>GetMessage("class_rub_err_times_missing"));
if($arFields["TEMPLATE"] == '')
$aMsg[] = array("id"=>"TEMPLATE", "text"=>GetMessage("class_rub_err_templ_missing"));
if(is_set($arFields, "FROM_FIELD") && $arFields["FROM_FIELD"] == '')
$aMsg[] = array("id"=>"FROM_FIELD", "text"=>GetMessage("class_rub_err_from"));
if($arFields["LAST_EXECUTED"] == '')
$aMsg[] = array("id"=>"LAST_EXECUTED", "text"=>GetMessage("class_rub_err_le_missing"));
elseif(is_set($arFields, "LAST_EXECUTED") && $arFields["LAST_EXECUTED"]!==false && $DB->IsDate($arFields["LAST_EXECUTED"], false, false, "FULL")!==true)
$aMsg[] = array("id"=>"LAST_EXECUTED", "text"=>GetMessage("class_rub_err_le_wrong"));
}
if(!empty($aMsg))
{
$e = new CAdminException($aMsg);
$GLOBALS["APPLICATION"]->ThrowException($e);
$this->LAST_ERROR = $e->GetString();
return false;
}
return true;
}