From: bobopinna Date: Mon, 9 Aug 2004 07:26:06 +0000 (+0000) Subject: Added multiorg display and patched some typo X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=2c508ab9b1349a6fdb925b16430d26defdaf4d44;p=moodle.git Added multiorg display and patched some typo --- diff --git a/mod/scorm/api1_2.php b/mod/scorm/api1_2.php index 2888a132be..436a372517 100644 --- a/mod/scorm/api1_2.php +++ b/mod/scorm/api1_2.php @@ -208,8 +208,16 @@ function SCORMapi() { errorCode = "0"; return "true"; break; - case "cmi.suspend_data": case "cmi.comments": + if ((value.length + cmi.comments.length) > 4096) { + errorCode = "405"; + return "false"; + } + eval(param+'=cmi.comments + "'+value+'";'); + errorCode = "0"; + return "true"; + break; + case "cmi.suspend_data": if (value.length > 4096) { errorCode = "405"; return "false"; diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index f4ab32dd15..9a096cac27 100755 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -388,7 +388,9 @@ function scorm_delete_files($directory) } function scorm_startElement($parser, $name, $attrs) { + global $scoes,$i,$resources,$parent,$level,$organization,$manifest,$defaultorg; + if ($name == 'ITEM') { $i++; $scoes[$i]['manifest'] = $manifest; @@ -409,15 +411,30 @@ function scorm_startElement($parser, $name, $attrs) { $attrs['HREF'] = ''; } $resources[$attrs['IDENTIFIER']]['href']=$attrs['HREF']; + if (!isset($attrs['ADLCP:SCORMTYPE'])) { + $attrs['ADLCP:SCORMTYPE'] = ''; + } $resources[$attrs['IDENTIFIER']]['type']=$attrs['ADLCP:SCORMTYPE']; } if ($name == 'ORGANIZATION') { + $i++; + $scoes[$i]['manifest'] = $manifest; + $scoes[$i]['organization'] = ''; + $scoes[$i]['identifier'] = $attrs['IDENTIFIER']; + $scoes[$i]['identifierref'] = ''; + $scoes[$i]['isvisible'] = ''; + $scoes[$i]['parent'] = $parent[$level]; + $level++; + $parent[$level] = $attrs['IDENTIFIER']; $organization = $attrs['IDENTIFIER']; } if ($name == 'MANIFEST') { $manifest = $attrs['IDENTIFIER']; } if ($name == 'ORGANIZATIONS') { + if (!isset($attrs['DEFAULT'])) { + $attrs['DEFAULT'] = ''; + } $defaultorg = $attrs['DEFAULT']; } } @@ -427,12 +444,23 @@ function scorm_endElement($parser, $name) { if ($name == 'ITEM') { $level--; } - if ($name == 'TITLE' && $level>0) + //if ($name == 'TITLE' && $level>0) { + if ($name == 'TITLE') { $scoes[$i]['title'] = $datacontent; - if ($name == 'ADLCP:HIDERTSUI') + } + if ($name == 'ADLCP:HIDERTSUI') { $scoes[$i][$datacontent] = 1; - if ($name == 'ADLCP:DATAFROMLMS') + } + if ($name == 'ADLCP:DATAFROMLMS') { $scoes[$i]['datafromlms'] = $datacontent; + } + if ($name == 'ORGANIZATION') { + $organization = ''; + $level--; + } + if ($name == 'MANIFEST') { + $manifest = ''; + } } function scorm_characterData($parser, $data) { @@ -508,7 +536,8 @@ function scorm_parse($basedir,$file,$scorm_id) { if (scorm_remove_spaces($scoes[$j]['isvisible']) != 'false') { $id = insert_record('scorm_scoes',$sco); } - if (($launch==0) && (isset($sco->launch)) && ($defaultorg==$sco->organization)) { + //if (($launch==0) && (isset($sco->launch)) && ($defaultorg==$sco->organization)) { + if (($launch==0) && ($defaultorg==$sco->identifier)) { $launch = $id; } } diff --git a/mod/scorm/playscorm.php b/mod/scorm/playscorm.php index a2ad50b378..43fc87dc0e 100755 --- a/mod/scorm/playscorm.php +++ b/mod/scorm/playscorm.php @@ -58,6 +58,9 @@ if (!empty($_POST["scoid"])) $scoid = "&scoid=".$_POST["scoid"]; + if (!empty($_POST['currentorg'])) { + $currentorg = $_POST['currentorg']; + } if (($scorm->popup != "") && (!empty($_POST["mode"]))) $mode = $_POST["mode"]; if (($scorm->popup == "") && (!empty($_GET["mode"]))) @@ -121,7 +124,7 @@ echo " ".get_string("coursestruct","scorm")."\n"; echo " \n\n"; $i--; } - if (($i == 0) && ($sco->parent != "/")) { + if (($i == 0) && ($sco->parent != $currentorg)) { echo "