id.'&page='.$page; } else { $objQuestion = Question::getInstance($_REQUEST['answerType']); $action = api_get_self().'?'.api_get_cidreq().'&answerType='.$type.'&modifyQuestion='.$modifyQuestion.'&newQuestion='.$newQuestion; } if (is_object($objQuestion)) { // FORM CREATION $form = new FormValidator('question_admin_form', 'post', $action); $class = 'btn btn--plain'; if (isset($_GET['editQuestion'])) { $text = get_lang('Save the question'); $type = isset($_GET['type']) ? Security::remove_XSS($_GET['type']) : null; } else { $text = get_lang('Add this question to the test'); $type = $_REQUEST['answerType']; } $code = ''; if (isset($objQuestion->code) && !empty($objQuestion->code)) { $code = ' ('.$objQuestion->code.')'; } // form title $form->addHeader($text.': '.$objQuestion->getExplanation().$code); // question form elements $objQuestion->createForm($form, $objExercise); // answer form elements $objQuestion->createAnswersForm($form); // this variable $show_quiz_edition comes from admin.php blocks the exercise/quiz modifications if (!empty($objExercise->id) && false == $objExercise->edit_exercise_in_lp) { $form->freeze(); } // FORM VALIDATION if (isset($_POST['submitQuestion']) && $form->validate()) { // Question $objQuestion->processCreation($form, $objExercise); $objQuestion->processAnswersCreation($form, $objExercise); // TODO: maybe here is the better place to index this tool, including answers text // redirect if (HOT_SPOT != $objQuestion->type && HOT_SPOT_DELINEATION != $objQuestion->type ) { if (isset($_GET['editQuestion'])) { if (empty($exerciseId)) { Display::addFlash(Display::return_message(get_lang('Item updated'))); $url = api_get_path(WEB_CODE_PATH).'exercise/admin.php?exerciseId='.$exerciseId.'&'.api_get_cidreq().'&editQuestion='.$objQuestion->id; header("Location: $url"); exit; } Display::addFlash(Display::return_message(get_lang('Item updated'))); $url = api_get_path(WEB_CODE_PATH).'exercise/admin.php?exerciseId='.$exerciseId.'&'.api_get_cidreq().'&page='.$page; header("Location: $url"); exit; } else { // New question $page = 1; $length = (int) api_get_setting('exercise.question_pagination_length'); if ($length > 0) { $page = round($objExercise->getQuestionCount() / $length); } Display::addFlash(Display::return_message(get_lang('Item added'))); $url = api_get_path(WEB_CODE_PATH).'exercise/admin.php?exerciseId='.$exerciseId.'&'.api_get_cidreq().'&page='.$page; header("Location: $url"); exit; } } else { echo ''; } } else { if (isset($questionName)) { echo '

'.$questionName.'

'; } if (!empty($pictureName)) { echo ''; } if (!empty($msgErr)) { echo Display::return_message($msgErr); } // display the form $form->display(); } }