result.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. use ChamiloSession as Session;
  4. /**
  5. * Shows the exercise results
  6. *
  7. * @author Julio Montoya - Simple exercise result page
  8. *
  9. */
  10. require_once __DIR__.'/../inc/global.inc.php';
  11. if (empty($origin)) {
  12. $origin = $_REQUEST['origin'];
  13. }
  14. $id = isset($_REQUEST['id']) ? intval($_GET['id']) : null; //exe id
  15. $show_headers = isset($_REQUEST['show_headers']) ? intval($_REQUEST['show_headers']) : null; //exe id
  16. if ($origin == 'learnpath') {
  17. $show_headers = false;
  18. }
  19. api_protect_course_script($show_headers);
  20. if (empty($id)) {
  21. api_not_allowed($show_headers);
  22. }
  23. $is_allowedToEdit = api_is_allowed_to_edit(null,true) || $is_courseTutor;
  24. // Getting results from the exe_id. This variable also contain all the information about the exercise
  25. $track_exercise_info = ExerciseLib::get_exercise_track_exercise_info($id);
  26. // No track info
  27. if (empty($track_exercise_info)) {
  28. api_not_allowed($show_headers);
  29. }
  30. $exercise_id = $track_exercise_info['exe_exo_id'];
  31. $student_id = $track_exercise_info['exe_user_id'];
  32. $current_user_id = api_get_user_id();
  33. $objExercise = new Exercise();
  34. if (!empty($exercise_id)) {
  35. $objExercise->read($exercise_id);
  36. }
  37. // Only users can see their own results
  38. if (!$is_allowedToEdit) {
  39. if ($student_id != $current_user_id) {
  40. api_not_allowed($show_headers);
  41. }
  42. }
  43. $htmlHeadXtra[] = '<link rel="stylesheet" href="' . api_get_path(WEB_LIBRARY_JS_PATH) . 'hotspot/css/hotspot.css">';
  44. $htmlHeadXtra[] = '<script src="' . api_get_path(WEB_LIBRARY_JS_PATH) . 'hotspot/js/hotspot.js"></script>';
  45. if ($show_headers) {
  46. $interbreadcrumb[] = array(
  47. "url" => "exercise.php?".api_get_cidreq(),
  48. "name" => get_lang('Exercises')
  49. );
  50. $interbreadcrumb[] = array("url" => "#", "name" => get_lang('Result'));
  51. $this_section = SECTION_COURSES;
  52. Display::display_header();
  53. } else {
  54. $htmlHeadXtra[] = '<style>
  55. body { background: none;}
  56. </style>';
  57. Display::display_reduced_header();
  58. }
  59. $message = Session::read('attempt_remaining');
  60. if (!empty($message)) {
  61. Display::display_normal_message(
  62. $message,
  63. false
  64. );
  65. }
  66. Session::erase('attempt_remaining');
  67. ExerciseLib::display_question_list_by_attempt($objExercise, $id, false);
  68. if ($show_headers) {
  69. Display::display_footer();
  70. }