Yannick Warnier 15 years ago
parent
commit
fb45fbb65a

File diff suppressed because it is too large
+ 167 - 145
main/newscorm/learnpathItem.class.php


+ 7 - 6
main/newscorm/lp_ajax_initialize.php

@@ -25,9 +25,9 @@ require_once('back_compat.inc.php');
  */
 function initialize_item($lp_id,$user_id,$view_id,$next_item)
 {
-    $debug=0;
+    $debug = 0;
     $return = '';
-    if($debug>0){error_log('In initialize_item('.$lp_id.','.$user_id.','.$view_id.','.$next_item.')',0);}
+    if ($debug>0) {error_log('In initialize_item('.$lp_id.','.$user_id.','.$view_id.','.$next_item.')',0);}
     //$objResponse = new xajaxResponse();
     /*$item_id may be one of:
      * -'next'
@@ -58,7 +58,7 @@ function initialize_item($lp_id,$user_id,$view_id,$next_item)
         }
     }
     $mylp->set_current_item($next_item);
-    if ($debug>1) {error_log('In {default} - item is '.$new_item_id,0);}
+    if ($debug>1) {error_log('In initialize_item() - new item is '.$next_item,0);}
     $mylp->start_current_item(true);
     /*
     if ($mylp->force_commit) {
@@ -67,9 +67,10 @@ function initialize_item($lp_id,$user_id,$view_id,$next_item)
     */
     //$objResponse->addAlert(api_get_path(REL_CODE_PATH).'newscorm/learnpathItem.class.php');
     if (is_object($mylp->items[$next_item])) {
-        $mylpi = & $mylp->items[$next_item];
+        if($debug>1){error_log('In initialize_item - recovering existing item object '.$next_item,0);}
+    	$mylpi = & $mylp->items[$next_item];
     } else {
-        if($debug>1){error_log('In switch_item_details - generating new item object',0);}
+        if($debug>1){error_log('In initialize_item - generating new item object '.$next_item,0);}
         $mylpi =& new learnpathItem($next_item,$user_id);
         $mylpi->set_lp_view($view_id);
     }
@@ -88,7 +89,7 @@ function initialize_item($lp_id,$user_id,$view_id,$next_item)
     $mymin = $mylpi->get_min();
     $mylesson_status = $mylpi->get_status();
     $mylesson_location = $mylpi->get_lesson_location();
-    $mytotal_time = $mylpi->get_scorm_time('js');
+    $mytotal_time = $mylpi->get_scorm_time('js',null,true);
     $mymastery_score = $mylpi->get_mastery_score();
     $mymax_time_allowed = $mylpi->get_max_time_allowed();
     $mylaunch_data = $mylpi->get_launch_data();

+ 12 - 10
main/newscorm/lp_ajax_save_item.php

@@ -68,28 +68,30 @@ function save_item($lp_id,$user_id,$view_id,$item_id,$score=-1,$max=-1,$min=-1,$
 
         $mylpi =& $mylp->items[$item_id];
         //$mylpi->set_lp_view($view_id);
-        if($max!=-1)
+        if(isset($max) && $max!=-1)
         {
             $mylpi->max_score=$max;
         }
-        if($min!=-1)
+        if(isset($min) && $min!=-1)
         {
             $mylpi->min_score=$min;
         }
-        if($score!=-1)
+        if(isset($score) && $score!=-1)
         {
-            $mylpi->set_score($score);
+            if($debug>1){error_log('Calling set_score('.$score.') from xajax',0);}
+        	$mylpi->set_score($score);
         }
-        if($status!='')
+        if(isset($status) && $status!='')
         {
             if($debug>1){error_log('Calling set_status('.$status.') from xajax',0);}
             $mylpi->set_status($status);
             if($debug>1){error_log('Done calling set_status from xajax',0);}
         }
-        if($time!='')
+        if(isset($time) && $time!='')
         {
             //if big integer, then it's a timestamp, otherwise it's normal scorm time
-            if($time == intval(strval($time)) && $time>1000000){
+            if($debug>1){error_log('Calling set_time('.$time.') from xajax',0);}
+        	if($time == intval(strval($time)) && $time>1000000){
                 $real_time = time() - $time;
                 //$real_time += $mylpi->get_total_time();
                 $mylpi->set_time($real_time,'int');
@@ -97,11 +99,11 @@ function save_item($lp_id,$user_id,$view_id,$item_id,$score=-1,$max=-1,$min=-1,$
                 $mylpi->set_time($time);
             }
         }
-        if($suspend!='')
+        if(isset($suspend) && $suspend!='')
         {
             $mylpi->current_data = $suspend;//escapetxt($suspend);
         }
-        if($location!='')
+        if(isset($location) && $location!='')
         {
             $mylpi->set_lesson_location($location);
         }
@@ -159,7 +161,7 @@ function save_item($lp_id,$user_id,$view_id,$item_id,$score=-1,$max=-1,$min=-1,$
     if($debug>0){
         //$objResponse->addScript("logit_lms('Saved data for item ".$item_id.", user ".$user_id." (status=".$mystatus.")',2);");
         $return .= "logit_lms('Saved data for item ".$item_id.", user ".$user_id." (status=".$mystatus.")',2);";
-        if($debug>1){error_log('End of xajax_save_item()',0);}
+        if($debug>1){error_log('End of save_item()',0);}
     }
 
     if($_configuration['tracking_enabled'] && !isset($_SESSION['login_as']))

+ 1 - 1
tests/main/newscorm/learnpath.class.test.php

@@ -3,7 +3,7 @@ require_once(api_get_path(SYS_CODE_PATH).'newscorm/learnpath.class.php');
 
 class TestLearnpath extends UnitTestCase {
 	
-	public const course = 'COURSETEST';
+	const course = 'COURSETEST';
 	
 	public function testAddItem() {
 		//ob_start();

Some files were not shown because too many files changed in this diff