[Logicampus-cvs] logicampus/src/logicreate/lib/lesson lc_lesson.php, 1.2, 1.3 lc_lesson_sequence.ph
Brought to you by:
trilexcom
From: Mark K <har...@us...> - 2008-03-02 21:59:05
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib/lesson In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25933/lib/lesson Modified Files: lc_lesson.php lc_lesson_sequence.php lc_lesson_xml.php Log Message: properly import lesson, lesson sequence, and content learning objects from a backup file. Index: lc_lesson.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/lesson/lc_lesson.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** lc_lesson.php 2 Mar 2008 18:03:24 -0000 1.2 --- lc_lesson.php 2 Mar 2008 21:59:00 -0000 1.3 *************** *** 9,14 **** class Lc_Lesson { ! var $lessonDo = null; ! var $guid = ''; function Lc_Lesson($id=-1) { --- 9,16 ---- class Lc_Lesson { ! var $lessonDo = null; ! var $guid = ''; ! var $lessonSeq = null; ! var $seqLoaded = false; function Lc_Lesson($id=-1) { *************** *** 31,34 **** --- 33,61 ---- /** + * Save the lessonDo + */ + function save() { + $goodSave = true; + $goodSave &= $this->lessonDo->save(); + + if (is_object($this->lessonSeq) ) { + if ($this->lessonSeq->lessonId != $this->getId() ) { + $this->lessonSeq->lessonId = $this->getId(); + } + $goodSave &= $this->lessonSeq->save(); + } + return $goodSave; + } + + /** + * Load up the LOB sequence that goes with this lesson + */ + function loadSequence($classId) { + $this->lessonSeq = new Lc_LessonSequence($this->getId(),$classId); + $this->lessonSeq->loadItems(); + $this->seqLoaded = true; + } + + /** * Set the GUID */ Index: lc_lesson_sequence.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/lesson/lc_lesson_sequence.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** lc_lesson_sequence.php 1 Mar 2008 23:43:19 -0000 1.1 --- lc_lesson_sequence.php 2 Mar 2008 21:59:00 -0000 1.2 *************** *** 1,6 **** <?php include_once(LIB_PATH.'PBDO/ClassLessonSequence.php'); ! class LC_LessonSequence { var $lessonId = -1; --- 1,7 ---- <?php include_once(LIB_PATH.'PBDO/ClassLessonSequence.php'); + include_once(LIB_PATH.'PBDO/LobClassRepo.php'); ! class Lc_LessonSequence { var $lessonId = -1; *************** *** 8,12 **** var $items = array(); ! function LC_LessonSequence($lessonId,$classId) { $this->lessonId = $lessonId; $this->classId = $classId; --- 9,13 ---- var $items = array(); ! function Lc_LessonSequence($lessonId,$classId) { $this->lessonId = $lessonId; $this->classId = $classId; *************** *** 20,23 **** --- 21,77 ---- } + /** + * Save each item + */ + function save() { + foreach ($this->items as $_idx => $_item) { + if( isset($_item->guid)) { + $this->resolveReference($_item, $_item->guid); + } + if ($_item->lessonId != $this->lessonId || + $_item->classId != $this->classId ) { + $_item->lessonId = $this->lessonId; + $_item->classId = $this->classId; + } + if ($_item->rank == 0) { + $_item->rank = $_idx+1; + } + $_item->save(); + } + } + + /** + * Reload a class lob and set the cached info of this sequence item. + */ + function resolveReference(&$item,$guid) { + + $classLob = LobClassRepo::load( array('lob_guid'=>$guid)); + $item->set('lobClassRepoId', $classLob->lobClassRepoId); + $item->set('lobMime', $classLob->lobMime); + $item->set('lobType', $classLob->lobType); + $item->set('lobSubType', $classLob->lobSubType); + $item->set('lobTitle', $classLob->lobTitle); + $item->set('linkText', $classLob->lobUrltitle); + $item->set('lobGuid', $guid); + $item->set('lobVersion', $classLob->lobVersion); + $item->set('visible', 1); + unset($item->guid); + /* + lob_class_repo_id: 1 + class_id: 1 + lob_repo_entry_id: 1 + lob_guid: cf7ba7b8-9da9-4d1d-91dd-24d2ea65fa37 + lob_title: activity 1 + lob_urltitle: activity_1 + lob_copy_style: n + lob_type: activity + lob_sub_type: Text Response + lob_mime: X-LMS/activity + lob_description: sdfadsf + lob_version: 3 + lob_bytes: 0 + */ + } + function fetchObject($sequenceId) { $type = 'content'; Index: lc_lesson_xml.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/lesson/lc_lesson_xml.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** lc_lesson_xml.php 2 Mar 2008 18:03:24 -0000 1.2 --- lc_lesson_xml.php 2 Mar 2008 21:59:00 -0000 1.3 *************** *** 2,5 **** --- 2,6 ---- include_once(LIB_PATH.'PBDO/ClassLessons.php'); + include_once(LIB_PATH.'PBDO/ClassLessonSequence.php'); include_once(LIB_PATH.'lesson/lc_lesson.php'); *************** *** 32,38 **** $result = $n->getElementsByTagname('title'); $title = $result->item(0); - $lessonDo->title = $title->nodeValue; // TODO: double check the DB id belongs to this user. $dbid = $n->getAttribute('dbid'); --- 33,42 ---- $result = $n->getElementsByTagname('title'); $title = $result->item(0); $lessonDo->title = $title->nodeValue; + $result = $n->getElementsByTagname('description'); + $description = $result->item(0); + $lessonDo->description = $description->nodeValue; + // TODO: double check the DB id belongs to this user. $dbid = $n->getAttribute('dbid'); *************** *** 44,128 **** $lessonObj->setGuid($guid); return $lessonObj; ! /* ! $children = $type->childNodes; ! $content = ''; ! if ($children->length) { ! $content = trim($children->item(0)->nodeValue); ! $guid = $n->getAttribute('guid'); ! $dbid = $n->getAttribute('dbid'); ! } ! else { ! die ('unknown class: '. get_class($type)); ! return null; ! } ! ! $lob = null; ! $lob = new LobRepoEntry(); ! $lob->set('lobGuid',$guid); ! switch ($content) { ! case 'content': ! $lob->set('lobType','content'); ! break; ! case 'activity': ! $lob->set('lobType','activity'); ! break; ! case 'test': ! $lob->set('lobType','test'); ! break; ! } ! if ($lob->lobType == '') { return null; die ('unknown type '. $content); } ! ! ! $result = $n->getElementsByTagname('title'); ! $node = $result->item(0); ! $children = $node->childNodes; ! $lob->set('lobTitle', trim($children->item(0)->nodeValue) ); ! ! $result = $n->getElementsByTagname('content'); ! $node = $result->item(0); ! if (is_object($node) ){ ! $children = $node->childNodes; ! $lob->set('lobContent', trim($children->item(0)->nodeValue) ); ! } ! ! $result = $n->getElementsByTagname('filename'); ! $node = $result->item(0); ! if (is_object($node) ){ ! $children = $node->childNodes; ! $lob->set('lobFilename', trim($children->item(0)->nodeValue) ); ! ! $urlTitle = Lc_Lob_Util::createLinkText(trim($children->item(0)->nodeValue)); ! $lob->set('lobUrltitle', $urlTitle ); ! $lob->set('lobBinary', file_get_contents($this->tempdir.'/content/'.trim($children->item(0)->nodeValue)) ); ! } else { ! $urlTitle = Lc_Lob_Util::createLinkText(trim( $lob->get('lobTitle')) ); ! $lob->set('lobUrltitle', $urlTitle ); ! } ! ! $result = $n->getElementsByTagname('description'); ! $node = $result->item(0); ! if (is_object($node) ){ ! $children = $node->childNodes; ! $lob->set('lobDescription', trim($children->item(0)->nodeValue) ); ! } ! $result = $n->getElementsByTagname('subtype'); ! $node = $result->item(0); ! if (is_object($node) ){ ! $children = $node->childNodes; ! $lob->set('lobSubType', trim($children->item(0)->nodeValue) ); ! } ! ! $result = $n->getElementsByTagname('mime'); ! $node = $result->item(0); ! if (is_object($node) ){ ! $children = $node->childNodes; ! $lob->set('lobMime', trim($children->item(0)->nodeValue) ); } ! ! return $lob; ! // debug($children); ! */ } } --- 48,69 ---- $lessonObj->setGuid($guid); return $lessonObj; ! } ! function parseSequenceNodes($learningPathNode) { ! $seqNodes = $learningPathNode->getElementsByTagname('lobsequence'); ! $len = $seqNodes->length; ! $seqItems = array(); ! for ($x=0; $x < $len; $x++) { ! $_seqNode = $seqNodes->item($x); ! $_seqItem = new ClassLessonSequence(); ! $_start = $_seqNode->getElementsByTagname('start')->item(0); ! $_seqItem->startOffset = $_start->nodeValue - ( $_start->nodeValue % 86400 ); ! $_seqItem->startTime = ($_start->nodeValue % 86400); ! $_lobNode = $_seqNode->getElementsByTagname('lob')->item(0); ! $_seqItem->guid = $_lobNode->getAttribute('refid'); ! $seqItems[] = $_seqItem; } ! return $seqItems; } } |