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

	if ( (is_set($arFields, "NAME") || $ID === false) && trim($arFields["NAME"]) == '')
		$arMsg[] = array("id"=>"NAME", "text"=> GetMessage("LEARNING_BAD_NAME"));


	if (is_set($arFields, "FILE_ID"))
	{
		$error = CFile::CheckImageFile($arFields["FILE_ID"]);
		if ($error <> '')
			$arMsg[] = array("id"=>"FILE_ID", "text"=> $error);
	}

	if($this->LAST_ERROR == '')
	{
		if (
			($ID === false && !is_set($arFields, "LESSON_ID"))
			||
			(is_set($arFields, "LESSON_ID") && intval($arFields["LESSON_ID"]) < 1)
			)
		{
			$arMsg[] = array("id"=>"LESSON_ID", "text"=> GetMessage("LEARNING_BAD_LESSON_ID"));
		}
		elseif (is_set($arFields, "LESSON_ID"))
		{
			$res = CLearnLesson::GetByID($arFields["LESSON_ID"]);
			if($arRes = $res->Fetch())
			{
				$oAccess = CLearnAccess::GetInstance($USER->GetID());

				$bAccessLessonModify =
					$oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_WRITE)
					|| $oAccess->IsLessonAccessible ($arFields["LESSON_ID"], CLearnAccess::OP_LESSON_WRITE);

				if ( ! $bAccessLessonModify )
					$arMsg[] = array("id"=>"LESSON_ID", "text"=> GetMessage("LEARNING_BAD_LESSON_ID_EX"));
			}
			else
			{
				$arMsg[] = array("id"=>"LESSON_ID", "text"=> GetMessage("LEARNING_BAD_LESSON_ID_EX"));
			}
		}
	}

	if(!empty($arMsg))
	{
		$e = new CAdminException($arMsg);
		$GLOBALS["APPLICATION"]->ThrowException($e);
		return false;
	}

	if (is_set($arFields, "QUESTION_TYPE") && !in_array($arFields["QUESTION_TYPE"], Array("S", "M", "T", "R")))
		$arFields["QUESTION_TYPE"] = "S";

	if (is_set($arFields, "DESCRIPTION_TYPE") && $arFields["DESCRIPTION_TYPE"] != "html")
		$arFields["DESCRIPTION_TYPE"] = "text";

	if (is_set($arFields, "DIRECTION") && $arFields["DIRECTION"] != "H")
		$arFields["DIRECTION"] = "V";

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

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

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

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

	return true;
}