/** * @param string $courseCode * @param array $rules * @param array $columns * @param array $column_model * @return array */ public static function getRules($courseCode, &$rules, &$columns, &$column_model, $questionFields, $checkFields = false) { // sessions // course // categories // exercises // difficult // type if (empty($courseCode)) { // Session. $sessionList = SessionManager::get_sessions_by_general_coach(api_get_user_id()); $fields = array(); if (!empty($sessionList)) { $new_options = array(); $new_options[] = "-1:" . get_lang('All'); foreach ($sessionList as $session) { $new_options[] = "{$session['id']}:{$session['name']}"; } $string = implode(';', $new_options); $fields[] = array('field_display_text' => get_lang('Session'), 'field_variable' => 'session_id', 'field_type' => ExtraField::FIELD_TYPE_SELECT, 'field_default_value' => null, 'field_options' => $string); } } else { // $courseList = array(api_get_course_info()); //$courseList = CourseManager::get_course_list_of_user_as_course_admin(api_get_user_id()); } // Courses. $courseList = CourseManager::get_course_list_of_user_as_course_admin(api_get_user_id()); if (!empty($courseList)) { $new_options = array(); $new_options[] = "-1:" . get_lang('All'); foreach ($courseList as $course) { $new_options[] = "{$course['id']}:{$course['title']}"; } $string = implode(';', $new_options); $fields[] = array('field_display_text' => get_lang('Course'), 'field_variable' => 'c_id', 'field_type' => ExtraField::FIELD_TYPE_SELECT, 'field_default_value' => null, 'field_options' => $string); } // Categories. $string = null; if (!empty($courseList)) { $new_options = array(); $new_options[] = "-1:" . get_lang('All'); // Global categories // @todo use tree view $categories = Testcategory::getCategoriesIdAndName(0); if (!empty($categories)) { foreach ($categories as $id => $category) { if (!empty($id)) { $new_options[] = "{$id}:[Global] - " . $category; } } } foreach ($courseList as $course) { $categories = Testcategory::getCategoriesIdAndName($course['real_id']); if (!empty($categories)) { foreach ($categories as $id => $category) { if (!empty($id)) { $new_options[] = "{$id}:" . $course['title'] . " - " . $category; } } } } $string = implode(';', $new_options); $fields[] = array('field_display_text' => get_lang('Category'), 'field_variable' => 'category_id', 'field_type' => ExtraField::FIELD_TYPE_SELECT, 'field_default_value' => null, 'field_options' => $string); } $course = api_get_course_int_id(); $sessionId = api_get_session_id(); // Exercises. $exerciseList = ExerciseLib::get_all_exercises_for_course_id($sessionId, $course); if (!empty($exerciseList)) { $new_options = array(); $new_options[] = "-1:" . get_lang('All'); $new_options[] = "0:" . get_lang('Orphan'); foreach ($exerciseList as $exercise) { $new_options[] = "{$exercise['iid']}:{$exercise['title']}"; } $string = implode(';', $new_options); $fields[] = array('field_display_text' => get_lang('Exercise'), 'field_variable' => 'exercise_id', 'field_type' => ExtraField::FIELD_TYPE_SELECT, 'field_default_value' => null, 'field_options' => $string); } // Question type. $questionList = Question::get_question_type_list(); if (!empty($questionList)) { $new_options = array(); $new_options[] = "-1:" . get_lang('All'); foreach ($questionList as $key => $question) { $new_options[] = "{$key}:" . get_lang($question['1']); } $string = implode(';', $new_options); $fields[] = array('field_display_text' => get_lang('AnswerType'), 'field_variable' => 'question_type', 'field_type' => ExtraField::FIELD_TYPE_SELECT, 'field_default_value' => null, 'field_options' => $string); } // Difficult. $levels = Question::get_default_levels(); if (!empty($levels)) { $new_options = array(); $new_options[] = "-1:" . get_lang('All'); foreach ($levels as $key => $level) { $new_options[] = "{$key}:{$level}"; } $string = implode(';', $new_options); $fields[] = array('field_display_text' => get_lang('Difficulty'), 'field_variable' => 'difficulty', 'field_type' => ExtraField::FIELD_TYPE_SELECT, 'field_default_value' => null, 'field_options' => $string); } $questionFieldsKeys = array(); if (!empty($questionFields)) { foreach ($questionFields as $question) { $questionFieldsKeys[] = $question['field']; } } if (!empty($fields)) { foreach ($fields as $field) { $search_options = array(); $type = 'text'; if (in_array($field['field_type'], array(ExtraField::FIELD_TYPE_SELECT, ExtraField::FIELD_TYPE_DOUBLE_SELECT))) { $type = 'select'; $search_options['sopt'] = array('eq', 'ne'); //equal not equal //$search_options['sopt'] = array('cn', 'nc'); //contains not contains } else { $search_options['sopt'] = array('cn', 'nc'); //contains not contains } $search_options['searchhidden'] = 'true'; $search_options['defaultValue'] = isset($search_options['field_default_value']) ? $search_options['field_default_value'] : null; $search_options['value'] = $field['field_options']; $column_model[] = array('name' => 'question_' . $field['field_variable'], 'index' => 'question_' . $field['field_variable'], 'width' => '100', 'hidden' => 'true', 'search' => 'true', 'stype' => $type, 'searchoptions' => $search_options); $columns[] = $field['field_display_text']; $rules[] = array('field' => 'question_' . $field['field_variable'], 'op' => 'eq'); } } return $rules; }
// Tool introduction Display::display_introduction_section(TOOL_QUIZ); if (!empty($errorXmlExport)) { echo $errorXmlExport; } HotPotGCt($documentPath, 1, $userId); // Only for administrator if ($is_allowedToEdit) { if (!empty($choice)) { // All test choice, clean all test's results if ($choice == 'clean_all_test') { $check = Security::check_token('get'); if ($check) { // list of exercises in a course/session // we got variable $courseId $courseInfo session api_get_session_id() $exerciseList = ExerciseLib::get_all_exercises_for_course_id($courseInfo, api_get_session_id(), $courseId, false); $quantity_results_deleted = 0; foreach ($exerciseList as $exeItem) { // delete result for test, if not in a gradebook $exercise_action_locked = api_resource_is_locked_by_gradebook($exeItem['id'], LINK_EXERCISE); if ($exercise_action_locked == false) { $objExerciseTmp = new Exercise(); if ($objExerciseTmp->read($exeItem['id'])) { $quantity_results_deleted += $objExerciseTmp->clean_results(true); } } } Display::display_confirmation_message(sprintf(get_lang('XResultsCleaned'), $quantity_results_deleted)); } } // single exercise choice
//Redefining table calls $TBL_EXERCICE_QUESTION = Database::get_course_table(TABLE_QUIZ_TEST_QUESTION); $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_CATEGORY); // hub 13-10-2011 $TBL_COURSE_REL_CATEGORY = Database::get_course_table(TABLE_QUIZ_QUESTION_REL_CATEGORY); // hub 13-10-2011 // Get course categories for the selected course // get category list for the course $selected_course $tabCatList = Testcategory::getCategoriesIdAndName($selected_course); $selectCourseCateogry = Display::select('courseCategoryId', $tabCatList, $courseCategoryId, array('class' => 'chzn-select', 'onchange' => 'submit_form(this);'), false); echo Display::form_row(get_lang("QuestionCategory"), $selectCourseCateogry); // Get exercice list for this course $exercise_list = ExerciseLib::get_all_exercises_for_course_id($session_id, $selected_course); //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['iid']] = ""; if ($row['iid'] == $fromExercise && $selected_course == api_get_course_int_id()) { $my_exercise_list[$row['iid']] = "> "; // hub 13-10-2011 } $my_exercise_list[$row['iid']] .= $row['title']; } } if ($exercice_id_changed == 1) {
// Tool introduction Display::display_introduction_section(TOOL_QUIZ); if (!empty($errorXmlExport)) { echo $errorXmlExport; } HotPotGCt($documentPath, 1, $userId); // Only for administrator if ($is_allowedToEdit) { if (!empty($choice)) { // All test choice, clean all test's results if ($choice == 'clean_all_test') { $check = Security::check_token('get'); if ($check) { // list of exercises in a course/session // we got variable $courseId $courseInfo session api_get_session_id() $exerciseList = ExerciseLib::get_all_exercises_for_course_id($courseInfo, $sessionId, $courseId, false); $quantity_results_deleted = 0; foreach ($exerciseList as $exeItem) { // delete result for test, if not in a gradebook $exercise_action_locked = api_resource_is_locked_by_gradebook($exeItem['id'], LINK_EXERCISE); if ($exercise_action_locked == false) { $objExerciseTmp = new Exercise(); if ($objExerciseTmp->read($exeItem['id'])) { $quantity_results_deleted += $objExerciseTmp->clean_results(true); } } } Display::display_confirmation_message(sprintf(get_lang('XResultsCleaned'), $quantity_results_deleted)); } } // single exercise choice