- Модуль: vote
- Путь к файлу: ~/bitrix/modules/vote/classes/general/question.php
- Класс: CAllVoteQuestion
- Вызов: CAllVoteQuestion::CheckFields
static function CheckFields($ACTION, &$arFields, $ID = 0)
{
$aMsg = array();
$ID = intval($ID);
$ACTION = ($ACTION == "UPDATE" ? "UPDATE" : "ADD");
$arQuestion = array();
if ($ID > 0 && $ACTION == "UPDATE"):
$db_res = CVoteQuestion::GetByID($ID);
if (!($db_res && $arQuestion = $db_res->Fetch())):
$aMsg[] = array(
"id" => "ID",
"text" => GetMessage("VOTE_QUESTION_NOT_FOUND"));
endif;
endif;
unset($arFields["ID"]);
if (is_set($arFields, "VOTE_ID") || $ACTION == "ADD")
{
$arFields["VOTE_ID"] = intval($arFields["VOTE_ID"]);
if ($arFields["VOTE_ID"] <= 0):
$aMsg[] = array(
"id" => "VOTE_ID",
"text" => GetMessage("VOTE_FORGOT_VOTE_ID"));
endif;
}
if (isset($arFields["QUESTION"]) || $ACTION == "ADD")
{
$arFields["QUESTION"] = trim($arFields["QUESTION"]);
global $USER;
if (!$USER || $USER->CanDoOperation('edit_php') !== true)
{
$arFields["QUESTION"] = VoteInnerSanitizer::cleanText($arFields["QUESTION"]);
}
if ($arFields["QUESTION"] === "")
{
$aMsg[] = ["id" => "QUESTION", "text" => GetMessage("VOTE_FORGOT_QUESTION")];
}
}
if (is_set($arFields, "IMAGE_ID") && $arFields["IMAGE_ID"]["name"] == '' && $arFields["IMAGE_ID"]["del"] == '')
{
unset($arFields["IMAGE_ID"]);
}
elseif (is_set($arFields, "IMAGE_ID"))
{
if ($str = CFile::CheckImageFile($arFields["IMAGE_ID"])):
$aMsg[] = array(
"id" => "IMAGE_ID",
"text" => $str);
else:
$arFields["IMAGE_ID"]["MODULE_ID"] = "vote";
if (!empty($arQuestion)):
$arFields["IMAGE_ID"]["old_file"] = $arQuestion["IMAGE_ID"];
endif;
endif;
}
if (isset($arFields['ACTIVE']) || $ACTION == 'ADD') $arFields['ACTIVE'] = ($arFields['ACTIVE'] ?? 'Y') === 'N' ? 'N' : 'Y';
if (isset($arFields['FIELD_TYPE']) || $ACTION == 'ADD') $arFields['FIELD_TYPE'] = intval($arFields['FIELD_TYPE'] ?? 0);
unset($arFields['TIMESTAMP_X']);
if (isset($arFields['C_SORT']) || $ACTION == 'ADD') $arFields['C_SORT'] = intval($arFields['C_SORT'] ?? 100);
if (isset($arFields['COUNTER']) || $ACTION == 'ADD') $arFields['COUNTER'] = intval($arFields['COUNTER'] ?? 0);
if (isset($arFields['QUESTION_TYPE']) || $ACTION == 'ADD') $arFields['QUESTION_TYPE'] = (($arFields['QUESTION_TYPE'] ?? 'text') == 'html' ? 'html' : 'text');
if (isset($arFields['DIAGRAM']) || $ACTION == 'ADD') $arFields['DIAGRAM'] = (($arFields['DIAGRAM'] ?? 'Y') === 'N' ? 'N' : 'Y');
if (isset($arFields['DIAGRAM_TYPE']) && (empty($arFields['DIAGRAM_TYPE']) || in_array($arFields['DIAGRAM_TYPE'], GetVoteDiagramArray()))):
$arFields['DIAGRAM_TYPE'] = VOTE_DEFAULT_DIAGRAM_TYPE;
endif;
if (isset($arFields['TEMPLATE'])) $arFields['TEMPLATE'] = mb_substr(trim($arFields['TEMPLATE']), 0, 255);
if (isset($arFields['TEMPLATE_NEW'])) $arFields['TEMPLATE_NEW'] = mb_substr(trim($arFields['TEMPLATE_NEW']), 0, 255);
if ((isset($arFields['TEMPLATE']) || isset($arFields['TEMPLATE_NEW']))
&& COption::GetOptionString("vote", "VOTE_COMPATIBLE_OLD_TEMPLATE", "N") == "Y")
{
$old_module_version = CVote::IsOldVersion();
if ($old_module_version != "Y")
unset($arFields["TEMPLATE"]);
else
unset($arFields["TEMPLATE_NEW"]);
}
if(!empty($aMsg))
{
global $APPLICATION;
$e = new CAdminException(array_reverse($aMsg));
$APPLICATION->ThrowException($e);
return false;
}
return true;
}