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