- Модуль: learning
- Путь к файлу: ~/bitrix/modules/learning/classes/general/test.php
- Класс: CAllTest
- Вызов: CAllTest::CheckFields
public function CheckFields(&$arFields, $ID = false)
{
global $DB;
$arMsg = array();
if ( (is_set($arFields, "NAME") || $ID === false) && $arFields["NAME"] == '')
{
$arMsg[] = array("id"=>"NAME", "text"=> GetMessage("LEARNING_BAD_NAME"));
}
if ($ID===false && !is_set($arFields, "COURSE_ID"))
$arMsg[] = array("id"=>"COURSE_ID", "text"=> GetMessage("LEARNING_BAD_COURSE_ID"));
if (is_set($arFields, "COURSE_ID"))
{
$r = CCourse::GetByID($arFields["COURSE_ID"]);
if(!$r->Fetch())
$arMsg[] = array("id"=>"COURSE_ID", "text"=> GetMessage("LEARNING_BAD_COURSE_ID_EX"));
}
if ( $arFields["APPROVED"] == "Y" &&
is_set($arFields, "COMPLETED_SCORE") &&
(intval($arFields["COMPLETED_SCORE"]) <= 0 || intval($arFields["COMPLETED_SCORE"]) > 100)
)
$arMsg[] = array("id"=>"COMPLETED_SCORE", "text"=> GetMessage("LEARNING_BAD_COMPLETED_SCORE"));
if (is_set($arFields, "PREVIOUS_TEST_ID") && intval($arFields["PREVIOUS_TEST_ID"]) != 0)
{
$r = CTest::GetByID($arFields["PREVIOUS_TEST_ID"]);
if(!$r->Fetch())
$arMsg[] = array("id"=>"PREVIOUS_TEST_ID", "text"=> GetMessage("LEARNING_BAD_PREVIOUS_TEST"));
}
if ( is_set($arFields, "PREVIOUS_TEST_SCORE") &&
(intval($arFields["PREVIOUS_TEST_SCORE"]) <= 0 || intval($arFields["PREVIOUS_TEST_SCORE"]) > 100) &&
intval($arFields["PREVIOUS_TEST_ID"]) != 0
)
$arMsg[] = array("id"=>"PREVIOUS_TEST_SCORE", "text"=> GetMessage("LEARNING_BAD_COMPLETED_SCORE"));
if(!empty($arMsg))
{
$e = new CAdminException($arMsg);
$GLOBALS["APPLICATION"]->ThrowException($e);
return false;
}
//Defaults
if (is_set($arFields, "QUESTIONS_FROM") && !in_array($arFields["QUESTIONS_FROM"], array("A", "C", "L", "H", "S", 'R')))
$arFields["QUESTIONS_FROM"] = "A";
if (is_set($arFields, "QUESTIONS_AMOUNT") && intval($arFields["QUESTIONS_AMOUNT"]) <= 0)
$arFields["QUESTIONS_AMOUNT"] = "0";
if (is_set($arFields, "QUESTIONS_FROM_ID") && intval($arFields["QUESTIONS_FROM_ID"]) <= 0)
$arFields["QUESTIONS_FROM_ID"] = "0";
if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y")
$arFields["ACTIVE"] = "N";
if (is_set($arFields, "APPROVED") && $arFields["APPROVED"] != "Y")
$arFields["APPROVED"] = "N";
if($arFields["APPROVED"] == "N")
$arFields["COMPLETED_SCORE"] = "";
if (is_set($arFields, "INCLUDE_SELF_TEST") && $arFields["INCLUDE_SELF_TEST"] != "Y")
$arFields["INCLUDE_SELF_TEST"] = "N";
if (is_set($arFields, "RANDOM_QUESTIONS") && $arFields["RANDOM_QUESTIONS"] != "Y")
$arFields["RANDOM_QUESTIONS"] = "N";
if (is_set($arFields, "RANDOM_ANSWERS") && $arFields["RANDOM_ANSWERS"] != "Y")
$arFields["RANDOM_ANSWERS"] = "N";
if (is_set($arFields, "DESCRIPTION_TYPE") && $arFields["DESCRIPTION_TYPE"] != "html")
$arFields["DESCRIPTION_TYPE"] = "text";
if (is_set($arFields, "PASSAGE_TYPE") && !in_array($arFields["PASSAGE_TYPE"], Array("0", "1", "2")))
$arFields["PASSAGE_TYPE"] = "0";
if (is_set($arFields, "INCORRECT_CONTROL") && $arFields["INCORRECT_CONTROL"] != "Y")
$arFields["INCORRECT_CONTROL"] = "N";
if (is_set($arFields, "SHOW_ERRORS") && $arFields["SHOW_ERRORS"] != "Y")
{
$arFields["SHOW_ERRORS"] = "N";
$arFields["NEXT_QUESTION_ON_ERROR"] = "Y";
}
if (is_set($arFields, "NEXT_QUESTION_ON_ERROR") && $arFields["NEXT_QUESTION_ON_ERROR"] != "Y")
$arFields["NEXT_QUESTION_ON_ERROR"] = "N";
return true;
}