瀏覽代碼

Fix PHP warnings when using exam with immediate feedback.

jmontoyaa 8 年之前
父節點
當前提交
4c86ed476a
共有 2 個文件被更改,包括 40 次插入35 次删除
  1. 4 4
      main/exercise/exercise_result.php
  2. 36 31
      main/inc/lib/exercise.lib.php

+ 4 - 4
main/exercise/exercise_result.php

@@ -108,9 +108,9 @@ if (!empty($exercise_stat_info['data_tracking'])) {
 	$question_list = explode(',', $exercise_stat_info['data_tracking']);
 }
 
-$learnpath_id = $exercise_stat_info['orig_lp_id'];
-$learnpath_item_id = $exercise_stat_info['orig_lp_item_id'];
-$learnpath_item_view_id = $exercise_stat_info['orig_lp_item_view_id'];
+$learnpath_id = isset($exercise_stat_info['orig_lp_id']) ? $exercise_stat_info['orig_lp_id'] : 0;
+$learnpath_item_id = isset($exercise_stat_info['orig_lp_item_id']) ? $exercise_stat_info['orig_lp_item_id'] : 0;
+$learnpath_item_view_id = isset($exercise_stat_info['orig_lp_item_view_id']) ? $exercise_stat_info['orig_lp_item_view_id'] : 0;
 
 if ($origin == 'learnpath') {
 ?>
@@ -125,7 +125,7 @@ if ($origin == 'learnpath') {
 $i = $total_score = $max_score = 0;
 $remainingMessage = '';
 
-//We check if the user attempts before sending to the exercise_result.php
+// We check if the user attempts before sending to the exercise_result.php
 if ($objExercise->selectAttempts() > 0) {
     $attempt_count = Event::get_attempt_count(
         api_get_user_id(),

+ 36 - 31
main/inc/lib/exercise.lib.php

@@ -3555,17 +3555,21 @@ HOTSPOT;
         }
 
         if ($show_results || $show_only_score) {
-            $user_info = api_get_user_info($exercise_stat_info['exe_user_id']);
-            //Shows exercise header
-            echo $objExercise->show_exercise_result_header(
-                $user_info,
-                api_convert_and_format_date(
-                    $exercise_stat_info['start_date'],
-                    DATE_TIME_FORMAT_LONG
-                ),
-                $exercise_stat_info['duration'],
-                $exercise_stat_info['user_ip']
-            );
+            if (isset($exercise_stat_info['exe_user_id'])) {
+                $user_info = api_get_user_info($exercise_stat_info['exe_user_id']);
+                if ($user_info) {
+                    // Shows exercise header
+                    echo $objExercise->show_exercise_result_header(
+                        $user_info,
+                        api_convert_and_format_date(
+                            $exercise_stat_info['start_date'],
+                            DATE_TIME_FORMAT_LONG
+                        ),
+                        $exercise_stat_info['duration'],
+                        $exercise_stat_info['user_ip']
+                    );
+                }
+            }
         }
 
         // Display text when test is finished #4074 and for LP #4227
@@ -3763,27 +3767,28 @@ HOTSPOT;
         }
 
         if ($save_user_result) {
-
             // Tracking of results
-            $learnpath_id = $exercise_stat_info['orig_lp_id'];
-            $learnpath_item_id = $exercise_stat_info['orig_lp_item_id'];
-            $learnpath_item_view_id = $exercise_stat_info['orig_lp_item_view_id'];
-
-            if (api_is_allowed_to_session_edit()) {
-                Event::update_event_exercise(
-                    $exercise_stat_info['exe_id'],
-                    $objExercise->selectId(),
-                    $total_score,
-                    $total_weight,
-                    api_get_session_id(),
-                    $learnpath_id,
-                    $learnpath_item_id,
-                    $learnpath_item_view_id,
-                    $exercise_stat_info['exe_duration'],
-                    $question_list,
-                    '',
-                    array()
-                );
+            if ($exercise_stat_info) {
+                $learnpath_id = $exercise_stat_info['orig_lp_id'];
+                $learnpath_item_id = $exercise_stat_info['orig_lp_item_id'];
+                $learnpath_item_view_id = $exercise_stat_info['orig_lp_item_view_id'];
+
+                if (api_is_allowed_to_session_edit()) {
+                    Event::update_event_exercise(
+                        $exercise_stat_info['exe_id'],
+                        $objExercise->selectId(),
+                        $total_score,
+                        $total_weight,
+                        api_get_session_id(),
+                        $learnpath_id,
+                        $learnpath_item_id,
+                        $learnpath_item_view_id,
+                        $exercise_stat_info['exe_duration'],
+                        $question_list,
+                        '',
+                        array()
+                    );
+                }
             }
 
             // Send notification