Exemple #1
0
 public static function CheckFields(&$arFields, $ID = false, $bCheckRights = true)
 {
     global $DB, $APPLICATION;
     if ($ID === false && !is_set($arFields, "TEST_ID")) {
         $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_TEST_ID"), "EMPTY_TEST_ID");
         return false;
     } elseif (is_set($arFields, "TEST_ID")) {
         if ($bCheckRights) {
             $r = CTest::GetByID($arFields["TEST_ID"]);
         } else {
             $r = CTest::getList(array(), array('ID' => $arFields['TEST_ID'], 'CHECK_PERMISSIONS' => 'N'));
         }
         if (!$r->Fetch()) {
             $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_TEST_ID_EX"), "ERROR_NO_TEST_ID");
             return false;
         }
     }
     if ($ID === false && !is_set($arFields, "STUDENT_ID")) {
         $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID"), "EMPTY_STUDENT_ID");
         return false;
     } elseif (is_set($arFields, "STUDENT_ID")) {
         $dbResult = CUser::GetByID($arFields["STUDENT_ID"]);
         if (!$dbResult->Fetch()) {
             $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EX"), "ERROR_NO_STUDENT_ID");
             return false;
         }
     }
     if (is_set($arFields, "DATE_START") && !$DB->IsDate($arFields["DATE_START"], false, LANG, "FULL")) {
         $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_DATE_START"), "ERROR_DATE_START");
         return false;
     }
     if (is_set($arFields, "DATE_END") && strlen($arFields["DATE_END"]) > 0 && !$DB->IsDate($arFields["DATE_END"], false, LANG, "FULL")) {
         $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_DATE_END"), "ERROR_DATE_END");
         return false;
     }
     //Defaults
     if (is_set($arFields, "STATUS") && !in_array($arFields["STATUS"], array("B", "D", "F", "N"))) {
         $arFields["STATUS"] = "B";
     }
     if (is_set($arFields, "COMPLETED") && $arFields["COMPLETED"] != "Y") {
         $arFields["COMPLETED"] = "N";
     }
     return true;
 }