From fc274a5f40d1c1871a259baea7f28c5e828b6f75 Mon Sep 17 00:00:00 2001 From: bobopinna Date: Tue, 6 Jul 2004 12:45:56 +0000 Subject: [PATCH] *** empty log message *** --- mod/scorm/api1_2.php | 17 ++++++++--------- mod/scorm/cmi.php | 17 ++++++++--------- mod/scorm/lib.php | 14 ++++++++++---- mod/scorm/playscorm.php | 29 ++++++++++++++++++++++++----- mod/scorm/view.php | 31 +++++++++++++++++++++++-------- 5 files changed, 73 insertions(+), 35 deletions(-) diff --git a/mod/scorm/api1_2.php b/mod/scorm/api1_2.php index d2066dcd08d..abe739ebed5 100644 --- a/mod/scorm/api1_2.php +++ b/mod/scorm/api1_2.php @@ -3,6 +3,7 @@ // function SCORMapi() { var cmi= new Object(); + var nav = new Object(); var errorCode = 0; @@ -53,7 +54,7 @@ function SCORMapi() { // end CMI Initialization // - nav = new Object(); + // Navigation Object auto) { echo 'nav.event = "continue";'."\n"; @@ -111,14 +112,10 @@ function SCORMapi() { switch (param) { case "cmi.core.session_time": if (typeof(value) == "string") { - var matchedtime = value.match(/([0-9]{2,4}):([0-9]{2}):([0-9]{2})/g); - if (matchedtime != null) { - var parsedtime = value.match(/[0-9]+/g); - if (((parsedtime.length == 3) || (parsedtime.length == 4)) && (parsedtime[0]>=0) && (parsedtime[0]<=9999) && (parsedtime[1]>=0) && (parsedtime[1]<=59) && (parsedtime[2]>=0) && (parsedtime[2]<=59)) { - if ((parsedtime.length == 4) && (parsedtime[3]<=0) && (parsedtime[3]>=99)) { - errorCode = 405; - return "false"; - } + var parsedtime = value.match(/^([0-9]{2,4}):([0-9]{2}):([0-9]{2})(\.[0-9]{1,2})?$/); + if (parsedtime != null) { + //top.alert(parsedtime); + if (((parsedtime.length == 4) || (parsedtime.length == 5)) && (parsedtime[2]>=0) && (parsedtime[2]<=59) && (parsedtime[3]>=0) && (parsedtime[3]<=59)) { eval(param+'="'+value+'";'); errorCode = 0; return "true"; @@ -249,11 +246,13 @@ function SCORMapi() { Initialized = false; errorCode = 0; cmi.core.total_time = AddTime(cmi.core.total_time, cmi.core.session_time); + //top.alert(cmi.core.total_time); if (cmi.document.theform) { cmiform = cmi.document.forms[0]; cmiform.scoid.value = "id; ?>"; cmiform.cmi_core_total_time.value = cmi.core.total_time; cmiform.submit(); + } if (nav.event != "") { id); - if ($_POST["scoid"]) { - if ($_POST["cmi_core_lesson_location"]) { + if (!empty($_POST["scoid"])) { + if (!empty($_POST["cmi_core_lesson_location"])) { set_field("scorm_sco_users","cmi_core_lesson_location",$_POST["cmi_core_lesson_location"],"scoid",$_POST["scoid"],"userid",$USER->id); } - if ($_POST["cmi_core_lesson_status"]) { + if (!empty($_POST["cmi_core_lesson_status"])) { set_field("scorm_sco_users","cmi_core_lesson_status",$_POST["cmi_core_lesson_status"],"scoid",$_POST["scoid"],"userid",$USER->id); } - if ($_POST["cmi_core_exit"]) { + if (!empty($_POST["cmi_core_exit"])) { set_field("scorm_sco_users","cmi_core_exit",$_POST["cmi_core_exit"],"scoid",$_POST["scoid"],"userid",$USER->id); } - if ($_POST["cmi_core_total_time"]) { + if (!empty($_POST["cmi_core_total_time"])) { set_field("scorm_sco_users","cmi_core_total_time",$_POST["cmi_core_total_time"],"scoid",$_POST["scoid"],"userid",$USER->id); } - if ($_POST["cmi_core_score_raw"]) { + if (!empty($_POST["cmi_core_score_raw"])) { set_field("scorm_sco_users","cmi_core_score_raw",$_POST["cmi_core_score_raw"],"scoid",$_POST["scoid"],"userid",$USER->id); } - if ($_POST["cmi_suspend_data"]) { + if (!empty($_POST["cmi_suspend_data"])) { set_field("scorm_sco_users","cmi_suspend_data",$_POST["cmi_suspend_data"],"scoid",$_POST["scoid"],"userid",$USER->id); } } @@ -64,10 +64,9 @@ - + - diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index 950df2ccad3..ba3080af443 100755 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -302,10 +302,15 @@ function scorm_endElement($parser, $name) { if ($name == "ITEM") { $level--; } - if ($name == "TITLE" && $level>0) - $manifest[$i]["title"] = $datacontent; - if ($name == "ADLCP:HIDERTSUI") - $manifest[$i][$datacontent] = 1; + if ($name == "TITLE" && $level>0) { + $manifest[$i]["title"] = $datacontent; + } + if ($name == "ADLCP:HIDERTSUI") { + $manifest[$i][$datacontent] = 1; + } + if ($name == "ORGANIZATION") { + $level = 0; + } } function scorm_characterData($parser, $data) { @@ -344,6 +349,7 @@ function scorm_parse($basedir,$file,$scorm_id) { $sco->scorm = $scorm_id; delete_records("scorm_scoes","scorm",$scorm_id); delete_records("scorm_sco_users","scormid",$scorm_id); + print_r($manifest); for ($j=1; $j<=$i; $j++) { $sco->identifier = $manifest[$j]["identifier"]; $sco->parent = $manifest[$j]["parent"]; diff --git a/mod/scorm/playscorm.php b/mod/scorm/playscorm.php index 7daa10ab4f7..14939c65efb 100755 --- a/mod/scorm/playscorm.php +++ b/mod/scorm/playscorm.php @@ -127,14 +127,25 @@ echo " \n"; $level--; } else { - echo "
  • \n"; + $i--; + } + if (($i == 0) && ($sco->parent != "/")) { + echo "