Moving exercise.lib.php to the inc/lib/ folder in order to lazy load the class

skala
Julio Montoya 13 years ago
parent e707fd5c2f
commit 33cd962f07
  1. 1
      main/admin/career_dashboard.php
  2. 1
      main/auth/my_progress.php
  3. 1
      main/exercice/admin.php
  4. 1
      main/exercice/adminhp.php
  5. 5
      main/exercice/exercice.php
  6. 2
      main/exercice/exercise.class.php
  7. 2532
      main/exercice/exercise.lib.php
  8. 1
      main/exercice/exercise_admin.php
  9. 3
      main/exercice/exercise_reminder.php
  10. 3
      main/exercice/exercise_report.php
  11. 11
      main/exercice/exercise_result.php
  12. 7
      main/exercice/exercise_show.php
  13. 16
      main/exercice/exercise_submit.php
  14. 1
      main/exercice/exercise_submit_modal.php
  15. 2
      main/exercice/feedback.php
  16. 3
      main/exercice/hotpotatoes_exercise_report.php
  17. 25
      main/exercice/live_stats.php
  18. 5
      main/exercice/overview.php
  19. 2
      main/exercice/question_list_admin.inc.php
  20. 5
      main/exercice/question_pool.php
  21. 8
      main/exercice/result.php
  22. 13
      main/exercice/stats.php
  23. 12
      main/exercice/testcategory.class.php
  24. 1
      main/exercice/tests_category.php
  25. 3
      main/inc/ajax/exercise.ajax.php
  26. 10
      main/inc/ajax/model.ajax.php
  27. 15
      main/inc/lib/events.lib.inc.php
  28. 2535
      main/inc/lib/exercise.lib.php
  29. 3
      main/inc/lib/page.lib.php
  30. 40
      main/inc/lib/tracking.lib.php
  31. 5
      main/newscorm/learnpath_functions.inc.php
  32. 12
      main/newscorm/lp_stats.php
  33. 13
      main/session/index.php
  34. 1
      main/tracking/courseLog.php
  35. 1
      main/tracking/course_log_resources.php
  36. 1
      main/tracking/course_log_tools.php
  37. 2
      main/tracking/course_session_report.php
  38. 2
      main/tracking/lp_results_by_user.php
  39. 2
      main/tracking/question_course_report.php
  40. 5
      tests/datafiller/fill_exe.php
  41. 1
      tests/test_manager.inc.php
  42. 2
      vendor/autoload.php
  43. 1
      vendor/composer/autoload_classmap.php
  44. 6
      vendor/composer/autoload_real.php

@ -14,7 +14,6 @@ $cidReset = true;
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
$libpath = api_get_path(LIBRARY_PATH); $libpath = api_get_path(LIBRARY_PATH);
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.class.php'; require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.class.php';
api_protect_admin_script(); api_protect_admin_script();

