• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/testresult.php
  • Класс: CTestResult
  • Вызов: CTestResult::CheckFields
public function CheckFields(&$arFields, $ID = false)
{
	global $DB, $APPLICATION;

	if ($ID===false)
	{
		if (is_set($arFields, "ATTEMPT_ID"))
		{
			$r = CTestAttempt::GetByID($arFields["ATTEMPT_ID"]);
			if(!$r->Fetch())
			{
				$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_ATTEMPT_ID_EX"), "ERROR_NO_ATTEMPT_ID");
				return false;
			}
		}
		else
		{
			$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_ATTEMPT_ID"), "EMPTY_ATTEMPT_ID");
			return false;
		}

		if (is_set($arFields, "QUESTION_ID"))
		{
			$r = CLQuestion::GetByID($arFields["QUESTION_ID"]);
			if(!$r->Fetch())
			{
				$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_QUESTION_ID"), "EMPTY_QUESTION_ID");
				return false;
			}
		}
		else
		{
			$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_QUESTION_ID"), "EMPTY_QUESTION_ID");
			return false;
		}
	}

	if (is_set($arFields, "RESPONSE") && is_array($arFields["RESPONSE"]))
	{
		$s = "";
		foreach($arFields["RESPONSE"] as $val)
			$s .= $val.",";
		$arFields["RESPONSE"] = mb_substr($s, 0, -1);
	}

	/*
	if (is_set($arFields, "ANSWERED") && is_set($arFields, "RESPONSE"))
	{
		if ($arFields["ANSWERED"]=="Y" && strlen($arFields["RESPONSE"]) <= 0)
		{
			$APPLICATION->ThrowException(GetMessage("LEARNING_BAD_NO_ANSWERS"), "EMPTY_ANSWERS");
			return false;
		}
	}
	*/

	if (is_set($arFields, "CORRECT") && $arFields["CORRECT"] != "Y")
		$arFields["CORRECT"] = "N";

	return true;
}