Index: openacs-4/packages/scorm-core/tcl/scorm-core-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/scorm-core/tcl/scorm-core-procs.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/scorm-core/tcl/scorm-core-procs.tcl 23 May 2010 20:27:51 -0000 1.2
+++ openacs-4/packages/scorm-core/tcl/scorm-core-procs.tcl 28 May 2010 21:23:04 -0000 1.3
@@ -68,7 +68,7 @@
return -code error [_ scorm-importer.NotSCORM2004]
}
- set default_organization [scorm_core::default_organization -manifest $manifest_doc]
+ set default_organization [scorm_core::get_default_organization -manifest $manifest_doc]
set title [[$default_organization child 1 title] text]
if { [db_0or1row course_exists {}] } {
@@ -112,7 +112,12 @@
Edit the course information, using a parsed manifest. At the moment, this
rebuilds the cp_node structure, so tracking data for the course is lost.
} {
- # delete old cp_nodes unless I can figure out how to preserve them.
+
+ # Delete old cp_nodes until I can figure out how to preserve them. This will
+ # also delete the cmi data, i.e. tracking information.
+
+ db_dml delete_cp_nodes {}
+
scorm_core::update_rte_data \
-scorm_course_id $course_id \
-manifest $manifest
@@ -150,6 +155,14 @@
return [[$manifest xslt [dom parse [::tDOM::xmlReadFile $xsl_src]]] documentElement]
}
+ad_proc scorm_core::get_manifest {
+ -course_id:required
+} {
+ Return the saved manifest XML.
+} {
+ return [db_string get_manifest {} -default ""]
+}
+
ad_proc scorm_core::create_folder {
-name:required
-parent_id:required
@@ -256,7 +269,7 @@
return $rgt
}
-ad_proc scorm_core::default_organization {
+ad_proc scorm_core::get_default_organization {
-manifest:required
} {
Return the default organization for the course, null if none exists.
@@ -291,8 +304,10 @@
if { [$item hasAttribute resourceId] } {
# get reference to resource and set href accordingly
set resource $resources([$item getAttribute resourceId])
- #$item setAttribute href "[$resource getAttribute base] [$resource getAttribute href]"
- $item setAttribute href "[$resource getAttribute href]"
+ $item setAttribute href [$resource getAttribute href]
+ if { [$resource hasAttribute base] } {
+ $item setAttribute base [$resource getAttribute base]
+ }
$item removeAttribute resourceId
if { [$resource getAttribute scormType] eq "sco" } {
$item setAttribute sco 1
@@ -370,7 +385,7 @@
global sequencing_collection
set sequencing_collection [$manifest getElementsByTagName "imsss:sequencingCollection"]
- set default_org [scorm_core::default_organization -manifest $manifest]
+ set default_org [scorm_core::get_default_organization -manifest $manifest]
set activity_tree [scorm_core::rte_activity_tree::seq_activity -node $default_org -order -1]
@@ -407,6 +422,7 @@
foreach child [$node childNodes] {
switch -- [$child localName] {
item {
+
# store counter for child ordering in node
if { [$node hasAttribute order] } {
set order [$node getAttribute order]
Index: openacs-4/packages/scorm-core/tcl/scorm-core-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/scorm-core/tcl/scorm-core-procs.xql,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/scorm-core/tcl/scorm-core-procs.xql 23 May 2010 20:27:51 -0000 1.2
+++ openacs-4/packages/scorm-core/tcl/scorm-core-procs.xql 28 May 2010 21:23:04 -0000 1.3
@@ -31,6 +31,13 @@
+
+
+ delete from cp_node
+ where cp_package_id = :course_id
+
+
+
update cp_package
@@ -42,6 +49,15 @@
+
+
+
+ select xmldata
+ from cp_package
+ where cp_package_id = :course_id
+
+
+
select folder_id
Index: openacs-4/packages/scorm-player/www/resources/scripts/ilias/rte.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/scorm-player/www/resources/scripts/ilias/rte.js,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/scorm-player/www/resources/scripts/ilias/rte.js 13 May 2010 21:32:28 -0000 1.2
+++ openacs-4/packages/scorm-player/www/resources/scripts/ilias/rte.js 28 May 2010 21:23:04 -0000 1.3
@@ -11752,7 +11752,13 @@
if (item.parameters != "" && envEditor==false) {
item.parameters = "?"+ item.parameters;
}
- setResource(item.id, item.href+randNumber+item.parameters, this.config.package_url);
+
+ // DRB: Ilias's version doesn't honor a resource's base attribute, which is non-compliant.
+ if (item.base == null) {
+ setResource(item.id, item.href+randNumber+item.parameters, this.config.package_url);
+ } else {
+ setResource(item.id, item.href+randNumber+item.parameters, item.base);
+ }
}