changed all the POST with option/required_param functions
[moodle.git] / mod / scorm / datamodel.php
index b9c4abb..f7bbe1b 100755 (executable)
@@ -2,62 +2,62 @@
     require_once('../../config.php');
     require_once('lib.php');
     
-    optional_variable($id);    // Course Module ID, or
-    optional_variable($a);     // scorm IDa
+    $id = optional_param('id', '', PARAM_INT);       // Course Module ID, or
+    $a = optional_param('a', '', PARAM_INT);         // scorm ID
+    $scoid = required_param('scoid', '', PARAM_INT);  // sco ID
 
-    if ($id) {
-        if (! $cm = get_record('course_modules', 'id', $id)) {
-            error('Course Module ID was incorrect');
+    if (!empty($id)) {
+        if (! $cm = get_record("course_modules", "id", $id)) {
+            error("Course Module ID was incorrect");
         }
-    
-        if (! $course = get_record('course', 'id', $cm->course)) {
-            error('Course is misconfigured');
+        if (! $course = get_record("course", "id", $cm->course)) {
+            error("Course is misconfigured");
         }
-    
-        if (! $scorm = get_record('scorm', 'id', $cm->instance)) {
-            error('Course module is incorrect');
+        if (! $scorm = get_record("scorm", "id", $cm->instance)) {
+            error("Course module is incorrect");
         }
-
-    } else {
-        if (! $scorm = get_record('scorm', 'id', $a)) {
-            error('Course module is incorrect');
+    } else if (!empty($a)) {
+        if (! $scorm = get_record("scorm", "id", $a)) {
+            error("Course module is incorrect");
         }
-        if (! $course = get_record('course', 'id', $scorm->course)) {
-            error('Course is misconfigured');
+        if (! $course = get_record("course", "id", $scorm->course)) {
+            error("Course is misconfigured");
         }
-        if (! $cm = get_coursemodule_from_instance('scorm', $scorm->id, $course->id)) {
-            error('Course Module ID was incorrect');
+        if (! $cm = get_coursemodule_from_instance("scorm", $scorm->id, $course->id)) {
+            error("Course Module ID was incorrect");
         }
+    } else {
+        error('A required parameter is missing');
     }
 
     require_login($course->id, false, $cm);
     
-    if (confirm_sesskey() && (isset($SESSION->scorm_scoid))) {
-       $scoid = $SESSION->scorm_scoid;
-       $result = true;
-       foreach ($_GET as $element => $value) {
-           if (substr($element,0,3) == 'cmi') {
-               $element = str_replace('__','.',$element);
-               $element = preg_replace('/_(\d+)/',".\$1",$element);
-               if ($track = get_record_select('scorm_scoes_track',"userid='$USER->id' AND scormid='$scorm->id' AND scoid='$scoid' AND element='$element'")) {
-                   $track->value = $value;
-                   $result = update_record('scorm_scoes_track',$track) && $result;
-               } else {
-                   $track->userid = $USER->id;
-                   $track->scormid = $scorm->id;
-                   $track->scoid = $scoid;
-                   $track->element = $element;
-                   $track->value = $value;
-                   $result = insert_record('scorm_scoes_track',$track) && $result;
-               }
-               //print_r($track);
-           }
-       }
-       if ($result) {
-           echo "true\n0";
-       } else {
-           echo "false\n101";
-       }
+    if (confirm_sesskey() && (!empty($scoid))) {
+        $result = true;
+        foreach ($_POST as $element => $value) {
+            if (substr($element,0,3) == 'cmi') {
+                $element = str_replace('__','.',$element);
+                $element = preg_replace('/_(\d+)/',".\$1",$element);
+                if ($track = get_record_select('scorm_scoes_track',"userid='$USER->id' AND scormid='$scorm->id' AND scoid='$scoid' AND element='$element'")) {
+                    $track->value = $value;
+                   $track->timemodified = time();
+                    $result = update_record('scorm_scoes_track',$track) && $result;
+                } else {
+                    $track->userid = $USER->id;
+                    $track->scormid = $scorm->id;
+                    $track->scoid = $scoid;
+                    $track->element = $element;
+                    $track->value = $value;
+                   $track->timemodified = time();
+                    $result = insert_record('scorm_scoes_track',$track) && $result;
+                }
+            }
+        }
+        if ($result) {
+            echo "true\n0";
+        } else {
+            echo "false\n101";
+        }
     }
 ?>