예제 #1
0
 public static function CheckFields(&$arFields, $ID = false)
 {
     global $DB, $APPLICATION;
     $arMsg = array();
     if ((is_set($arFields, "USER_ID") || $ID === false) && intval($arFields["USER_ID"]) <= 0) {
         $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID"), "EMPTY_USER_ID");
         return false;
     } elseif (is_set($arFields, "USER_ID")) {
         $dbResult = CUser::GetByID($arFields["USER_ID"]);
         if (!$dbResult->Fetch()) {
             $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EX"), "ERROR_NO_USER_ID");
             return false;
         }
         $dbResult = CStudent::GetList(array(), array("USER_ID" => $arFields["USER_ID"]));
         if ($dbResult->Fetch()) {
             $APPLICATION->ThrowException(GetMessage("LEARNING_BAD_USER_ID_EXISTS"), "ERROR_USER_ID_EXISTS");
             return false;
         }
     }
     if ($ID === false && !is_set($arFields, "TRANSCRIPT")) {
         $arFields["TRANSCRIPT"] = CStudent::GenerateTranscipt();
     } elseif (is_set($arFields, "TRANSCRIPT") && !preg_match("~^[0-9]{6,}\$~", $arFields["TRANSCRIPT"])) {
         $arFields["TRANSCRIPT"] = CStudent::GenerateTranscipt();
     }
     if (is_set($arFields, "PUBLIC_PROFILE") && $arFields["PUBLIC_PROFILE"] != "N") {
         $arFields["ACTIVE"] = "Y";
     }
     return true;
 }