$aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("LEARNING_ADMIN_TAB1"), "ICON" => "main_user_edit", "TITLE" => GetMessage("LEARNING_ADMIN_TAB1_EX")), array("DIV" => "edit2", "TAB" => GetMessage("LEARNING_ADMIN_TAB2"), "ICON" => "main_user_edit", "TITLE" => GetMessage("LEARNING_ADMIN_TAB2_EX")), array("DIV" => "edit3", "TAB" => GetMessage("LEARNING_ADMIN_TAB3"), "ICON" => "main_user_edit", "TITLE" => GetMessage("LEARNING_ADMIN_TAB3_EX"))); $aTabs[] = $USER_FIELD_MANAGER->EditFormTab('LEARNING_QUESTIONS'); $tabControl = new CAdminForm("questionTabControl", $aTabs); if (!$bBadCourse && $_SERVER["REQUEST_METHOD"] == "POST" && strlen($Update) > 0 && check_bitrix_sessid()) { $arFILE_ID = $_FILES["FILE_ID"]; $arFILE_ID["del"] = ${"FILE_ID_del"}; $arFILE_ID["MODULE_ID"] = "learning"; $arFILE_ID["description"] = ${"FILE_ID_descr"}; if ($NEW_LESSON_ID !== false) { $LESSON_ID = $NEW_LESSON_ID; } $cq = new CLQuestion(); $arFields = array("LESSON_ID" => $LESSON_ID, "NAME" => $NAME, "QUESTION_TYPE" => $QUESTION_TYPE, "SORT" => $SORT, "SELF" => $SELF, "ACTIVE" => $ACTIVE, "CORRECT_REQUIRED" => $CORRECT_REQUIRED, "POINT" => $POINT, "FILE_ID" => $arFILE_ID, "DESCRIPTION" => $DESCRIPTION, "DESCRIPTION_TYPE" => $DESCRIPTION_TYPE, "INCORRECT_MESSAGE" => $INCORRECT_MESSAGE, "COMMENT_TEXT" => $COMMENT_TEXT, "EMAIL_ANSWER" => $EMAIL_ANSWER, "~TIMESTAMP_X" => $DB->CurrentTimeFunction()); $USER_FIELD_MANAGER->EditFormAddFields('LEARNING_QUESTIONS', $arFields); if ($ID > 0) { $res = $cq->Update($ID, $arFields); } else { // check, that default answer selected if ($QUESTION_TYPE === 'S' && !isset($_POST['ANSWER_CORRECT'])) { $res = false; $message = new CAdminMessage(array('MESSAGE' => GetMessage("LEARNING_ERROR"), 'TYPE' => 'ERROR', 'DETAILS' => GetMessage('LEARNING_ADD_RIGHT_ANSWER_NOT_SELECTED'), 'HTML' => false)); } else { $ID = $cq->Add($arFields); $res = $ID > 0; } } if (!$res) { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("LEARNING_ERROR"), $e); } $bVarsFromForm = true;
break; case "activate": case "deactivate": $cl = new CLQuestion(); $arFields = array("ACTIVE" => $_REQUEST['action'] == "activate" ? "Y" : "N"); if (!$cl->Update($ID, $arFields)) { if ($e = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage("SAVE_ERROR") . $ID . ": " . $e->GetString(), $ID); } } break; case "required": case "derequired": $cl = new CLQuestion(); $arFields = array("CORRECT_REQUIRED" => $_REQUEST['action'] == "required" ? "Y" : "N"); if (!$cl->Update($ID, $arFields)) { if ($e = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage("SAVE_ERROR") . $ID . ": " . $e->GetString(), $ID); } } break; } } } // fetch data if (isset($_REQUEST["mode"]) && $_REQUEST["mode"] == "excel") { $arNavParams = array(); } else { $arNavParams = array('nPageSize' => CAdminResult::GetNavSize($sTableID)); } $rsData = CLQuestion::GetList(array($by => $order), $arFilter, true, $arNavParams);