Update of /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25933/services/classmgr
Modified Files:
restoreBackup.lcp
Log Message:
properly import lesson, lesson sequence, and content learning objects from a backup file.
Index: restoreBackup.lcp
===================================================================
RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr/restoreBackup.lcp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** restoreBackup.lcp 2 Mar 2008 19:22:27 -0000 1.1
--- restoreBackup.lcp 2 Mar 2008 21:59:00 -0000 1.2
***************
*** 10,15 ****
--- 10,18 ----
include_once(LIB_PATH.'lob/lc_lob.php');
+ include_once(LIB_PATH.'lob/lc_lob_class.php');
include_once(LIB_PATH.'lob/lc_lob_xml.php');
include_once(LIB_PATH.'lesson/lc_lesson_xml.php');
+ include_once(LIB_PATH.'lesson/lc_lesson_sequence.php');
+ include_once(LIB_PATH.'lesson/lc_lesson.php');
/**
***************
*** 80,100 ****
continue;
}
- $lobSub = null;
$lobRepoObj = Lc_Lob_Xml::parseNode($node, $tempdir);
! if ($lobRepoObj->lobType == 'content') {
$t['lob_material'][] = $lobRepoObj;
}
! if ($lobRepoObj->lobType == 'activity') {
$t['lob_activity'][] = $lobRepoObj;
}
! if ($lobRepoObj->lobType == 'test') {
$t['lob_test'][] = $lobRepoObj;
}
}
! $lessonNodes = $collectionNode->getElementsByTagnameNS('http://logicampus.sourceforge.net/2006/learning_object','lesson');
$t['lesson_list'] = array();
! for ($xidx = 0; $xidx < $lobNodes->length; $xidx++) {
$lessonObj = Lc_Lesson_Xml::parseNode($node);
$t['lesson_list'][] = $lessonObj;
--- 83,103 ----
continue;
}
$lobRepoObj = Lc_Lob_Xml::parseNode($node, $tempdir);
! if ($lobRepoObj->type == 'content') {
$t['lob_material'][] = $lobRepoObj;
}
! if ($lobRepoObj->type == 'activity') {
$t['lob_activity'][] = $lobRepoObj;
}
! if ($lobRepoObj->type == 'test') {
$t['lob_test'][] = $lobRepoObj;
}
}
! $lessonNodes = $collectionNode->getElementsByTagnameNS('http://logicampus.sourceforge.net/2006/lesson','lesson');
$t['lesson_list'] = array();
! for ($xidx = 0; $xidx < $lessonNodes->length; $xidx++) {
! $node = $lessonNodes->item($xidx);
$lessonObj = Lc_Lesson_Xml::parseNode($node);
$t['lesson_list'][] = $lessonObj;
***************
*** 113,116 ****
--- 116,120 ----
$tempdir = $u->sessionvars['restore_dir'];
+ $classId = $u->activeClassTaught->id_classes;
$doc = new DomDocument('1.0', 'UTF-8');
***************
*** 130,134 ****
--- 134,179 ----
$collectionNode = $root->item(1);
+ //LOBS (course materials)
+ $lobNodes = $collectionNode->getElementsByTagnameNS('http://logicampus.sourceforge.net/2006/learning_object','obj');
+
+ $t['lob_material'] = array();
+ $t['lob_test'] = array();
+ $t['lob_activity'] = array();
+ for ($xidx = 0; $xidx < $lobNodes->length; $xidx++) {
+ $node = $lobNodes->item($xidx);
+ if ($node->nodeType == XML_TEXT_NODE) {
+ continue;
+ }
+ $lobRepoObj = Lc_Lob_Xml::parseNode($node, $tempdir);
+ $lobRepoObj->save();
+
+ $classObj = $lobRepoObj->useInClass($classId);
+ }
+
+
+ //LESSON STRUCTURE (sequence and settings)
+ $lessonNodes = $collectionNode->getElementsByTagnameNS('http://logicampus.sourceforge.net/2006/lesson','lesson');
+
+ $t['lesson_list'] = array();
+ for ($xidx = 0; $xidx < $lessonNodes->length; $xidx++) {
+ $node = $lessonNodes->item($xidx);
+ $lessonObj = Lc_Lesson_Xml::parseNode($node);
+ $lessonObj->lessonDo->idClasses = $classId;
+ //find the learning path, which is the encloser for all sequence items
+ $pathCollection = $node->getElementsByTagname('learningpath');
+ $path = $pathCollection->item(0);
+ if (is_object($path) ) {
+ $seqItems = Lc_Lesson_Xml::parseSequenceNodes($path);
+ }
+
+ $lessonObj->lessonSeq = new Lc_LessonSequence(-1,$classId);
+ $lessonObj->lessonSeq->items = $seqItems;
+ //debug($seqItems);
+
+ $lessonObj->save();
+ }
+
$this->cleanupDir();
+ exit();
}
|