• Модуль: vote
  • Путь к файлу: ~/bitrix/modules/vote/classes/general/answer.php
  • Класс: CAllVoteAnswer
  • Вызов: CAllVoteAnswer::CheckFields
static function CheckFields($ACTION, &$arFields, $ID = 0)
{
	global $APPLICATION;
	global $USER;
	$aMsg = [];
	$ID = intval($ID);
	$ACTION = ($ID > 0 && $ACTION == 'UPDATE' ? 'UPDATE' : 'ADD');

	unset($arFields['ID']);

	if (isset($arFields['QUESTION_ID']) || $ACTION == 'ADD'):
		$arFields['QUESTION_ID'] = intval($arFields['QUESTION_ID'] ?? 0);
		if ($arFields['QUESTION_ID'] <= 0):
			$aMsg[] = [
				'id' => 'QUESTION_ID', 
				'text' => GetMessage('VOTE_FORGOT_QUESTION_ID')
			];
		endif;
	endif;

	if (isset($arFields['MESSAGE']) || $ACTION == 'ADD')
	{
		$arFields['MESSAGE'] = ($arFields['MESSAGE'] ?? '');
		if (!$USER || $USER->CanDoOperation('edit_php') !== true)
		{
			$arFields['MESSAGE'] = VoteInnerSanitizer::cleanText($arFields['MESSAGE']);
		}
		if ($arFields['MESSAGE'] === '')
		{
			$aMsg[] = ['id' => 'MESSAGE', 'text' => GetMessage('VOTE_FORGOT_MESSAGE')];
		}
	}

	if (array_key_exists('IMAGE_ID', $arFields))
	{
		if (!is_array($arFields['IMAGE_ID']))
		{
			$arFields['IMAGE_ID'] = intval($arFields['IMAGE_ID']);
		}
		else if ($arFields['IMAGE_ID']['name'] == '' && $arFields['IMAGE_ID']['del'] == '')
		{
			unset($arFields['IMAGE_ID']);
		}
		else if ($str = CFile::CheckImageFile($arFields['IMAGE_ID']))
		{
			$aMsg[] = array(
				'id' => 'IMAGE_ID',
				'text' => 'Answer: '.$str);
		}
		else
		{
			$arFields['IMAGE_ID']['MODULE_ID'] = 'vote';
		}
	}

	unset($arFields['TIMESTAMP_X']);
	if (isset($arFields['ACTIVE']) || $ACTION == 'ADD') $arFields['ACTIVE'] = (($arFields['ACTIVE'] ?? 'Y') == 'N' ? 'N' : 'Y');
	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['FIELD_TYPE']) || $ACTION == 'ADD') $arFields['FIELD_TYPE'] = intval($arFields['FIELD_TYPE'] ?? 0);
	if (isset($arFields['FIELD_WIDTH']) || $ACTION == 'ADD') $arFields['FIELD_WIDTH'] = intval($arFields['FIELD_WIDTH'] ?? 0);
	if (isset($arFields['FIELD_HEIGHT']) || $ACTION == 'ADD') $arFields['FIELD_HEIGHT'] = intval($arFields['FIELD_HEIGHT'] ?? 0);

	if (isset($arFields['FIELD_PARAM']))
	{
		$arFields['FIELD_PARAM'] = ((!$USER || $USER->CanDoOperation('edit_php') !== true)
			? '' : trim($arFields['FIELD_PARAM']))
		;
	}

	if (isset($arFields['COLOR']) || $ACTION == 'ADD') $arFields['COLOR'] = mb_substr(trim($arFields['COLOR'] ?? ''), 0, 7);
	
	if (!empty($aMsg))
	{
		$e = new CAdminException(array_reverse($aMsg));
		$APPLICATION->ThrowException($e);
		return false;
	}
	return true;
}