@ -29,43 +29,21 @@ $this_section = SECTION_COURSES;
$is_allowedToEdit = api_is_allowed_to_edit(null,true);
if (empty($delete)) {
$delete = intval($_GET['delete']);
}
if ( empty ( $recup ) ) {
$recup = intval($_GET['recup']);
}
if ( empty ( $fromExercise ) ) {
$fromExercise = intval($_REQUEST['fromExercise']);
}
if(isset($_GET['exerciseId'])){
$exerciseId = intval($_GET['exerciseId']);
}
if (isset($_GET['courseCategoryId'])) {
$courseCategoryId = intval($_GET['courseCategoryId']);
}
$exerciseLevel = -1;
if(isset($_REQUEST['exerciseLevel'])){
$exerciseLevel = intval($_REQUEST['exerciseLevel']);
}
if(isset($_GET['answerType'])){
$answerType = intval($_REQUEST['answerType']);
}
$page = 0;
if(!empty($_GET['page'])){
$page = intval($_GET['page']);
}
$copy_question = 0;
if(!empty($_GET['copy_question'])){
$copy_question = intval($_GET['copy_question']);
}
$session_id = intval($_GET['session_id']);
$selected_course = intval($_GET['selected_course']);
$course_id_changed = intval($_GET['course_id_changed']); // save the id of the previous course selected by user to reset menu if we detect that user change course hub 13-10-2011
$exercice_id_changed = intval($_GET['exercice_id_changed']); // save the id of the previous exercice selected by user to reset menu if we detect that user change course hub 13-10-2011
$delete = isset($_GET['delete']) ? intval($_GET['delete']) : null;
$recup = isset($_GET['recup']) ? intval($_GET['recup']) : null;
$fromExercise = isset($_REQUEST['fromExercise']) ? intval($_REQUEST['fromExercise']) : null;
$exerciseId = isset($_REQUEST['exerciseId']) ? intval($_REQUEST['exerciseId']) : null;
$courseCategoryId = isset($_REQUEST['courseCategoryId']) ? intval($_REQUEST['courseCategoryId']) : null;
$exerciseLevel = isset($_REQUEST['exerciseLevel']) ? intval($_REQUEST['exerciseLevel']) : -1;
$answerType = isset($_REQUEST['answerType']) ? intval($_REQUEST['answerType']) : null;
$page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 0;
$copy_question = isset($_REQUEST['copy_question']) ? intval($_REQUEST['copy_question']) : 0;
$session_id = isset($_REQUEST['session_id']) ? intval($_REQUEST['session_id']) : null;
$selected_course = isset($_GET['selected_course']) ? intval($_GET['selected_course']) : null;
// save the id of the previous course selected by user to reset menu if we detect that user change course hub 13-10-2011
$course_id_changed = isset($_GET['course_id_changed']) ? intval($_GET['course_id_changed']) : null;
// save the id of the previous exercice selected by user to reset menu if we detect that user change course hub 13-10-2011
$exercice_id_changed = isset($_GET['exercice_id_changed']) ? intval($_GET['exercice_id_changed']) : null;
// by default when we go to the page for the first time, we select the current course
if (!isset($_GET['selected_course']) & & !isset($_GET['exerciseId'])) {
@ -77,16 +55,20 @@ $documentPath = api_get_path(SYS_COURSE_PATH).$_course['path'].'/document';
// picture path
$picturePath = $documentPath.'/images';
if(!($objExcercise instanceOf Exercise) & & !empty($fromExercise)) {
if (empty($obj Exercise) & & !empty($fromExercise)) {
$objExercise = new Exercise();
$objExercise->read($fromExercise);
}
$nameTools = get_lang('QuestionPool');
$interbreadcrumb[] = array("url" => "exercice.php","name" => get_lang('Exercices'));
$interbreadcrumb[] = array("url" => "admin.php?exerciseId=".$objExercise->id, "name" => $objExercise->name);
$displayMessage = ""; // messag to be displayed if actions succesfull
if (!empty($objExercise)) {
$interbreadcrumb[] = array("url" => "admin.php?exerciseId=".$objExercise->id, "name" => $objExercise->name);
}
// message to be displayed if actions succesful
$displayMessage = "";
if ($is_allowedToEdit) {
//Duplicating a Question
if (!isset($_POST['recup']) & & $copy_question != 0 & & isset($fromExercise)) {
@ -273,7 +255,7 @@ foreach($session_list as $item) {
$session_select_list[$item['id']] = $item['name'];
}
$select_session_html = Display::select('session_id', $session_select_list, $session_id, $tabAttrParam);
echo Display::form_row($labelFormRow, $select_session_html); // hub 13-10-2011
echo Display::form_row($labelFormRow, $select_session_html);
// Course list, get course list of session, or for course where user is admin
if (!empty($session_id) & & $session_id != '-1') {
@ -295,7 +277,7 @@ echo Display::form_row(get_lang('Course'), $select_course_html);
if (empty($selected_course) || $selected_course == '-1') {
$course_info = api_get_course_info();
reset_menu_exo_lvl_type(); // no course selected, reset menu test / difficult<EFBFBD> / type de reponse // hub 13-10-2011
reset_menu_exo_lvl_type(); // no course selected, reset menu test / difficult<EFBFBD> / type de reponse
}
else {
$course_info = CourseManager::get_course_information_by_id($selected_course);
@ -310,31 +292,31 @@ $TBL_EXERCICE_QUESTION = Database::get_course_table(TABLE_QUIZ_TEST_QUESTIO
$TBL_EXERCICES = Database::get_course_table(TABLE_QUIZ_TEST);
$TBL_QUESTIONS = Database::get_course_table(TABLE_QUIZ_QUESTION);
$TBL_REPONSES = Database::get_course_table(TABLE_QUIZ_ANSWER);
$TBL_CATEGORY = Database::get_course_table(TABLE_QUIZ_QUESTION_CATEGORY); // hub 13-10-2011
$TBL_COURSE_REL_CATEGORY = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY); // hub 13-10-2011
$TBL_CATEGORY = Database::get_course_table(TABLE_QUIZ_QUESTION_CATEGORY);
$TBL_COURSE_REL_CATEGORY = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY);
// Get course categories for the selected course
// get category list for the course $selected_course
$tabCat List = Testcategory::getCategoriesIdAndName($selected_course);
$selectCourseCateo gry = Display::select('courseCategoryId', $tabCat List, $courseCategoryId, array('class'=>'chzn-select','onchange'=>'submit_form(this);'), false);
echo Display::form_row(get_lang("QuestionCategory"), $selectCourseCateo gry);
$category List = Testcategory::getCategoriesIdAndName($selected_course);
$selectCourseCatego ry = Display::select('courseCategoryId', $category List, $courseCategoryId, array('class'=>'chzn-select','onchange'=>'submit_form(this);'), false);
echo Display::form_row(get_lang("QuestionCategory"), $selectCourseCatego ry);
// Get exercic e list for this course
// Get exercis e list for this course
$exercise_list = get_all_exercises_for_course_id($course_info, $session_id, $selected_course, false);
$exercise_list = get_all_exercises_for_course_id($course_info, $session_id, $selected_course, false);
//Exercise List
$my_exercise_list = array();
$my_exercise_list['0'] = get_lang('AllExercises');
$my_exercise_list['-1'] = get_lang('OrphanQuestions');
if (is_array($exercise_list)) {
foreach($exercise_list as $row) {
$my_exercise_list[$row['id']] = "";
if ($row['id'] == $fromExercise & & $selected_course == api_get_course_int_id()) {
$my_exercise_list[$row['id']] = "> "; // hub 13-10-2011
foreach($exercise_list as $row) {
$my_exercise_list[$row['id']] = "";
if ($row['id'] == $fromExercise & & $selected_course == api_get_course_int_id()) {
$my_exercise_list[$row['id']] = "> ";
}
$my_exercise_list[$row['id']] .= $row['title'];
}
$my_exercise_list[$row['id']] .= $row['title'];
}
}
if ($exercice_id_changed == 1) {
@ -385,9 +367,7 @@ echo "<input type='hidden' id='exercice_id_changed' name='exercice_id_changed' v
<?php
echo '< input type = "hidden" name = "course_id" value = "'.$selected_course.'" > ';
// if we have selected an exercise in the list-box 'Filter'
if ($exerciseId > 0) {
$where = '';
$from = '';
@ -435,14 +415,8 @@ if ($exerciseId > 0) {
if (isset($answerType) & & $answerType >0 -1 ) {
$answer_where = ' AND type='.$answerType;
}
/*$sql = "SELECT DISTINCT * FROM $TBL_QUESTIONS qu $from
WHERE qu.c_id = $selected_course AND qu.id NOT IN (
SELECT question_id FROM $TBL_EXERCICE_QUESTION
WHERE c_id=$selected_course
) $level_where $answer_where";*/
// @todo fix this query with the new id field
$sql = " (
SELECT q.* FROM $TBL_QUESTIONS q INNER JOIN $TBL_EXERCICE_QUESTION r
ON (q.c_id = r.c_id AND q.id = r.question_id)
@ -483,72 +457,72 @@ if ($exerciseId > 0) {
if (isset($answerType) & & $answerType > 0) {
$filter .= ' AND qu.type='.$answerType.' ';
}
if (!empty($session_id) & & $session_id != '-1') {
$main_question_list = array();
if (!empty($course_list))
foreach ($course_list as $course_item) {
if (!empty($selected_course) & & $selected_course != '-1') {
if ($selected_course != $course_item['id']) {
continue;
}
}
$exercise_list = get_all_exercises($course_item, $session_id);
if (!empty($exercise_list)) {
foreach ($exercise_list as $exercise) {
$my_exercise = new Exercise($course_item['id']);
$my_exercise->read($exercise['id']);
if (!empty($my_exercise)) {
if (!empty($my_exercise->questionList)) {
foreach ($my_exercise->questionList as $question_id) {
$question_obj = Question::read($question_id, $course_item['id']);
if ($exerciseLevel != '-1')
if ($exerciseLevel != $question_obj->level) {
continue;
}
if ($answerType > 0)
if ($answerType != $question_obj->type) {
continue;
if (!empty($session_id) & & $session_id != '-1') {
$main_question_list = array();
if (!empty($course_list))
foreach ($course_list as $course_item) {
if (!empty($selected_course) & & $selected_course != '-1') {
if ($selected_course != $course_item['id']) {
continue;
}
}
if ($courseCategoryId > 0 & & Testcategory::getCategoryForQuestion($question_obj->id, $selected_course)) {
continue;
}
if ($objExercise->feedback_type != EXERCISE_FEEDBACK_TYPE_DIRECT) {
if ($question_obj->type == HOT_SPOT_DELINEATION) {
continue;
}
$exercise_list = get_all_exercises($course_item, $session_id);
if (!empty($exercise_list)) {
foreach ($exercise_list as $exercise) {
$my_exercise = new Exercise($course_item['id']);
$my_exercise->read($exercise['id']);
if (!empty($my_exercise)) {
if (!empty($my_exercise->questionList)) {
foreach ($my_exercise->questionList as $question_id) {
$question_obj = Question::read($question_id, $course_item['id']);
if ($exerciseLevel != '-1')
if ($exerciseLevel != $question_obj->level) {
continue;
}
if ($answerType > 0)
if ($answerType != $question_obj->type) {
continue;
}
if ($courseCategoryId > 0 & & Testcategory::getCategoryForQuestion($question_obj->id, $selected_course)) {
continue;
}
if ($objExercise->feedback_type != EXERCISE_FEEDBACK_TYPE_DIRECT) {
if ($question_obj->type == HOT_SPOT_DELINEATION) {
continue;
}
}
$question_row = array(
'id' => $question_obj->id,
'question' => $question_obj->question,
'type' => $question_obj->type,
'level' => $question_obj->level,
'exercise_id' => $exercise['id'],
'course_id' => $course_item['id'],
);
$main_question_list[] = $question_row;
}
}
}
}
}
$question_row = array( 'id' => $question_obj->id,
'question' => $question_obj->question,
'type' => $question_obj->type,
'level' => $question_obj->level,
'exercise_id' => $exercise['id'],
'course_id' => $course_item['id'],
);
$main_question_list[] = $question_row;
}
}
}
} else {
// All tests for the course selected, not in session
$sql = "SELECT DISTINCT qu.id, question, qu.type, level, q.session_id
FROM $TBL_QUESTIONS as qu, $TBL_EXERCICE_QUESTION as qt, $TBL_EXERCICES as q $from
WHERE
qu.c_id = $selected_course AND
qt.c_id = $selected_course AND
q.c_id = $selected_course AND
qu.id = qt.question_id AND
q.id = qt.exercice_id $filter
ORDER BY session_id ASC";
$result = Database::query($sql);
while($row = Database::fetch_array($result, 'ASSOC')) {
$main_question_list[] = $row;
}
}
}
}
else {
//
// All tests for the course selected, not in session
$sql = "SELECT DISTINCT qu.id, question, qu.type, level, q.session_id
FROM $TBL_QUESTIONS as qu, $TBL_EXERCICE_QUESTION as qt, $TBL_EXERCICES as q $from
WHERE qu.c_id = $selected_course AND
qt.c_id = $selected_course AND
q.c_id = $selected_course AND
qu.id = qt.question_id AND
q.id = qt.exercice_id $filter
ORDER BY session_id ASC";
$result = Database::query($sql);
while($row = Database::fetch_array($result, 'ASSOC')) {
$main_question_list[] = $row;
}
}
// forces the value to 0
$exerciseId=0;
}
@ -607,7 +581,6 @@ $header[] = array(get_lang('Difficulty'), false, array("style"=>"text-align:cent
$header[] = array($actionLabel, false, array("style"=>"text-align:center"), array("style"=>"text-align:center"), '');
$data = array();
if (is_array($main_question_list)) {
foreach ($main_question_list as $tabQuestion) {
$row = array();
@ -646,13 +619,11 @@ if (!$nbrQuestions) {
//}
Display::display_footer();
// Some functions here, just for question_pool to ease the code
/*
Put the menu entry for level and type to default "Choice"
It is usefull if you change the exercic e, you need to reset the other menus
It is useful if you change the exercis e, you need to reset the other menus
hubert.borderiou 13-10-2011
*/
function reset_menu_lvl_type() {
@ -661,8 +632,8 @@ function reset_menu_lvl_type() {
$exerciseLevel = -1;
}
/*
Put the menu entry for exercic e and level and type to default "Choice"
It is usefull if you change the course, you need to reset the other menus
Put the menu entry for exercis e and level and type to default "Choice"
It is useful if you change the course, you need to reset the other menus
hubert.borderiou 13-10-2011
*/
@ -675,7 +646,8 @@ function reset_menu_exo_lvl_type() {
// return the < a > link to admin question, if needed
// hubert.borderiou 13-10-2011
function get_a_tag_for_question($in_addA, $in_fromex, $in_questionid, $in_questiontype, $in_questionname) {
function get_a_tag_for_question($in_addA, $in_fromex, $in_questionid, $in_questiontype, $in_questionname)
{
$res = $in_questionname;
if ($in_addA) {
$res = "< a href = 'admin.php?".api_get_cidreq()."&editQuestion=$in_questionid&type=$in_questiontype&fromExercise=$in_fromex' > ".$res."< / a > ";
@ -702,8 +674,6 @@ $exerciseId).
get_action_icon_for_question($actionIcon2, $fromExercise, $tabQuestion['id'], $tabQuestion['type'],
$tabQuestion['question'], $selected_course, $courseCategoryId, $exerciseLevel, $answerType,
$session_id, $exerciseId);
*/
/*
@ -720,8 +690,8 @@ $session_id, $exerciseId);
in_session_id = the id of the session_id chosen in the FILTERING MENU
in_exercice_id = the id of the exercice chosen in the FILTERING MENU
*/
function get_action_icon_for_question($in_action, $from_exercice, $in_questionid, $in_questiontype, $in_questionname, $in_selected_course, $in_courseCategoryId, $in_exerciseLevel, $in_answerType, $in_session_id, $in_exercice_id) {
function get_action_icon_for_question($in_action, $from_exercice, $in_questionid, $in_questiontype, $in_questionname, $in_selected_course, $in_courseCategoryId, $in_exerciseLevel, $in_answerType, $in_session_id, $in_exercice_id)
{
$res = "";
$getParams = "&selected_course=$in_selected_course&courseCategoryId=$in_courseCategoryId&exerciseId=$in_exercice_id&exerciseLevel=$in_exerciseLevel&answerType=$in_answerType&session_id=$in_session_id";
@ -759,9 +729,12 @@ function get_action_icon_for_question($in_action, $from_exercice, $in_questionid
return $res;
}
/* return the icon for the question type
hubert.borderiou 13-10-2011*/
function get_question_type_for_question($in_selectedcourse, $in_questionid) {
/**
* Return the icon for the question type
* @author hubert.borderiou 13-10-2011
*/
function get_question_type_for_question($in_selectedcourse, $in_questionid)
{
$myObjQuestion = Question::read($in_questionid, $in_selectedcourse);
$questionType = null;
if (!empty($myObjQuestion)) {
@ -774,7 +747,8 @@ function get_question_type_for_question($in_selectedcourse, $in_questionid) {
// return the name of the category for the question in a course
// hubert.borderiou 13-10-2011
function get_question_categorie_for_question($in_courseid, $in_questionid) {
function get_question_categorie_for_question($in_courseid, $in_questionid)
{
$cat = Testcategory::getCategoryNameForQuestion($in_questionid, $in_courseid);
return $cat;
}