You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.9 KiB
101 lines
3.9 KiB
<?php
|
|
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
/**
|
|
* This script allows to manage the statements of questions.
|
|
* It is included from the script admin.php.
|
|
*
|
|
* @author Olivier Brouckaert
|
|
*/
|
|
if (isset($_GET['editQuestion'])) {
|
|
$objQuestion = Question::read($_GET['editQuestion']);
|
|
$action = api_get_self().'?'.api_get_cidreq().'&modifyQuestion='.$modifyQuestion.'&editQuestion='.$objQuestion->id.'&page='.$page;
|
|
} else {
|
|
$objQuestion = Question::getInstance($_REQUEST['answerType']);
|
|
$action = api_get_self().'?'.api_get_cidreq().'&modifyQuestion='.$modifyQuestion.'&newQuestion='.$newQuestion;
|
|
}
|
|
|
|
if (is_object($objQuestion)) {
|
|
// FORM CREATION
|
|
$form = new FormValidator('question_admin_form', 'post', $action);
|
|
|
|
$class = 'btn btn-default';
|
|
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?id='.$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?id='.$exerciseId.'&'.api_get_cidreq().'&page='.$page;
|
|
header("Location: $url");
|
|
exit;
|
|
} else {
|
|
// New question
|
|
$page = 1;
|
|
$length = api_get_configuration_value('question_pagination_length');
|
|
if (!empty($length)) {
|
|
$page = round($objExercise->getQuestionCount() / $length);
|
|
}
|
|
Display::addFlash(Display::return_message(get_lang('Item added')));
|
|
$url = api_get_path(WEB_CODE_PATH).'exercise/admin.php?id='.$exerciseId.'&'.api_get_cidreq().'&page='.$page;
|
|
header("Location: $url");
|
|
exit;
|
|
}
|
|
} else {
|
|
echo '<script type="text/javascript">window.location.href="admin.php?id='.$exerciseId.'&page='.$page.'&hotspotadmin='.$objQuestion->id.'&'.api_get_cidreq().'"</script>';
|
|
}
|
|
} else {
|
|
if (isset($questionName)) {
|
|
echo '<h3>'.$questionName.'</h3>';
|
|
}
|
|
if (!empty($pictureName)) {
|
|
echo '<img src="../document/download.php?doc_url=%2Fimages%2F'.$pictureName.'" border="0">';
|
|
}
|
|
if (!empty($msgErr)) {
|
|
echo Display::return_message($msgErr);
|
|
}
|
|
// display the form
|
|
$form->display();
|
|
}
|
|
}
|
|
|