@ -12,7 +12,6 @@ $language_file = array('registration', 'tracking', 'exercice', 'admin', 'learnpa
$cidReset = true; $cidReset = true;
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
$this_section = SECTION_TRACKING; $this_section = SECTION_TRACKING;

@ -58,7 +58,6 @@ require_once 'answer.class.php';
$language_file = 'exercice'; $language_file = 'exercice';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
$current_course_tool = TOOL_QUIZ; $current_course_tool = TOOL_QUIZ;
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;

@ -16,7 +16,6 @@ require_once 'answer.class.php';
$language_file='exercice'; $language_file='exercice';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
$this_section=SECTION_COURSES; $this_section=SECTION_COURSES;

@ -35,7 +35,6 @@ api_protect_course_script(true);
// including additional libraries // including additional libraries
require_once 'exercise.class.php'; require_once 'exercise.class.php';
require_once 'exercise.lib.php';
require_once 'question.class.php'; require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
require_once 'hotpotatoes.lib.php'; require_once 'hotpotatoes.lib.php';
@ -811,7 +810,7 @@ if (!empty($exercise_list)) {
if ($num > 0) { if ($num > 0) {
$row_track = Database :: fetch_array($qryres); $row_track = Database :: fetch_array($qryres);
$attempt_text = get_lang('LatestAttempt').' : '; $attempt_text = get_lang('LatestAttempt').' : ';
$attempt_text .= show_score($row_track['exe_result'], $row_track['exe_weighting']); $attempt_text .= ExerciseLib::show_score($row_track['exe_result'], $row_track['exe_weighting']);
} else { } else {
//No attempts //No attempts
$attempt_text = get_lang('NotAttempted'); $attempt_text = get_lang('NotAttempted');
@ -852,7 +851,7 @@ if (!empty($exercise_list)) {
if ($num > 0) { if ($num > 0) {
$row_track = Database :: fetch_array($qryres); $row_track = Database :: fetch_array($qryres);
$attempt_text = get_lang('LatestAttempt').' : '; $attempt_text = get_lang('LatestAttempt').' : ';
$attempt_text .= show_score($row_track['exe_result'], $row_track['exe_weighting']); $attempt_text .= ExerciseLib::show_score($row_track['exe_result'], $row_track['exe_weighting']);
} else { } else {
$attempt_text = get_lang('NotAttempted'); $attempt_text = get_lang('NotAttempted');
} }

@ -4431,7 +4431,7 @@ class Exercise
public function get_exercise_result($exe_id) public function get_exercise_result($exe_id)
{ {
$result = array(); $result = array();
$track_exercise_info = get_exercise_track_exercise_info($exe_id); $track_exercise_info = ExerciseLib::get_exercise_track_exercise_info($exe_id);
if (!empty($track_exercise_info)) { if (!empty($track_exercise_info)) {
$objExercise = new Exercise(); $objExercise = new Exercise();
$objExercise->read($track_exercise_info['exe_exo_id']); $objExercise->read($track_exercise_info['exe_exo_id']);

File diff suppressed because it is too large Load Diff

@ -20,7 +20,6 @@ require_once 'exercise.class.php';
require_once 'question.class.php'; require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;
if (!api_is_allowed_to_edit(null,true)) { if (!api_is_allowed_to_edit(null,true)) {

@ -15,7 +15,6 @@ require_once 'answer.class.php';
$language_file = 'exercice'; $language_file = 'exercice';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
if ($_GET['origin'] == 'learnpath') { if ($_GET['origin'] == 'learnpath') {
require_once '../newscorm/learnpath.class.php'; require_once '../newscorm/learnpath.class.php';
@ -52,7 +51,7 @@ if (!$objExercise) {
} }
$time_control = false; $time_control = false;
$clock_expired_time = get_session_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id); $clock_expired_time = ExerciseLib::get_session_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id);
if ($objExercise->expired_time != 0 && !empty($clock_expired_time)) { if ($objExercise->expired_time != 0 && !empty($clock_expired_time)) {
$time_control = true; $time_control = true;

@ -29,7 +29,6 @@ api_protect_course_script(true, false, true);
// including additional libraries // including additional libraries
require_once 'exercise.class.php'; require_once 'exercise.class.php';
require_once 'exercise.lib.php';
require_once 'question.class.php'; require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
require_once 'hotpotatoes.lib.php'; require_once 'hotpotatoes.lib.php';
@ -118,7 +117,7 @@ if (isset($_REQUEST['comments']) && $_REQUEST['comments'] == 'update' && ($is_al
) )
) { ) {
$id = intval($_GET['exeid']); //filtered by post-condition $id = intval($_GET['exeid']); //filtered by post-condition
$track_exercise_info = get_exercise_track_exercise_info($id); $track_exercise_info = ExerciseLib::get_exercise_track_exercise_info($id);
if (empty($track_exercise_info)) { if (empty($track_exercise_info)) {
api_not_allowed(); api_not_allowed();
} }

@ -27,7 +27,6 @@ require_once 'answer.class.php';
$language_file = 'exercice'; $language_file = 'exercice';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
if ($_GET['origin'] == 'learnpath') { if ($_GET['origin'] == 'learnpath') {
require_once '../newscorm/learnpath.class.php'; require_once '../newscorm/learnpath.class.php';
@ -140,20 +139,20 @@ if ($objExercise->selectAttempts() > 0) {
Display :: display_normal_message(get_lang('Saved').'<br />', false); Display :: display_normal_message(get_lang('Saved').'<br />', false);
//Display questions //Display questions
display_question_list_by_attempt($objExercise, $exe_id, true); ExerciseLib::display_question_list_by_attempt($objExercise, $exe_id, true);
//If is not valid //If is not valid
$session_control_key = get_session_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id); $session_control_key = ExerciseLib::get_session_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id);
if (isset($session_control_key) && !exercise_time_control_is_valid($objExercise->id, $learnpath_id, $learnpath_item_id)) { if (isset($session_control_key) && !ExerciseLib::exercise_time_control_is_valid($objExercise->id, $learnpath_id, $learnpath_item_id)) {
$TBL_TRACK_ATTEMPT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT); $TBL_TRACK_ATTEMPT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
$sql_fraud = "UPDATE $TBL_TRACK_ATTEMPT SET answer = 0, marks = 0, position = 0 WHERE exe_id = $exe_id "; $sql_fraud = "UPDATE $TBL_TRACK_ATTEMPT SET answer = 0, marks = 0, position = 0 WHERE exe_id = $exe_id ";
Database::query($sql_fraud); Database::query($sql_fraud);
} }
//Unset session for clock time //Unset session for clock time
exercise_time_control_delete($objExercise->id, $learnpath_id, $learnpath_item_id); ExerciseLib::exercise_time_control_delete($objExercise->id, $learnpath_id, $learnpath_item_id);
delete_chat_exercise_session($exe_id); ExerciseLib::delete_chat_exercise_session($exe_id);
if ($origin != 'learnpath') { if ($origin != 'learnpath') {
echo '<hr>'; echo '<hr>';

@ -24,7 +24,6 @@ require_once 'exercise.class.php';
require_once 'question.class.php'; //also defines answer type constants require_once 'question.class.php'; //also defines answer type constants
require_once 'answer.class.php'; require_once 'answer.class.php';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
if (empty($origin) ) { if (empty($origin) ) {
$origin = isset($_REQUEST['origin']) ? $_REQUEST['origin'] : null; $origin = isset($_REQUEST['origin']) ? $_REQUEST['origin'] : null;
@ -72,7 +71,7 @@ if (api_is_course_session_coach(api_get_user_id(), api_get_course_int_id(), api_
$is_allowedToEdit = api_is_allowed_to_edit(null,true) || $is_courseTutor || api_is_session_admin() || api_is_drh(); $is_allowedToEdit = api_is_allowed_to_edit(null,true) || $is_courseTutor || api_is_session_admin() || api_is_drh();
//Getting results from the exe_id. This variable also contain all the information about the exercise //Getting results from the exe_id. This variable also contain all the information about the exercise
$track_exercise_info = get_exercise_track_exercise_info($id); $track_exercise_info = ExerciseLib::get_exercise_track_exercise_info($id);
//No track info //No track info
if (empty($track_exercise_info)) { if (empty($track_exercise_info)) {
@ -618,7 +617,7 @@ foreach ($questionList as $questionId) {
$score = array(); $score = array();
if ($show_results) { if ($show_results) {
$score['result'] = get_lang('Score')." : ".show_score($my_total_score, $my_total_weight, false, false); $score['result'] = get_lang('Score')." : ".ExerciseLib::show_score($my_total_score, $my_total_weight, false, false);
$score['pass'] = $my_total_score >= $my_total_weight ? true : false; $score['pass'] = $my_total_score >= $my_total_weight ? true : false;
$score['type'] = $answerType; $score['type'] = $answerType;
$score['score'] = $my_total_score; $score['score'] = $my_total_score;
@ -666,7 +665,7 @@ if ($origin!='learnpath' || ($origin == 'learnpath' && isset($_GET['fb_type'])))
if ($objExercise->selectPropagateNeg() == 0 && $my_total_score_temp < 0) { if ($objExercise->selectPropagateNeg() == 0 && $my_total_score_temp < 0) {
$my_total_score_temp = 0; $my_total_score_temp = 0;
} }
$total_score_text .= get_question_ribbon($objExercise, $my_total_score_temp, $totalWeighting, true); $total_score_text .= ExerciseLib::get_question_ribbon($objExercise, $my_total_score_temp, $totalWeighting, true);
$total_score_text .= '</div>'; $total_score_text .= '</div>';
} }
} }

@ -39,7 +39,6 @@ $language_file = 'exercice';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
$current_course_tool = TOOL_QUIZ; $current_course_tool = TOOL_QUIZ;
require_once 'exercise.lib.php';
$nameTools = get_lang('Quiz'); $nameTools = get_lang('Quiz');
@ -427,7 +426,7 @@ if ($objExercise->expired_time != 0) {
} }
//Generating the time control key for the user //Generating the time control key for the user
$current_expired_time_key = get_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id); $current_expired_time_key = ExerciseLib::get_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id);
if ($debug) error_log("4. current_expired_time_key: $current_expired_time_key "); if ($debug) error_log("4. current_expired_time_key: $current_expired_time_key ");
$_SESSION['duration_time'][$current_expired_time_key] = $current_timestamp; $_SESSION['duration_time'][$current_expired_time_key] = $current_timestamp;
@ -469,7 +468,7 @@ if ($objExercise->selectAttempts() > 0) {
$attempt_html .= Display::div(get_lang('Score').' '.$marks, array('id'=>'question_score')); $attempt_html .= Display::div(get_lang('Score').' '.$marks, array('id'=>'question_score'));
} }
} }
$score = show_score($last_attempt_info['exe_result'], $last_attempt_info['exe_weighting']); $score = ExerciseLib::show_score($last_attempt_info['exe_result'], $last_attempt_info['exe_weighting']);
$attempt_html .= Display::div(get_lang('YourTotalScore').' '.$score, array('id'=>'question_score')); $attempt_html .= Display::div(get_lang('YourTotalScore').' '.$score, array('id'=>'question_score'));
} else { } else {
$attempt_html .= Display::return_message(sprintf(get_lang('ReachedMaxAttempts'), $exercise_title, $objExercise->selectAttempts()), 'warning', false); $attempt_html .= Display::return_message(sprintf(get_lang('ReachedMaxAttempts'), $exercise_title, $objExercise->selectAttempts()), 'warning', false);
@ -557,7 +556,7 @@ if (empty($exercise_stat_info)) {
} }
//Array to check in order to block the chat //Array to check in order to block the chat
create_chat_exercise_session($exe_id); ExerciseLib::create_chat_exercise_session($exe_id);
if ($debug) { error_log('6. $objExercise->get_stat_track_exercise_info function called:: '.print_r($exercise_stat_info, 1)); }; if ($debug) { error_log('6. $objExercise->get_stat_track_exercise_info function called:: '.print_r($exercise_stat_info, 1)); };
@ -741,7 +740,7 @@ if ($formSent && isset($_POST)) {
//Time control is only enabled for ONE PER PAGE //Time control is only enabled for ONE PER PAGE
if (!empty($exe_id) && is_numeric($exe_id)) { if (!empty($exe_id) && is_numeric($exe_id)) {
//Verify if the current test is fraudulent //Verify if the current test is fraudulent
if (exercise_time_control_is_valid($exerciseId, $learnpath_id, $learnpath_item_id)) { if (ExerciseLib::exercise_time_control_is_valid($exerciseId, $learnpath_id, $learnpath_item_id)) {
$sql_exe_result = ""; $sql_exe_result = "";
if ($debug) { error_log('exercise_time_control_is_valid is valid'); } if ($debug) { error_log('exercise_time_control_is_valid is valid'); }
} else { } else {
@ -800,7 +799,7 @@ if ($question_count != 0) {
//Time control is only enabled for ONE PER PAGE //Time control is only enabled for ONE PER PAGE
if (!empty($exe_id) && is_numeric($exe_id)) { if (!empty($exe_id) && is_numeric($exe_id)) {
//Verify if the current test is fraudulent //Verify if the current test is fraudulent
$check = exercise_time_control_is_valid($exerciseId, $learnpath_id, $learnpath_item_id); $check = ExerciseLib::exercise_time_control_is_valid($exerciseId, $learnpath_id, $learnpath_item_id);
if ($check) { if ($check) {
$sql_exe_result = ""; $sql_exe_result = "";
@ -875,7 +874,10 @@ if ($objExercise->type == ONE_PER_PAGE) {
$conditions[] = array("class" => 'remind', 'items' => $my_remind_list); $conditions[] = array("class" => 'remind', 'items' => $my_remind_list);
$conditions[] = array("class" => 'answered', 'items' => $exercise_result); $conditions[] = array("class" => 'answered', 'items' => $exercise_result);
$link = api_get_self().'?'.$params.'&num='; $link = api_get_self().'?'.$params.'&num=';
//$category_list = Testcategory::getListOfCategoriesNameForTest($objExercise->id, false);
echo Display::progress_pagination_bar($questionList, $current_question, $conditions, $link); echo Display::progress_pagination_bar($questionList, $current_question, $conditions, $link);
//var_dump($category_list);
} }
$is_visible_return = $objExercise->is_visible($learnpath_id, $learnpath_item_id, $learnpath_item_view_id); $is_visible_return = $objExercise->is_visible($learnpath_id, $learnpath_item_id, $learnpath_item_view_id);
@ -1359,7 +1361,7 @@ function render_question($objExercise, $questionId, $attempt_list, $remind_list,
echo '<div id="question_div_'.$questionId.'" class="main_question '.$remind_highlight.'" >'; echo '<div id="question_div_'.$questionId.'" class="main_question '.$remind_highlight.'" >';
// Shows the question + possible answers // Shows the question + possible answers
showQuestion($question_obj, false, $origin, $i, true, false, $user_choice, false); ExerciseLib::showQuestion($question_obj, false, $origin, $i, true, false, $user_choice, false);
// Button save and continue // Button save and continue
switch ($objExercise->type) { switch ($objExercise->type) {

@ -23,7 +23,6 @@ $dbg_local = 0;
require_once 'exercise.class.php'; require_once 'exercise.class.php';
require_once 'question.class.php'; require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
require_once 'exercise.lib.php';
if (empty ($exerciseResult)) { if (empty ($exerciseResult)) {
$exerciseResult = $_SESSION['exerciseResult']; $exerciseResult = $_SESSION['exerciseResult'];

@ -14,8 +14,6 @@ include('exercise.class.php');
include('question.class.php'); include('question.class.php');
include('answer.class.php'); include('answer.class.php');
include('exercise.lib.php');
// name of the language file that needs to be included // name of the language file that needs to be included
$language_file = 'exercice'; $language_file = 'exercice';

@ -27,7 +27,6 @@ api_protect_course_script(true, false, true);
// including additional libraries // including additional libraries
require_once 'exercise.class.php'; require_once 'exercise.class.php';
require_once 'exercise.lib.php';
require_once 'question.class.php'; require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
require_once 'hotpotatoes.lib.php'; require_once 'hotpotatoes.lib.php';
@ -97,7 +96,7 @@ if (!empty($_REQUEST['export_report']) && $_REQUEST['export_report'] == '1') {
//Send student email @todo move this code in a class, library //Send student email @todo move this code in a class, library
//if ($_REQUEST['comments'] == 'update' && ($is_allowedToEdit || $is_tutor) && $_GET['exeid']== strval(intval($_GET['exeid']))) { //if ($_REQUEST['comments'] == 'update' && ($is_allowedToEdit || $is_tutor) && $_GET['exeid']== strval(intval($_GET['exeid']))) {
// $id = intval($_GET['exeid']); //filtered by post-condition // $id = intval($_GET['exeid']); //filtered by post-condition
// $track_exercise_info = get_exercise_track_exercise_info($id); // $track_exercise_info = ExerciseLib::get_exercise_track_exercise_info($id);
// if (empty($track_exercise_info)) { // if (empty($track_exercise_info)) {
// api_not_allowed(); // api_not_allowed();
// } // }

@ -6,7 +6,6 @@ require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
$language_file = array('exercice','tracking'); $language_file = array('exercice','tracking');
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;
$exercise_id = (isset($_GET['exerciseId']) && !empty($_GET['exerciseId'])) ? intval($_GET['exerciseId']) : 0; $exercise_id = (isset($_GET['exerciseId']) && !empty($_GET['exerciseId'])) ? intval($_GET['exerciseId']) : 0;
@ -21,8 +20,8 @@ $objExercise = new Exercise();
$result = $objExercise->read($exercise_id); $result = $objExercise->read($exercise_id);
if (!$result) { if (!$result) {
api_not_allowed(true); api_not_allowed(true);
} }
$interbreadcrumb[] = array ("url" => "exercice.php?gradebook=$gradebook", "name" => get_lang('Exercices')); $interbreadcrumb[] = array ("url" => "exercice.php?gradebook=$gradebook", "name" => get_lang('Exercices'));
$interbreadcrumb[] = array ("url" => "admin.php?exerciseId=$exercise_id","name" => $objExercise->name); $interbreadcrumb[] = array ("url" => "admin.php?exerciseId=$exercise_id","name" => $objExercise->name);
@ -38,7 +37,7 @@ Display::display_header(get_lang('StudentsWhoAreTakingTheExerciseRightNow'));
$minutes = 60; $minutes = 60;
$url = api_get_path(WEB_AJAX_PATH).'exercise.ajax.php?a=get_live_stats&exercise_id='.$objExercise->id.'&minutes='.$minutes; $url = api_get_path(WEB_AJAX_PATH).'exercise.ajax.php?a=get_live_stats&exercise_id='.$objExercise->id.'&minutes='.$minutes;
//The order is important you need to check the the $column variable in the model.ajax.php file //The order is important you need to check the the $column variable in the model.ajax.php file
$columns = array(get_lang('FirstName'), get_lang('LastName'), get_lang('Time'), get_lang('QuestionsAlreadyAnswered'), get_lang('Score')); $columns = array(get_lang('FirstName'), get_lang('LastName'), get_lang('Time'), get_lang('QuestionsAlreadyAnswered'), get_lang('Score'));
//Column config //Column config
@ -48,20 +47,20 @@ $column_model = array(
array('name'=>'start_date', 'index'=>'start_date', 'width'=>'100', 'align'=>'left'), array('name'=>'start_date', 'index'=>'start_date', 'width'=>'100', 'align'=>'left'),
array('name'=>'question', 'index'=>'count_questions', 'width'=>'60', 'align'=>'left', 'sortable'=>'false'), array('name'=>'question', 'index'=>'count_questions', 'width'=>'60', 'align'=>'left', 'sortable'=>'false'),
array('name'=>'score', 'index'=>'score', 'width'=>'50', 'align'=>'left','sortable'=>'false'), array('name'=>'score', 'index'=>'score', 'width'=>'50', 'align'=>'left','sortable'=>'false'),
); );
//Autowidth //Autowidth
$extra_params['autowidth'] = 'true'; $extra_params['autowidth'] = 'true';
//height auto //height auto
$extra_params['height'] = 'auto'; $extra_params['height'] = 'auto';
/* /*
//With this function we can add actions to the jgrid (edit, delete, etc) //With this function we can add actions to the jgrid (edit, delete, etc)
$action_links = 'function action_formatter(cellvalue, options, rowObject) { $action_links = 'function action_formatter(cellvalue, options, rowObject) {
return \'<a href="?action=edit&id=\'+options.rowId+\'">'.Display::return_icon('edit.png',get_lang('Edit'),'',ICON_SIZE_SMALL).'</a>'. return \'<a href="?action=edit&id=\'+options.rowId+\'">'.Display::return_icon('edit.png',get_lang('Edit'),'',ICON_SIZE_SMALL).'</a>'.
'&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;" href="?action=copy&id=\'+options.rowId+\'">'.Display::return_icon('copy.png',get_lang('Copy'),'',ICON_SIZE_SMALL).'</a>'. '&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;" href="?action=copy&id=\'+options.rowId+\'">'.Display::return_icon('copy.png',get_lang('Copy'),'',ICON_SIZE_SMALL).'</a>'.
'&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;" href="?action=delete&id=\'+options.rowId+\'">'.Display::return_icon('delete.png',get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>'. '&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES))."\'".')) return false;" href="?action=delete&id=\'+options.rowId+\'">'.Display::return_icon('delete.png',get_lang('Delete'),'',ICON_SIZE_SMALL).'</a>'.
'\'; '\';
}'; }';
*/ */
?> ?>
<script> <script>
@ -72,8 +71,8 @@ function refreshGrid() {
} }
$(function() { $(function() {
<?php <?php
echo Display::grid_js('live_stats', $url, $columns, $column_model, $extra_params, array(), $action_links,true); echo Display::grid_js('live_stats', $url, $columns, $column_model, $extra_params, array(), $action_links,true);
?> ?>
refreshGrid(); refreshGrid();
}); });
@ -85,6 +84,6 @@ echo $actions = Display::div($actions, array('class'=> 'actions'));
//echo Display::page_header($objExercise->name); //echo Display::page_header($objExercise->name);
//echo Display::page_header(get_lang('StudentsWhoAreTakingTheExerciseRightNow')); //echo Display::page_header(get_lang('StudentsWhoAreTakingTheExerciseRightNow'));
echo Display::grid_html('live_stats'); echo Display::grid_html('live_stats');
Display::display_footer(); Display::display_footer();

@ -15,7 +15,6 @@ use \ChamiloSession as Session;
$language_file = 'exercice'; $language_file = 'exercice';
require_once 'exercise.class.php'; require_once 'exercise.class.php';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
$current_course_tool = TOOL_QUIZ; $current_course_tool = TOOL_QUIZ;
// Clear the exercise session just in case // Clear the exercise session just in case
@ -45,7 +44,7 @@ $interbreadcrumb[] = array ("url" => "exercice.php?gradebook=$gradebook", "name"
$interbreadcrumb[] = array ("url" => "#","name" => $objExercise->name); $interbreadcrumb[] = array ("url" => "#","name" => $objExercise->name);
$time_control = false; $time_control = false;
$clock_expired_time = get_session_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id); $clock_expired_time = ExerciseLib::get_session_time_control_key($objExercise->id, $learnpath_id, $learnpath_item_id);
if ($objExercise->expired_time != 0 && !empty($clock_expired_time)) { if ($objExercise->expired_time != 0 && !empty($clock_expired_time)) {
$time_control = true; $time_control = true;
@ -146,7 +145,7 @@ if (!empty($attempts)) {
$i = $counter; $i = $counter;
foreach ($attempts as $attempt_result) { foreach ($attempts as $attempt_result) {
$score = show_score($attempt_result['exe_result'], $attempt_result['exe_weighting']); $score = ExerciseLib::show_score($attempt_result['exe_result'], $attempt_result['exe_weighting']);
$attempt_url = api_get_path(WEB_CODE_PATH).'exercice/result.php?'.api_get_cidreq().'&amp;id='.$attempt_result['exe_id'].'&amp;id_session='.api_get_session_id().'&amp;height=500&amp;width=950'.$url_suffix; $attempt_url = api_get_path(WEB_CODE_PATH).'exercice/result.php?'.api_get_cidreq().'&amp;id='.$attempt_result['exe_id'].'&amp;id_session='.api_get_session_id().'&amp;height=500&amp;width=950'.$url_suffix;
$attempt_link = Display::url(get_lang('Show'), $attempt_url, array('class'=>$btn_class.'btn')); $attempt_link = Display::url(get_lang('Show'), $attempt_url, array('class'=>$btn_class.'btn'));

@ -235,7 +235,7 @@ if (!$inATest) {
echo '<br />'; echo '<br />';
//echo get_lang('Level').': '.$objQuestionTmp->selectLevel(); //echo get_lang('Level').': '.$objQuestionTmp->selectLevel();
echo '<br />'; echo '<br />';
showQuestion($objQuestionTmp, false, null, null, false, true, false, true, $objExercise->feedback_type, true); ExerciseLib::showQuestion($objQuestionTmp, false, null, null, false, true, false, true, $objExercise->feedback_type, true);
echo '</p>'; echo '</p>';
echo '</div>'; echo '</div>';
echo '</div>'; echo '</div>';

@ -23,7 +23,6 @@ require_once 'exercise.class.php';
require_once 'question.class.php'; require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;
@ -298,7 +297,7 @@ echo Display::form_row(get_lang("QuestionCategory"), $selectCourseCateogry);
// Get exercice list for this course // Get exercice list for this course
$exercise_list = get_all_exercises_for_course_id($course_info, $session_id, $selected_course); $exercise_list = ExerciseLib::get_all_exercises_for_course_id($course_info, $session_id, $selected_course);
//Exercise List //Exercise List
$my_exercise_list = array(); $my_exercise_list = array();
$my_exercise_list['0'] = get_lang('AllExercises'); $my_exercise_list['0'] = get_lang('AllExercises');
@ -472,7 +471,7 @@ if ($exerciseId > 0) {
continue; continue;
} }
} }
$exercise_list = get_all_exercises($course_item, $session_id); $exercise_list = ExerciseLib::get_all_exercises($course_item, $session_id);
if (!empty($exercise_list)) { if (!empty($exercise_list)) {
foreach ($exercise_list as $exercise) { foreach ($exercise_list as $exercise) {
$my_exercise = new Exercise($course_item['id']); $my_exercise = new Exercise($course_item['id']);

@ -17,9 +17,7 @@ $language_file = array('exercice');
require_once 'exercise.class.php'; require_once 'exercise.class.php';
require_once 'question.class.php'; require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
if (empty($origin)) { if (empty($origin)) {
$origin = isset($_REQUEST['origin']) ? $_REQUEST['origin'] : null; $origin = isset($_REQUEST['origin']) ? $_REQUEST['origin'] : null;
@ -37,10 +35,10 @@ if (empty($id)) {
api_not_allowed($show_headers); api_not_allowed($show_headers);
} }
$is_allowedToEdit = api_is_allowed_to_edit(null,true) || $is_courseTutor; $is_allowedToEdit = api_is_allowed_to_edit(null,true) || $is_courseTutor;
//Getting results from the exe_id. This variable also contain all the information about the exercise //Getting results from the exe_id. This variable also contain all the information about the exercise
$track_exercise_info = get_exercise_track_exercise_info($id); $track_exercise_info = ExerciseLib::get_exercise_track_exercise_info($id);
//No track info //No track info
if (empty($track_exercise_info)) { if (empty($track_exercise_info)) {
@ -73,6 +71,6 @@ if ($show_headers) {
Display::display_reduced_header(); Display::display_reduced_header();
} }
display_question_list_by_attempt($objExercise, $id, false); ExerciseLib::display_question_list_by_attempt($objExercise, $id, false);
Display::display_footer(); Display::display_footer();

@ -6,7 +6,6 @@ require_once 'question.class.php';
require_once 'answer.class.php'; require_once 'answer.class.php';
$language_file = array('exercice', 'tracking'); $language_file = array('exercice', 'tracking');
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;
$exercise_id = (isset($_GET['exerciseId']) && !empty($_GET['exerciseId'])) ? intval($_GET['exerciseId']) : 0; $exercise_id = (isset($_GET['exerciseId']) && !empty($_GET['exerciseId'])) ? intval($_GET['exerciseId']) : 0;
@ -45,8 +44,8 @@ $headers = array(
if (!empty($question_list)) { if (!empty($question_list)) {
foreach ($question_list as $question_id) { foreach ($question_list as $question_id) {
$question_obj = Question::read($question_id); $question_obj = Question::read($question_id);
$exercise_stats = get_student_stats_by_question($question_id, $exercise_id, api_get_course_int_id(), api_get_session_id()); $exercise_stats = ExerciseLib::get_student_stats_by_question($question_id, $exercise_id, api_get_course_int_id(), api_get_session_id());
$count_users = get_number_students_question_with_answer_count($question_id, $exercise_id, api_get_course_int_id(), api_get_session_id()); $count_users = ExerciseLib::get_number_students_question_with_answer_count($question_id, $exercise_id, api_get_course_int_id(), api_get_session_id());
$data[$question_id]['name'] = Text::cut($question_obj->question, 100); $data[$question_id]['name'] = Text::cut($question_obj->question, 100);
$data[$question_id]['type'] = $question_obj->get_question_type_name(); $data[$question_id]['type'] = $question_obj->get_question_type_name();
@ -134,7 +133,7 @@ if (!empty($question_list)) {
$data[$id]['correct'] = '-'; $data[$id]['correct'] = '-';
$count = get_number_students_answer_count($real_answer_id, $question_id, $exercise_id, api_get_course_int_id(), api_get_session_id(), FILL_IN_BLANKS, $answer_info_db, $answer_item); $count = ExerciseLib::get_number_students_answer_count($real_answer_id, $question_id, $exercise_id, api_get_course_int_id(), api_get_session_id(), FILL_IN_BLANKS, $answer_info_db, $answer_item);
$percentange = 0; $percentange = 0;
if (!empty($count_students)) { if (!empty($count_students)) {
@ -165,7 +164,7 @@ if (!empty($question_list)) {
$data[$id]['answer'] = $correct; $data[$id]['answer'] = $correct;
$data[$id]['correct'] = $answer_info; $data[$id]['correct'] = $answer_info;
$count = get_number_students_answer_count($answer_id, $question_id, $exercise_id, api_get_course_int_id(), api_get_session_id(), MATCHING); $count = ExerciseLib::get_number_students_answer_count($answer_id, $question_id, $exercise_id, api_get_course_int_id(), api_get_session_id(), MATCHING);
$percentange = 0; $percentange = 0;
if (!empty($count_students)) { if (!empty($count_students)) {
$percentange = $count/$count_students*100; $percentange = $count/$count_students*100;
@ -182,7 +181,7 @@ if (!empty($question_list)) {
$data[$id]['answer'] = $answer_info; $data[$id]['answer'] = $answer_info;
$data[$id]['correct'] = '-'; $data[$id]['correct'] = '-';
$count = get_number_students_answer_hotspot_count($answer_id, $question_id, $exercise_id, api_get_course_int_id(), api_get_session_id()); $count = ExerciseLib::get_number_students_answer_hotspot_count($answer_id, $question_id, $exercise_id, api_get_course_int_id(), api_get_session_id());
$percentange = 0; $percentange = 0;
if (!empty($count_students)) { if (!empty($count_students)) {
$percentange = $count/$count_students*100; $percentange = $count/$count_students*100;
@ -198,7 +197,7 @@ if (!empty($question_list)) {
$data[$id]['answer'] = $answer_info; $data[$id]['answer'] = $answer_info;
$data[$id]['correct'] = $correct_answer; $data[$id]['correct'] = $correct_answer;
$count = get_number_students_answer_count($real_answer_id, $question_id, $exercise_id, api_get_course_int_id(), api_get_session_id()); $count = ExerciseLib::get_number_students_answer_count($real_answer_id, $question_id, $exercise_id, api_get_course_int_id(), api_get_session_id());
$percentange = 0; $percentange = 0;
if (!empty($count_students)) { if (!empty($count_students)) {
$percentange = $count/$count_students*100; $percentange = $count/$count_students*100;

@ -893,8 +893,8 @@ class Testcategory
foreach ($globalCategoryScore as $category_item) { foreach ($globalCategoryScore as $category_item) {
$table->setCellContents($row, 0, $category_item['title']); $table->setCellContents($row, 0, $category_item['title']);
$table->setCellContents($row, 1, show_score($category_item['score'], $category_item['total'], false)); $table->setCellContents($row, 1, ExerciseLib::show_score($category_item['score'], $category_item['total'], false));
$table->setCellContents($row, 2, show_score($category_item['score'], $category_item['total'], true, false, true)); $table->setCellContents($row, 2, ExerciseLib::show_score($category_item['score'], $category_item['total'], true, false, true));
$class = 'class="row_odd"'; $class = 'class="row_odd"';
if ($row % 2) { if ($row % 2) {
@ -907,15 +907,15 @@ class Testcategory
if (!empty($none_category)) { if (!empty($none_category)) {
$table->setCellContents($row, 0, get_lang('None')); $table->setCellContents($row, 0, get_lang('None'));
$table->setCellContents($row, 1, show_score($none_category['score'], $none_category['total'], false)); $table->setCellContents($row, 1, ExerciseLib::show_score($none_category['score'], $none_category['total'], false));
$table->setCellContents($row, 2, show_score($none_category['score'], $none_category['total'], true, false, true)); $table->setCellContents($row, 2, ExerciseLib::show_score($none_category['score'], $none_category['total'], true, false, true));
$row++; $row++;
} }
if (!empty($total)) { if (!empty($total)) {
$table->setCellContents($row, 0, get_lang('Total')); $table->setCellContents($row, 0, get_lang('Total'));
$table->setCellContents($row, 1, show_score($total['score'], $total['total'], false)); $table->setCellContents($row, 1, ExerciseLib::show_score($total['score'], $total['total'], false));
$table->setCellContents($row, 2, show_score($total['score'], $total['total'], true, false, true)); $table->setCellContents($row, 2, ExerciseLib::show_score($total['score'], $total['total'], true, false, true));
$table->setRowAttributes($row, 'class="row_total"', true); $table->setRowAttributes($row, 'class="row_total"', true);
} }

@ -11,7 +11,6 @@ $language_file = 'exercice';
$nameTools = ""; $nameTools = "";
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once 'exercise.lib.php';
require_once 'question.class.php'; require_once 'question.class.php';
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;

@ -8,7 +8,6 @@ require_once '../../exercice/exercise.class.php';
require_once '../../exercice/question.class.php'; require_once '../../exercice/question.class.php';
require_once '../../exercice/answer.class.php'; require_once '../../exercice/answer.class.php';
require_once '../global.inc.php'; require_once '../global.inc.php';
require_once '../../exercice/exercise.lib.php';
api_protect_course_script(true); api_protect_course_script(true);
@ -399,7 +398,7 @@ switch ($action) {
$exercise_stat_info = $objExercise->get_stat_track_exercise_info_by_exe_id($exe_id); $exercise_stat_info = $objExercise->get_stat_track_exercise_info_by_exe_id($exe_id);
} }
$key = get_time_control_key($exercise_id, $exercise_stat_info['orig_lp_id'], $exercise_stat_info['orig_lp_item_id']); $key = ExerciseLib::get_time_control_key($exercise_id, $exercise_stat_info['orig_lp_id'], $exercise_stat_info['orig_lp_item_id']);
if (isset($_SESSION['duration_time'][$key]) && !empty($_SESSION['duration_time'][$key])) { if (isset($_SESSION['duration_time'][$key]) && !empty($_SESSION['duration_time'][$key])) {
$duration = $now - $_SESSION['duration_time'][$key]; $duration = $now - $_SESSION['duration_time'][$key];

@ -224,7 +224,6 @@ switch ($action) {
$count = get_count_work($work_id); $count = get_count_work($work_id);
break; break;
case 'get_exercise_results': case 'get_exercise_results':
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
$exercise_id = $_REQUEST['exerciseId']; $exercise_id = $_REQUEST['exerciseId'];
if (isset($_GET['filter_by_user']) && !empty($_GET['filter_by_user'])) { if (isset($_GET['filter_by_user']) && !empty($_GET['filter_by_user'])) {
$filter_user = intval($_GET['filter_by_user']); $filter_user = intval($_GET['filter_by_user']);
@ -234,12 +233,11 @@ switch ($action) {
$where_condition .= " AND te.exe_user_id = '$filter_user'"; $where_condition .= " AND te.exe_user_id = '$filter_user'";
} }
} }
$count = get_count_exam_results($exercise_id, $where_condition); $count = ExerciseLib::get_count_exam_results($exercise_id, $where_condition);
break; break;
case 'get_hotpotatoes_exercise_results': case 'get_hotpotatoes_exercise_results':
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
$hotpot_path = $_REQUEST['path']; $hotpot_path = $_REQUEST['path'];
$count = get_count_exam_hotpotatoes_results($hotpot_path); $count = ExerciseLib::get_count_exam_hotpotatoes_results($hotpot_path);
break; break;
case 'get_sessions': case 'get_sessions':
$list_type = isset($_REQUEST['list_type']) ? $_REQUEST['list_type'] : 'simple'; $list_type = isset($_REQUEST['list_type']) ? $_REQUEST['list_type'] : 'simple';
@ -423,14 +421,14 @@ switch ($action) {
} else { } else {
//$columns = array('exe_duration', 'start_date', 'exe_date', 'score', 'status', 'actions'); //$columns = array('exe_duration', 'start_date', 'exe_date', 'score', 'status', 'actions');
} }
$result = get_exam_results_data($start, $limit, $sidx, $sord, $exercise_id, $where_condition); $result = ExerciseLib::get_exam_results_data($start, $limit, $sidx, $sord, $exercise_id, $where_condition);
break; break;
case 'get_hotpotatoes_exercise_results': case 'get_hotpotatoes_exercise_results':
$course = api_get_course_info(); $course = api_get_course_info();
//used inside get_exam_results_data() //used inside get_exam_results_data()
$documentPath = api_get_path(SYS_COURSE_PATH) . $course['path'] . "/document"; $documentPath = api_get_path(SYS_COURSE_PATH) . $course['path'] . "/document";
$columns = array('firstname', 'lastname', 'username', 'group_name', 'exe_date', 'score', 'actions'); $columns = array('firstname', 'lastname', 'username', 'group_name', 'exe_date', 'score', 'actions');
$result = get_exam_results_hotpotatoes_data($start, $limit, $sidx, $sord, $hotpot_path, $where_condition); //get_exam_results_data($start, $limit, $sidx, $sord, $exercise_id, $where_condition); $result = ExerciseLib::get_exam_results_hotpotatoes_data($start, $limit, $sidx, $sord, $hotpot_path, $where_condition); //get_exam_results_data($start, $limit, $sidx, $sord, $exercise_id, $where_condition);
break; break;
case 'get_sessions': case 'get_sessions':
$session_columns = SessionManager::get_session_columns($list_type); $session_columns = SessionManager::get_session_columns($list_type);

@ -316,7 +316,7 @@ function update_event_exercise($exeid, $exo_id, $score, $weight, $session_id, $l
if (!empty($exeid)) { if (!empty($exeid)) {
// Validation in case of fraud with actived control time // Validation in case of fraud with actived control time
if (!exercise_time_control_is_valid($exo_id, $learnpath_id, $learnpath_item_id)) { if (!ExerciseLib::exercise_time_control_is_valid($exo_id, $learnpath_id, $learnpath_item_id)) {
$score = 0; $score = 0;
} }
@ -359,7 +359,7 @@ function update_event_exercise($exeid, $exo_id, $score, $weight, $session_id, $l
error_log("$sql"); error_log("$sql");
//Deleting control time session track //Deleting control time session track
//exercise_time_control_delete($exo_id); //ExerciseLib::exercise_time_control_delete($exo_id);
return $res; return $res;
} else { } else {
return false; return false;
@ -413,8 +413,7 @@ function create_event_exercice($exo_id)
// No record was found, so create one // No record was found, so create one
// get expire time to insert into the tracking record // get expire time to insert into the tracking record
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php'; $current_expired_time_key = ExerciseLib::get_time_control_key($exercise_id);
$current_expired_time_key = get_time_control_key($exercise_id);
if (isset($_SESSION['expired_time'][$current_expired_time_key])) { //Only for exercice of type "One page" if (isset($_SESSION['expired_time'][$current_expired_time_key])) { //Only for exercice of type "One page"
$expired_date = $_SESSION['expired_time'][$current_expired_time_key]; $expired_date = $_SESSION['expired_time'][$current_expired_time_key];
} else { } else {
@ -422,7 +421,7 @@ function create_event_exercice($exo_id)
} }
$sql = "INSERT INTO $tbl_track_exe (exe_user_id, c_id, expired_time_control, exe_exo_id, session_id) $sql = "INSERT INTO $tbl_track_exe (exe_user_id, c_id, expired_time_control, exe_exo_id, session_id)
VALUES ($uid, '".$course_id."' ,'$expired_date','$exo_id','".api_get_session_id()."')"; VALUES ($uid, '".$course_id."' ,'$expired_date','$exo_id','".api_get_session_id()."')";
$res = Database::query($sql); Database::query($sql);
$id = Database::insert_id(); $id = Database::insert_id();
return $id; return $id;
} }
@ -438,7 +437,6 @@ function create_event_exercice($exo_id)
*/ */
function exercise_attempt($score, $answer, $question_id, $exe_id, $position, $exercise_id = 0, $nano = null) function exercise_attempt($score, $answer, $question_id, $exe_id, $position, $exercise_id = 0, $nano = null)
{ {
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
global $debug, $learnpath_id, $learnpath_item_id; global $debug, $learnpath_id, $learnpath_item_id;
$score = Database::escape_string($score); $score = Database::escape_string($score);
$answer = Database::escape_string($answer); $answer = Database::escape_string($answer);
@ -463,7 +461,7 @@ function exercise_attempt($score, $answer, $question_id, $exe_id, $position, $ex
error_log("position: $position"); error_log("position: $position");
//Validation in case of fraud with actived control time //Validation in case of fraud with actived control time
if (!exercise_time_control_is_valid($exercise_id, $learnpath_id, $learnpath_item_id)) { if (!ExerciseLib::exercise_time_control_is_valid($exercise_id, $learnpath_id, $learnpath_item_id)) {
if ($debug) if ($debug)
error_log("exercise_time_control_is_valid is false"); error_log("exercise_time_control_is_valid is false");
$score = 0; $score = 0;
@ -550,11 +548,10 @@ function exercise_attempt($score, $answer, $question_id, $exe_id, $position, $ex
*/ */
function exercise_attempt_hotspot($exe_id, $question_id, $answer_id, $correct, $coords, $exerciseId = 0) function exercise_attempt_hotspot($exe_id, $question_id, $answer_id, $correct, $coords, $exerciseId = 0)
{ {
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
global $safe_lp_id, $safe_lp_item_id; global $safe_lp_id, $safe_lp_item_id;
//Validation in case of fraud with actived control time //Validation in case of fraud with actived control time
if (!exercise_time_control_is_valid($exerciseId, $safe_lp_id, $safe_lp_item_id)) { if (!ExerciseLib::exercise_time_control_is_valid($exerciseId, $safe_lp_id, $safe_lp_item_id)) {
$correct = 0; $correct = 0;
} }

File diff suppressed because it is too large Load Diff

@ -500,14 +500,13 @@ class PageController
*/ */
public function return_exercise_block($personal_course_list, $tpl) public function return_exercise_block($personal_course_list, $tpl)
{ {
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
$exercise_list = array(); $exercise_list = array();
if (!empty($personal_course_list)) { if (!empty($personal_course_list)) {
foreach ($personal_course_list as $course_item) { foreach ($personal_course_list as $course_item) {
$course_code = $course_item['c']; $course_code = $course_item['c'];
$session_id = $course_item['id_session']; $session_id = $course_item['id_session'];
$exercises = get_exercises_to_be_taken($course_code, $session_id); $exercises = ExerciseLib::get_exercises_to_be_taken($course_code, $session_id);
foreach ($exercises as $exercise_item) { foreach ($exercises as $exercise_item) {
$exercise_item['course_code'] = $course_code; $exercise_item['course_code'] = $course_code;

@ -11,8 +11,6 @@
* Code * Code
*/ */
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
/** /**
* Class * Class
* @package chamilo.library * @package chamilo.library
@ -2395,7 +2393,7 @@ class Tracking
foreach ($course_list as $course_data) { foreach ($course_list as $course_data) {
$exercise_list = get_all_exercises($course_data, $my_session_id); $exercise_list = ExerciseLib::get_all_exercises($course_data, $my_session_id);
foreach ($exercise_list as $exercise_data) { foreach ($exercise_list as $exercise_data) {
$exercise_obj = new Exercise($course_data['id']); $exercise_obj = new Exercise($course_data['id']);
@ -2405,11 +2403,11 @@ class Tracking
if ($exercise_data['results_disabled'] == 0 || $exercise_data['results_disabled'] == 2) { if ($exercise_data['results_disabled'] == 0 || $exercise_data['results_disabled'] == 2) {
//if ($visible_return['value'] == true) { //if ($visible_return['value'] == true) {
$best_average = intval(get_best_average_score_by_exercise($exercise_data['id'], $course_data['code'], $my_session_id, $user_count)); $best_average = intval(ExerciseLib::get_best_average_score_by_exercise($exercise_data['id'], $course_data['code'], $my_session_id, $user_count));
$exercise_graph_list[] = $best_average; $exercise_graph_list[] = $best_average;
$all_exercise_graph_list[] = $best_average; $all_exercise_graph_list[] = $best_average;
$user_result_data = get_best_attempt_by_user(api_get_user_id(), $exercise_data['id'], $course_data['real_id'], $my_session_id); $user_result_data = ExerciseLib::get_best_attempt_by_user(api_get_user_id(), $exercise_data['id'], $course_data['real_id'], $my_session_id);
$score = 0; $score = 0;
if (!empty($user_result_data['exe_weighting']) && intval($user_result_data['exe_weighting']) != 0) { if (!empty($user_result_data['exe_weighting']) && intval($user_result_data['exe_weighting']) != 0) {
$score = intval($user_result_data['exe_result'] / $user_result_data['exe_weighting'] * 100); $score = intval($user_result_data['exe_result'] / $user_result_data['exe_weighting'] * 100);
@ -2419,7 +2417,7 @@ class Tracking
$all_exercise_start_time[] = $time; $all_exercise_start_time[] = $time;
$my_results[] = $score; $my_results[] = $score;
if (count($exercise_list) <= 10) { if (count($exercise_list) <= 10) {
$title = Text::cut($course_data['title'], 30)." \n ".cut($exercise_data['title'], 30); $title = Text::cut($course_data['title'], 30)." \n ".Text::cut($exercise_data['title'], 30);
$exercise_graph_name_list[] = $title; $exercise_graph_name_list[] = $title;
$all_exercise_graph_name_list[] = $title; $all_exercise_graph_name_list[] = $title;
} else { } else {
@ -2488,7 +2486,7 @@ class Tracking
foreach ($course_list as $course_data) { foreach ($course_list as $course_data) {
//All exercises in the course @todo change for a real count //All exercises in the course @todo change for a real count
$exercises = get_all_exercises($course_data, $my_session_id); $exercises = ExerciseLib::get_all_exercises($course_data, $my_session_id);
$count_exercises = 0; $count_exercises = 0;
if (is_array($exercises) && !empty($exercises)) { if (is_array($exercises) && !empty($exercises)) {
$count_exercises = count($exercises); $count_exercises = count($exercises);
@ -2511,7 +2509,7 @@ class Tracking
} }
//Average //Average
$average = get_average_score_by_course($course_data['real_id'], $my_session_id); $average = ExerciseLib::get_average_score_by_course($course_data['real_id'], $my_session_id);
$all_exercises += $count_exercises; $all_exercises += $count_exercises;
@ -2535,7 +2533,7 @@ class Tracking
$html .= Display::tag('td', $all_unanswered_exercises_by_user); $html .= Display::tag('td', $all_unanswered_exercises_by_user);
//$html .= Display::tag('td', $all_done_exercise); //$html .= Display::tag('td', $all_done_exercise);
$html .= Display::tag('td', convert_to_percentage($all_average)); $html .= Display::tag('td', ExerciseLib::convert_to_percentage($all_average));
if (isset($_GET['session_id']) && $my_session_id == $_GET['session_id']) { if (isset($_GET['session_id']) && $my_session_id == $_GET['session_id']) {
$icon = Display::url(Display::return_icon('2rightarrow_na.gif', get_lang('Details')), '?session_id='.$my_session_id); $icon = Display::url(Display::return_icon('2rightarrow_na.gif', get_lang('Details')), '?session_id='.$my_session_id);
@ -2580,7 +2578,7 @@ class Tracking
$course_title = $course_data['title']; $course_title = $course_data['title'];
//All exercises in the course @todo change for a real count //All exercises in the course @todo change for a real count
$exercises = get_all_exercises($course_data, $session_id_from_get); $exercises = ExerciseLib::get_all_exercises($course_data, $session_id_from_get);
$count_exercises = 0; $count_exercises = 0;
if (!empty($exercises)) { if (!empty($exercises)) {
$count_exercises = count($exercises); $count_exercises = count($exercises);
@ -2600,8 +2598,8 @@ class Tracking
$unanswered_exercises = $count_exercises - $answered_exercises; $unanswered_exercises = $count_exercises - $answered_exercises;
//Average //Average
$average = get_average_score_by_course($courseId, $session_id_from_get); $average = ExerciseLib::get_average_score_by_course($courseId, $session_id_from_get);
$my_average = get_average_score_by_course_by_user(api_get_user_id(), $courseId, $session_id_from_get); $my_average = ExerciseLib::get_average_score_by_course_by_user(api_get_user_id(), $courseId, $session_id_from_get);
$stats_array[$course_code] = array( $stats_array[$course_code] = array(
'exercises' => $count_exercises, 'exercises' => $count_exercises,
@ -2630,9 +2628,9 @@ class Tracking
$html .= Display::tag('td', $stats_array[$course_code]['exercises']); $html .= Display::tag('td', $stats_array[$course_code]['exercises']);
$html .= Display::tag('td', $stats_array[$course_code]['unanswered_exercises_by_user']); $html .= Display::tag('td', $stats_array[$course_code]['unanswered_exercises_by_user']);
//$html .= Display::tag('td', $stats_array[$course_code]['done_exercises']); //$html .= Display::tag('td', $stats_array[$course_code]['done_exercises']);
$html .= Display::tag('td', convert_to_percentage($stats_array[$course_code]['my_average'])); $html .= Display::tag('td', ExerciseLib::convert_to_percentage($stats_array[$course_code]['my_average']));
$html .= Display::tag('td', $stats_array[$course_code]['average'] == 0 ? '-' : '('.convert_to_percentage($stats_array[$course_code]['average']).')'); $html .= Display::tag('td', $stats_array[$course_code]['average'] == 0 ? '-' : '('.ExerciseLib::convert_to_percentage($stats_array[$course_code]['average']).')');
$html .= Display::tag('td', $time, array('align' => 'center')); $html .= Display::tag('td', $time, array('align' => 'center'));
if (is_numeric($progress)) { if (is_numeric($progress)) {
@ -2711,7 +2709,7 @@ class Tracking
} }
// Show exercise results of invisible exercises? see BT#4091 // Show exercise results of invisible exercises? see BT#4091
$exercise_list = get_all_exercises($course_info, $session_id, false); $exercise_list = ExerciseLib::get_all_exercises($course_info, $session_id, false);
$to_graph_exercise_result = array(); $to_graph_exercise_result = array();
@ -2749,14 +2747,14 @@ class Tracking
$graph = $normal_graph = null; $graph = $normal_graph = null;
//Getting best results //Getting best results
$best_score_data = get_best_attempt_in_course($exerciseId, $course_info['real_id'], $session_id); $best_score_data = ExerciseLib::get_best_attempt_in_course($exerciseId, $course_info['real_id'], $session_id);
if (!empty($best_score_data)) { if (!empty($best_score_data)) {
$best_score = show_score($best_score_data['exe_result'], $best_score_data['exe_weighting']); $best_score = ExerciseLib::show_score($best_score_data['exe_result'], $best_score_data['exe_weighting']);
} }
if ($attempts > 0) { if ($attempts > 0) {
$exercise_stat = get_best_attempt_by_user(api_get_user_id(), $exerciseId, $course_info['real_id'], $session_id); $exercise_stat = ExerciseLib::get_best_attempt_by_user(api_get_user_id(), $exerciseId, $course_info['real_id'], $session_id);
if (!empty($exercise_stat)) { if (!empty($exercise_stat)) {
//Always getting the BEST attempt //Always getting the BEST attempt
@ -2765,13 +2763,13 @@ class Tracking
$exe_id = $exercise_stat['exe_id']; $exe_id = $exercise_stat['exe_id'];
$latest_attempt_url .= api_get_path(WEB_CODE_PATH).'exercice/result.php?id='.$exe_id.'&cidReq='.$course_info['code'].'&show_headers=1&id_session='.$session_id; $latest_attempt_url .= api_get_path(WEB_CODE_PATH).'exercice/result.php?id='.$exe_id.'&cidReq='.$course_info['code'].'&show_headers=1&id_session='.$session_id;
$percentage_score_result = Display::url(show_score($score, $weighting), $latest_attempt_url); $percentage_score_result = Display::url(ExerciseLib::show_score($score, $weighting), $latest_attempt_url);
$my_score = 0; $my_score = 0;
if (!empty($weighting) && intval($weighting) != 0) { if (!empty($weighting) && intval($weighting) != 0) {
$my_score = $score / $weighting; $my_score = $score / $weighting;
} }
//@todo this function slows the page //@todo this function slows the page
$position = get_exercise_result_ranking($my_score, $exe_id, $exerciseId, $course_info['real_id'], $session_id, $user_list); $position = ExerciseLib::get_exercise_result_ranking($my_score, $exe_id, $exerciseId, $course_info['real_id'], $session_id, $user_list);
$graph = self::generate_exercise_result_thumbnail_graph($to_graph_exercise_result[$exerciseId]); $graph = self::generate_exercise_result_thumbnail_graph($to_graph_exercise_result[$exerciseId]);
$normal_graph = self::generate_exercise_result_graph($to_graph_exercise_result[$exerciseId]); $normal_graph = self::generate_exercise_result_graph($to_graph_exercise_result[$exerciseId]);
@ -3733,7 +3731,7 @@ class TrackingCourseLog
$courseInfo = api_get_course_info($course_code); $courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id']; $courseId = $courseInfo['real_id'];
$total_surveys = 0; $total_surveys = 0;
$total_exercises = get_all_exercises($courseInfo, $session_id); $total_exercises = ExerciseLib::get_all_exercises($courseInfo, $session_id);
if (empty($session_id)) { if (empty($session_id)) {
$survey_user_list = array(); $survey_user_list = array();

@ -1279,8 +1279,6 @@ function export_exercise($item_id)
require_once '../exercice/exercise.class.php'; require_once '../exercice/exercise.class.php';
require_once '../exercice/question.class.php'; require_once '../exercice/question.class.php';
require_once '../exercice/answer.class.php'; require_once '../exercice/answer.class.php';
require_once '../exercice/exercise.lib.php';
$TBL_EXERCISES = Database :: get_course_table(TABLE_QUIZ_TEST); $TBL_EXERCISES = Database :: get_course_table(TABLE_QUIZ_TEST);
/* Clears the exercise session */ /* Clears the exercise session */
@ -1420,7 +1418,7 @@ function export_exercise($item_id)
echo $s = "<tr bgcolor='#e6e6e6'><td valign='top' colspan='2'>".get_lang('Question')." "; echo $s = "<tr bgcolor='#e6e6e6'><td valign='top' colspan='2'>".get_lang('Question')." ";
// Call the showQuestion() function from exercise.lib.php. This basically displays the question in a table. // Call the showQuestion() function from exercise.lib.php. This basically displays the question in a table.
$question_obj = Question::read($questionId); $question_obj = Question::read($questionId);
$test .= showQuestion($question_obj, false, 'export', $i); $test .= ExerciseLib::showQuestion($question_obj, false, 'export', $i);
} // end foreach() } // end foreach()
@ -1454,7 +1452,6 @@ function exportitem($id, $item_id, $item_type, $add_scorm_communications = false
include_once $libp.'exercice/exercise.class.php'; include_once $libp.'exercice/exercise.class.php';
include_once $libp.'question.class.php'; include_once $libp.'question.class.php';
include_once $libp.'answer.class.php'; include_once $libp.'answer.class.php';
include_once $libp.'exercise.lib.php';
$langLasting = ''; //avoid code parser warning $langLasting = ''; //avoid code parser warning
include_once $libp.'lang/english/announcements.inc.php'; //this line is here only for $langPubl in announcements include_once $libp.'lang/english/announcements.inc.php'; //this line is here only for $langPubl in announcements

@ -346,14 +346,14 @@ if (is_array($list) && count($list) > 0) {
if ($maxscore == 0) { if ($maxscore == 0) {
$view_score = $score; $view_score = $score;
} else { } else {
$view_score = show_score($score, $maxscore, false); $view_score = ExerciseLib::show_score($score, $maxscore, false);
} }
break; break;
case 'document': case 'document':
$view_score = ($score == 0 ? '/' : show_score($score, $maxscore, false)); $view_score = ($score == 0 ? '/' : ExerciseLib::show_score($score, $maxscore, false));
break; break;
default: default:
$view_score = show_score($score, $maxscore, false); $view_score = ExerciseLib::show_score($score, $maxscore, false);
break; break;
} }
} }
@ -683,7 +683,7 @@ if (is_array($list) && count($list) > 0) {
if (!$is_allowed_to_edit && $result_disabled_ext_all) { if (!$is_allowed_to_edit && $result_disabled_ext_all) {
$output .= Display::return_icon('invisible.gif', get_lang('ResultsHiddenByExerciseSetting')); $output .= Display::return_icon('invisible.gif', get_lang('ResultsHiddenByExerciseSetting'));
} else { } else {
$output .= show_score($score, $maxscore, false); $output .= ExerciseLib::show_score($score, $maxscore, false);
} }
} else { } else {
$output .= ($score == 0 ? '/' : ($maxscore == 0 ? $score : $score . '/' . $maxscore)); $output .= ($score == 0 ? '/' : ($maxscore == 0 ? $score : $score . '/' . $maxscore));
@ -791,12 +791,12 @@ if (is_array($list) && count($list) > 0) {
} else { } else {
// Show only float when need it // Show only float when need it
if ($my_score == 0) { if ($my_score == 0) {
$view_score = show_score(0, $my_maxscore, false); $view_score = ExerciseLib::show_score(0, $my_maxscore, false);
} else { } else {
if ($my_maxscore == 0) { if ($my_maxscore == 0) {
$view_score = $my_score; $view_score = $my_score;
} else { } else {
$view_score = show_score($my_score, $my_maxscore, false); $view_score = ExerciseLib::show_score($my_score, $my_maxscore, false);
} }
} }
} }

@ -16,7 +16,6 @@ $language_file = array('learnpath', 'courses', 'index','tracking','exercice', 'a
$cidReset = true; $cidReset = true;
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.class.php'; require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.class.php';
api_block_anonymous_users(); // Only users who are logged in can proceed. api_block_anonymous_users(); // Only users who are logged in can proceed.
@ -69,7 +68,7 @@ if (!empty($new_session_list)) {
$course_info = api_get_course_info_by_id($my_course['id']); $course_info = api_get_course_info_by_id($my_course['id']);
//Getting all exercises from the current course //Getting all exercises from the current course
$exercise_list = get_all_exercises($course_info, $my_session_id, true); $exercise_list = ExerciseLib::get_all_exercises($course_info, $my_session_id, true);
$course['name'] = $course_info['name']; $course['name'] = $course_info['name'];
$course['id'] = $course_info['real_id']; $course['id'] = $course_info['real_id'];
@ -109,7 +108,7 @@ if (!empty($course_list)) {
$lp_list = $list->get_flat_list(); $lp_list = $list->get_flat_list();
$lp_count = count($lp_list); $lp_count = count($lp_list);
$course_info = api_get_course_info($course_data['code']); $course_info = api_get_course_info($course_data['code']);
$exercise_count = count(get_all_exercises($course_info, $session_id, true)); $exercise_count = count(ExerciseLib::get_all_exercises($course_info, $session_id, true));
$max_mutation_date = ''; $max_mutation_date = '';
@ -203,11 +202,11 @@ foreach($final_array as $session_data) {
if (!empty($course_data['exercises'])) { if (!empty($course_data['exercises'])) {
//Exercises //Exercises
foreach ($course_data['exercises'] as $my_exercise_id => $exercise_data) { foreach ($course_data['exercises'] as $my_exercise_id => $exercise_data) {
$best_score_data = get_best_attempt_in_course($my_exercise_id, $course_data['id'], $session_id); $best_score_data = ExerciseLib::get_best_attempt_in_course($my_exercise_id, $course_data['id'], $session_id);
$best_score = ''; $best_score = '';
if (!empty($best_score_data)) { if (!empty($best_score_data)) {
$best_score = show_score($best_score_data['exe_result'], $best_score_data['exe_weighting']); $best_score = ExerciseLib::show_score($best_score_data['exe_result'], $best_score_data['exe_weighting']);
} }
//Exercise results //Exercise results
$counter = 1; $counter = 1;
@ -222,12 +221,12 @@ foreach($final_array as $session_data) {
} }
if (!empty($result_list)) { if (!empty($result_list)) {
foreach ($result_list as $exercise_result) { foreach ($result_list as $exercise_result) {
$platform_score = show_score($exercise_result['exe_result'], $exercise_result['exe_weighting']); $platform_score = ExerciseLib::show_score($exercise_result['exe_result'], $exercise_result['exe_weighting']);
$my_score = 0; $my_score = 0;
if(!empty($exercise_result['exe_weighting']) && intval($exercise_result['exe_weighting']) != 0) { if(!empty($exercise_result['exe_weighting']) && intval($exercise_result['exe_weighting']) != 0) {
$my_score = $exercise_result['exe_result']/$exercise_result['exe_weighting']; $my_score = $exercise_result['exe_result']/$exercise_result['exe_weighting'];
} }
$position = get_exercise_result_ranking($my_score, $exercise_result['exe_id'], $my_exercise_id, $course_data['id'], $session_id, $user_list); $position = ExerciseLib::get_exercise_result_ranking($my_score, $exercise_result['exe_id'], $my_exercise_id, $course_data['id'], $session_id, $user_list);
//$exercise_info->exercise = Display::url($exercise_info->exercise, api_get_path(WEB_CODE_PATH)."exercice/exercice.php?cidReq=$my_course_code&exerciseId={$exercise_info->id}&id_session=$session_id&show=result", array('target'=>SESSION_LINK_TARGET,'class'=>'exercise-result-link')); //$exercise_info->exercise = Display::url($exercise_info->exercise, api_get_path(WEB_CODE_PATH)."exercice/exercice.php?cidReq=$my_course_code&exerciseId={$exercise_info->id}&id_session=$session_id&show=result", array('target'=>SESSION_LINK_TARGET,'class'=>'exercise-result-link'));
$exercise_info->exercise = Display::url($exercise_info->exercise, api_get_path(WEB_CODE_PATH)."exercice/result.php?cidReq=$my_course_code&id={$exercise_result['exe_id']}&id_session=$session_id&show_headers=1", array('target'=>SESSION_LINK_TARGET,'class'=>'exercise-result-link')); $exercise_info->exercise = Display::url($exercise_info->exercise, api_get_path(WEB_CODE_PATH)."exercice/result.php?cidReq=$my_course_code&id={$exercise_result['exe_id']}&id_session=$session_id&show_headers=1", array('target'=>SESSION_LINK_TARGET,'class'=>'exercise-result-link'));

@ -49,7 +49,6 @@ require_once api_get_path(SYS_CODE_PATH).'newscorm/scormItem.class.php';
require_once api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php'; require_once api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php';
require_once api_get_path(SYS_CODE_PATH).'resourcelinker/resourcelinker.inc.php'; require_once api_get_path(SYS_CODE_PATH).'resourcelinker/resourcelinker.inc.php';
require_once api_get_path(SYS_CODE_PATH).'survey/survey.lib.php'; require_once api_get_path(SYS_CODE_PATH).'survey/survey.lib.php';
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
// Starting the output buffering when we are exporting the information. // Starting the output buffering when we are exporting the information.
$export_csv = isset($_GET['export']) && $_GET['export'] == 'csv' ? true : false; $export_csv = isset($_GET['export']) && $_GET['export'] == 'csv' ? true : false;

@ -49,7 +49,6 @@ require_once api_get_path(SYS_CODE_PATH).'newscorm/scormItem.class.php';
require_once api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php'; require_once api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php';
require_once api_get_path(SYS_CODE_PATH).'resourcelinker/resourcelinker.inc.php'; require_once api_get_path(SYS_CODE_PATH).'resourcelinker/resourcelinker.inc.php';
require_once api_get_path(SYS_CODE_PATH).'survey/survey.lib.php'; require_once api_get_path(SYS_CODE_PATH).'survey/survey.lib.php';
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
// Starting the output buffering when we are exporting the information. // Starting the output buffering when we are exporting the information.
$export_csv = isset($_GET['export']) && $_GET['export'] == 'csv' ? true : false; $export_csv = isset($_GET['export']) && $_GET['export'] == 'csv' ? true : false;

@ -44,7 +44,6 @@ require_once api_get_path(SYS_CODE_PATH).'newscorm/scormItem.class.php';
require_once api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php'; require_once api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php';
require_once api_get_path(SYS_CODE_PATH).'resourcelinker/resourcelinker.inc.php'; require_once api_get_path(SYS_CODE_PATH).'resourcelinker/resourcelinker.inc.php';
require_once api_get_path(SYS_CODE_PATH).'survey/survey.lib.php'; require_once api_get_path(SYS_CODE_PATH).'survey/survey.lib.php';
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php';
$TABLEQUIZ = Database::get_course_table(TABLE_QUIZ_TEST); $TABLEQUIZ = Database::get_course_table(TABLE_QUIZ_TEST);

@ -130,7 +130,7 @@ foreach ($course_list as $current_course ) {
// Looping LPs // Looping LPs
foreach ($lp_list as $lp_id =>$lp) { foreach ($lp_list as $lp_id =>$lp) {
$exercise_list = get_all_exercises_from_lp($lp_id, $course_info['real_id']); $exercise_list = ExerciseLib::get_all_exercises_from_lp($lp_id, $course_info['real_id']);
//Looping Chamilo Exercises in LP //Looping Chamilo Exercises in LP
foreach ($exercise_list as $exercise) { foreach ($exercise_list as $exercise) {
$exercise_stats = get_all_exercise_event_from_lp($exercise['path'], $course_info['real_id'], $session_id); $exercise_stats = get_all_exercise_event_from_lp($exercise['path'], $course_info['real_id'], $session_id);

@ -133,7 +133,7 @@ foreach($course_list as $current_course ) {
// Looping LPs // Looping LPs
$lps = array(); $lps = array();
foreach ($lp_list as $lp_id =>$lp) { foreach ($lp_list as $lp_id =>$lp) {
$exercise_list = get_all_exercises_from_lp($lp_id, $course_info['real_id']); $exercise_list = ExerciseLib::get_all_exercises_from_lp($lp_id, $course_info['real_id']);
$attempt_result = array(); $attempt_result = array();
//Looping Chamilo Exercises in LP //Looping Chamilo Exercises in LP
foreach ($exercise_list as $exercise) { foreach ($exercise_list as $exercise) {

@ -91,7 +91,7 @@ if (!empty($course_info)) {
$_course = $course_info; $_course = $course_info;
$main_question_list = array(); $main_question_list = array();
foreach ($lp_list as $lp_id =>$lp) { foreach ($lp_list as $lp_id =>$lp) {
$exercise_list = get_all_exercises_from_lp($lp_id, $course_info['real_id']); $exercise_list = ExerciseLib::get_all_exercises_from_lp($lp_id, $course_info['real_id']);
foreach ($exercise_list as $exercise) { foreach ($exercise_list as $exercise) {
$my_exercise = new Exercise(); $my_exercise = new Exercise();

@ -25,7 +25,6 @@ function fill_exe() {
require_once $lib.'exercice/exercise.class.php'; require_once $lib.'exercice/exercise.class.php';
require_once $lib.'exercice/question.class.php'; require_once $lib.'exercice/question.class.php';
require_once $lib.'exercice/answer.class.php'; require_once $lib.'exercice/answer.class.php';
require_once $lib.'exercice/exercise.lib.php';
foreach ($courses as $i => $course) { foreach ($courses as $i => $course) {
$res = 0; $res = 0;
//first check that the first item doesn't exist already //first check that the first item doesn't exist already
@ -57,7 +56,7 @@ function fill_exe() {
while ($qi < $qc) { while ($qi < $qc) {
foreach ($qst as $q) { foreach ($qst as $q) {
error_log('Created '.$qi.' questions'); error_log('Created '.$qi.' questions');
$question = Question::getInstance($q['type']); $question = Question::getInstance($q['type']);
$question->id = 0; $question->id = 0;
$question->question = $q['title'].' '.$qi; $question->question = $q['title'].' '.$qi;
$question->description = $q['desc']; $question->description = $q['desc'];
@ -75,7 +74,7 @@ function fill_exe() {
$qi++; $qi++;
} }
} }
} }
} }
} }
} }

@ -85,7 +85,6 @@ require_once $libdir.'geometry.lib.php';
ob_end_clean(); ob_end_clean();
/**Problem with this file to test objects*/ /**Problem with this file to test objects*/
//require_once $maindir.'exercice/exercise.lib.php';
class TestManager class TestManager
{ {

@ -4,4 +4,4 @@
require_once __DIR__ . '/composer' . '/autoload_real.php'; require_once __DIR__ . '/composer' . '/autoload_real.php';
return ComposerAutoloaderInit9686e641bdeddab21fbf49db8b6b38e6::getLoader(); return ComposerAutoloaderInit0fa381a041b9622c3d1748381ff09118::getLoader();

@ -164,6 +164,7 @@ return array(
'EventsDispatcher' => $baseDir . '/main/inc/lib/events_dispatcher.class.php', 'EventsDispatcher' => $baseDir . '/main/inc/lib/events_dispatcher.class.php',
'EventsMail' => $baseDir . '/main/inc/lib/events_email.class.php', 'EventsMail' => $baseDir . '/main/inc/lib/events_email.class.php',
'Exercise' => $baseDir . '/main/exercice/exercise.class.php', 'Exercise' => $baseDir . '/main/exercice/exercise.class.php',
'ExerciseLib' => $baseDir . '/main/inc/lib/exercise.lib.php',
'ExerciseLink' => $baseDir . '/main/gradebook/lib/be/exerciselink.class.php', 'ExerciseLink' => $baseDir . '/main/gradebook/lib/be/exerciselink.class.php',
'ExerciseResult' => $baseDir . '/main/exercice/exercise_result.class.php', 'ExerciseResult' => $baseDir . '/main/exercice/exercise_result.class.php',
'ExerciseShowFunctions' => $baseDir . '/main/inc/lib/exercise_show_functions.lib.php', 'ExerciseShowFunctions' => $baseDir . '/main/inc/lib/exercise_show_functions.lib.php',

@ -2,7 +2,7 @@
// autoload_real.php generated by Composer // autoload_real.php generated by Composer
class ComposerAutoloaderInit9686e641bdeddab21fbf49db8b6b38e6 class ComposerAutoloaderInit0fa381a041b9622c3d1748381ff09118
{ {
private static $loader; private static $loader;
@ -19,9 +19,9 @@ class ComposerAutoloaderInit9686e641bdeddab21fbf49db8b6b38e6
return self::$loader; return self::$loader;
} }
spl_autoload_register(array('ComposerAutoloaderInit9686e641bdeddab21fbf49db8b6b38e6', 'loadClassLoader'), true, true); spl_autoload_register(array('ComposerAutoloaderInit0fa381a041b9622c3d1748381ff09118', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(); self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit9686e641bdeddab21fbf49db8b6b38e6', 'loadClassLoader')); spl_autoload_unregister(array('ComposerAutoloaderInit0fa381a041b9622c3d1748381ff09118', 'loadClassLoader'));
$vendorDir = dirname(__DIR__); $vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);

Loading…
Cancel
Save