Index: openacs-4/packages/scorm-importer/tcl/import-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/scorm-importer/tcl/import-procs.tcl,v
diff -u -N -r1.2 -r1.3
--- openacs-4/packages/scorm-importer/tcl/import-procs.tcl 14 May 2010 16:59:29 -0000 1.2
+++ openacs-4/packages/scorm-importer/tcl/import-procs.tcl 14 May 2010 23:30:31 -0000 1.3
@@ -12,27 +12,27 @@
{-scorm_course_id ""}
{-online f}
{-default_lesson_mode browse}
- {-verbose_p 0}
} {
Create a Scorm course skeleton based on a parsed manifest.
} {
# build activity tree before we transform the document
array set adl_info \
- [scorm_importer::rte_activity_tree::create \
- -manifest [$manifest documentElement] \
- -verbose_p $verbose_p]
+ [scorm_importer::rte_activity_tree::create -manifest [$manifest documentElement]]
set activity_tree $adl_info(activity_tree)
set global_to_system [expr { [string is true $adl_info(global)] ? "t" : "f" }]
+ # Ilias saves the transformed document in XML. We will store the original in order
+ # to facilitate course export.
+ set xmldata [$manifest asXML]
+
# transform scorm xml using ilias's normalizing xsl
set xsl_src "[acs_root_dir]/packages/scorm-importer/templates/xsl/op/op-scorm13.xsl"
dom parse [::tDOM::xmlReadFile $xsl_src] transform
$manifest xslt $transform manifest
set document_element [$manifest documentElement]
- set xmldata [$manifest asXML]
set organization_node [$document_element child all organization]
set title [$organization_node getAttribute title ""]
@@ -50,14 +50,9 @@
# create row for package even though we don't have any info yet
db_dml insert_package {}
- import_manifest \
- -cp_package_id $scorm_course_id \
- -manifest $document_element \
- -verbose_p $verbose_p
+ import_node -cp_package_id $scorm_course_id -node $document_element
- set jsdata [scorm_importer::rte_jsdata::create \
- -manifest $document_element \
- -verbose_p $verbose_p]
+ set jsdata [scorm_importer::rte_jsdata::create -manifest $document_element]
db_dml update_package {}
@@ -133,50 +128,26 @@
}
-ad_proc scorm_importer::import_manifest {
- -cp_package_id:required
- -manifest:required
- {-verbose_p 0}
-} {
- build db structures for course
-} {
-
- # set up lft as global so we can track children inside
- # import_node and can update rgt
- global lft
- set lft 1
-
- # import all nodes, starting with root (manifest)
- import_node -node $manifest -cp_package_id $cp_package_id -verbose_p $verbose_p
-
-}
-
ad_proc scorm_importer::import_node {
{-node:required}
{-cp_package_id:required}
{-depth 1}
{-parent 0}
- {-verbose_p 0}
} {
Import given node
} {
- # bring in lft
- global lft
-
set nodename [$node nodeName]
- if { $verbose_p } { ns_write "$nodename " }
# create the node
- set cp_node_id [db_nextval cp_node_cp_node_id_seq]
+ set cp_node_id [db_nextval cp_node_seq]
+ set rgt $cp_node_id
+
db_dml insert_cp_node {}
# and insert into tree
db_dml add_to_cp_tree {}
- # set up next child or, if none, rgt (see below)
- incr lft
-
# gather attributes for insertion, starting with cp_node_id
set attributes [list cp_node_id]
@@ -220,17 +191,14 @@
# run sub nodes
foreach child [$node childNodes] {
- import_node -node $child -cp_package_id $cp_package_id \
- -depth [expr $depth + 1] -parent $cp_node_id -verbose_p $verbose_p
+ set rgt [import_node -node $child -cp_package_id $cp_package_id \
+ -depth [expr $depth + 1] -parent $cp_node_id]
}
# update cp_tree
db_dml update_rgt {}
- # set up next child
- incr lft
-
- return
+ return $rgt
}
ad_proc scorm_importer::import_files {
Index: openacs-4/packages/scorm-importer/tcl/import-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/scorm-importer/tcl/Attic/import-procs.xql,v
diff -u -N -r1.2 -r1.3
--- openacs-4/packages/scorm-importer/tcl/import-procs.xql 14 May 2010 16:59:29 -0000 1.2
+++ openacs-4/packages/scorm-importer/tcl/import-procs.xql 14 May 2010 23:30:31 -0000 1.3
@@ -31,9 +31,9 @@
insert into cp_tree
- (child, depth, lft, cp_package_id, parent, rgt)
+ (child, depth, cp_package_id, parent, rgt)
values
- (:cp_node_id, :depth, :lft, :cp_package_id, :parent, '0')
+ (:cp_node_id, :depth, :cp_package_id, :parent, '0')
@@ -48,7 +48,7 @@
- update cp_tree set rgt = :lft where child = :cp_node_id
+ update cp_tree set rgt = :rgt where child = :cp_node_id