[Logicampus-svn] SF.net SVN: logicampus:[1301] logicampus/trunk/src/logicreate/services/ classmgr/e
Brought to you by:
trilexcom
From: <fah...@us...> - 2009-07-29 13:40:34
|
Revision: 1301 http://logicampus.svn.sourceforge.net/logicampus/?rev=1301&view=rev Author: faheemkhan Date: 2009-07-29 13:40:22 +0000 (Wed, 29 Jul 2009) Log Message: ----------- Submission of Task 158171 Modified Paths: -------------- logicampus/trunk/src/logicreate/services/classmgr/exportContent.lcp Modified: logicampus/trunk/src/logicreate/services/classmgr/exportContent.lcp =================================================================== --- logicampus/trunk/src/logicreate/services/classmgr/exportContent.lcp 2009-03-06 07:32:34 UTC (rev 1300) +++ logicampus/trunk/src/logicreate/services/classmgr/exportContent.lcp 2009-07-29 13:40:22 UTC (rev 1301) @@ -49,6 +49,7 @@ * Let's try to create a zip file with the XML and externalize all content from * classdoclib */ + //---------------> function downloadRun($db, &$u, &$lc, &$t) { $this->obj_zip = new LcZipFile(); // $this->obj_zip->add_dir('interactions/'); @@ -136,10 +137,11 @@ $doclobs = $this->get_document_files(); foreach ($doclobs as $xmlnode) { + $root->children[] = $xmlnode; } unset($doclobs); - + //do homework (interactions) // $xmlObj = new xmlparser('<lobcol></lobcol>'); // $root =& $xmlObj->getRoot(); @@ -157,15 +159,15 @@ } unset($tstlobs); - +/* $lesslobs = $this->get_lesson_nodes(); foreach ($lesslobs as $xmlnode) { $root->children[] = $xmlnode; } unset($lesslobs); +*/ - // print_r($lobs);exit(); //$root->children =& $classroom_nodes; @@ -213,30 +215,38 @@ echo $wiky; exit; } + //------------------> - /** * return an array of arrays that represent document lobs */ function get_document_files() { $lob_nodes = array(); $sql = ' - SELECT A.*,B.*,C.* + SELECT A.*,B.*,C.*,D.* FROM lob_class_repo as A + LEFT JOIN lob_repo_entry AS D ON D.lob_repo_entry_id=A.lob_repo_entry_id LEFT JOIN lob_class_content AS B ON A.lob_class_repo_id = B.lob_class_repo_id LEFT JOIN lob_class_metadata AS C ON C.lob_class_repo_id = A.lob_class_repo_id WHERE A.class_id='.$this->classId.' - AND (lob_sub_type = "document" OR lob_sub_type = "image") '; + AND (A.lob_sub_type = "document" OR A.lob_sub_type = "image") '; $db = DB::getHandle(); $db->query($sql); $db->RESULT_TYPE = MYSQL_ASSOC; - + /*$temp_filename=0; + $temp_binary=0; + */ while ($db->nextRecord()) { if (trim($db->record['lob_filename']) == ''){ + // __FIXME__ make the filename safe for saving. // change quotes? change dots? change spaces? - $db->record['lob_filename'] = $db->record['lob_title']; + + + //$db->record['lob_filename'] = $db->record['lob_title']; + //$db->record['lob_binary']=$db->record['lob_text']; + } @@ -249,25 +259,35 @@ , 'content/'.str_replace('/','_',strip_tags($db->record['lob_filename'])) ); + + - $type_node = new xml_node('lob:type',null,null,'content'); //subtype list($type,$submime) = explode('/', $db->record['lob_mime']); $sub_type_node = new xml_node('lob:subtype',array('mime'=>$db->record['lob_mime']),null); $mim_type_node = new xml_node('lob:mime',null,null, $db->record['lob_mime']); - + echo $db->record['lob_mime']; + if ($type == 'image') { $sub_type_node->value = 'image'; } else { $sub_type_node->value = 'document'; + } + $lob_caption_node = new xml_node('lob:caption',null,null,$db->record['lob_caption']); + $lob_caption_node->cdata = true; $lob_title_node = new xml_node('lob:title',null,null,$db->record['lob_title']); + $lob_title_node->cdata = true; $lob_url = new xml_node('lob:urltitle',null,null,$db->record['lob_urltitle']); + $lob_url->cdata = true; + $lob_notes = new xml_node('lob:notes',null,null,$db->record['lob_notes']); + $lob_url->cdata = true; + $lob_file_node = new xml_node('lob:filename',null,null,$db->record['lob_filename']); $lob_file_node->cdata = true; - + $lob_desc_node = new xml_node('lob:description',null,null,$db->record['lob_description']); $lob_desc_node->cdata = true; @@ -276,22 +296,27 @@ $xml_child_nodes[] = $type_node; $xml_child_nodes[] = $sub_type_node; $xml_child_nodes[] = $mim_type_node; + + + $xml_child_nodes[] = $lob_title_node; + $xml_child_nodes[] = $lob_url; $xml_child_nodes[] = $lob_file_node; $xml_child_nodes[] = $lob_desc_node; - $xml_child_nodes[] = $lob_url; - + $xml_child_nodes[]=$lob_caption_node; + $xml_child_nodes[]=$lob_notes; //lifecycle $createdon = $db->record['created_on']; $lifecycleArray = array( - 'lob:version'=>$db->record['version'], + 'lob:version'=>$db->record['lob_version'], 'lob:createdon'=>$createdon, 'createdon_dateformat'=>'unix' ); + - $xml_child_nodes[] = $this->makeLifecycleNode($lifecycleArray); - + + //metadata $metadataArray = array( 'lob:author'=>$db->record['author'], @@ -299,6 +324,7 @@ 'lob:subdisc'=>$db->record['subdisc'], 'subject_abbr'=>'true', 'subdisc_abbr'=>'false', + 'lob:source'=>$db->record['source'], 'lob:copyright'=>$db->record['copyright'], 'lob:license'=>$db->record['license'] ); @@ -322,12 +348,13 @@ function get_content_nodes() { $xml_child_nodes = array(); $sql = ' - SELECT A.*, B.*, C.* + SELECT A.*, B.*, C.*,D.* FROM lob_class_repo A LEFT JOIN lob_class_content AS B ON A.lob_class_repo_id = B.lob_class_repo_id LEFT JOIN lob_class_metadata AS C ON B.lob_class_repo_id = C.lob_class_repo_id + INNER JOIN lob_repo_entry AS D ON D.lob_repo_entry_id=A.lob_repo_entry_id WHERE A.class_id='.$this->classId.' AND A.lob_type = "content" AND A.lob_sub_type != "document" @@ -342,9 +369,17 @@ while ($db->nextRecord()) { $type_node = new xml_node('lob:type',null,null,'content'); $sub_type_node = new xml_node('lob:subtype',null,null,$db->record['lob_sub_type']); + $mim_type_node = new xml_node('lob:mime',null,null, $db->record['lob_mime']); $lob_title_node = new xml_node('lob:title',null,null,$db->record['lob_title']); $lob_title_node->cdata = true; + //done + + $lob_notes = new xml_node('lob:notes',null,null,$db->record['lob_notes']); + $lob_notes->cdata = true; + $lob_url = new xml_node('lob:urltitle',null,null,$db->record['lob_urltitle']); + $lob_url->cdata = true; + //done $lob_content_node = new xml_node('lob:content',null,null,$db->record['lob_text']); $lob_content_node->cdata = true; @@ -352,9 +387,11 @@ $xml_child_nodes[] = $type_node; $xml_child_nodes[] = $sub_type_node; $xml_child_nodes[] = $mim_type_node; + $xml_child_nodes[] = $lob_title_node; + $xml_child_nodes[]=$lob_url; $xml_child_nodes[] = $lob_content_node; - + $xml_child_nodes[]=$lob_notes; //lifecycle $lifecycleArray = array( 'lob:version'=>'1.0', @@ -370,6 +407,7 @@ 'lob:subdisc'=>$db->record['subdisc'], 'subject_abbr'=>'true', 'subdisc_abbr'=>'false', + 'lob:source'=>$db->record['source'], 'lob:copyright'=>$db->record['copyright'], 'lob:license'=>$db->record['license'] ); @@ -400,14 +438,16 @@ //if you select C.* and there's no record for the metadata // the lob_repo_id will be overwritten with a blank, // Same thing can happen for table B. + $sql = ' SELECT A.*, B.*, C.subject, C.subdisc, C.author, C.copyright, C.license, C.user_version - ,C.status, C.updated_on, C.created_on + ,C.status, C.updated_on, C.created_on,D.* FROM lob_class_repo as A LEFT JOIN lob_class_activity AS B ON A.lob_class_repo_id = B.lob_class_repo_id LEFT JOIN lob_class_metadata AS C ON A.lob_class_repo_id = C.lob_class_repo_id + INNER JOIN lob_repo_entry AS D ON D.lob_repo_entry_id=A.lob_repo_entry_id WHERE A.class_id='.$this->classId.' AND A.lob_type ="activity"'; @@ -423,13 +463,14 @@ exit(); // */ while ($db->nextRecord()) { - $type_node = new xml_node('lob:type',null,null,'interaction'); + $type_node = new xml_node('lob:type',null,null,$db->record['lob_type']); //subtype - list($type,$submime) = explode('/', $db->record['lob_mime']); - $sub_type_node = new xml_node('lob:subtype',null,null); + //list($type,$submime) = explode('/', $db->record['lob_mime']); + $sub_type_node = new xml_node('lob:subtype',null,null,$db->record['lob_sub_type']); + $actual_sub_type_node = new xml_node('lob:actualsubtype',null,null,$db->record['lob_sub_type']); $mim_type_node = new xml_node('lob:mime',null,null, $db->record['lob_mime']); - $resp_node = new xml_node('logicampus:response',null,null); - + $resp_node = new xml_node('logicampus:response',null,null,$db->record['lob_notes']); + $notes_node = new xml_node('lob:notes',null,null,$db->record['lob_notes']); /* 1=>"Upload a file", 2=>"Text response", @@ -479,23 +520,32 @@ $lob_title_node = new xml_node('lob:title',null,null,$db->record['lob_title']); $lob_title_node->cdata = true; - + + $lob_urltitle_node = new xml_node('lob:urltitle',null,null,$db->record['lob_urltitle']); + $lob_urltitle_node->cdata = true; + + $lob_copystyle_node = new xml_node('lob:copystyle',null,null,$db->record['lob_copy_style']); + $lob_copystyle_node->cdata = true; + $lob_desc_node = new xml_node('lob:description',null,null,$db->record['lob_description']); $lob_desc_node->cdata = true; $xml_child_nodes = array(); $xml_child_nodes[] = $type_node; $xml_child_nodes[] = $sub_type_node; + $xml_child_nodes[] = $actual_sub_type_node; $xml_child_nodes[] = $mim_type_node; - $xml_child_nodes[] = $resp_node; + $xml_child_nodes[] = $lob_title_node; $xml_child_nodes[] = $lob_desc_node; - + $xml_child_nodes[] =$lob_urltitle_node; + $xml_child_nodes[] =$lob_copystyle_node; + $xml_child_nodes[] = $notes_node; //lifecycle $createdon = $db->record['created_on']; $lifecycleArray = array( - 'lob:version'=>$db->record['version'], + 'lob:version'=>$db->record['lob_version'], 'lob:createdon'=>time(), 'createdon_dateformat'=>'unix' ); @@ -685,43 +735,93 @@ * return an array of arrays that represent document lobs */ function get_test_nodes() { + + $db = DB::getHandle(); + $db->RESULT_TYPE = MYSQL_ASSOC; $lob_nodes = array(); - $sql = ' - SELECT A.* - FROM assessment as A - WHERE A.class_id='.$this->classId; - - $db = DB::getHandle(); + $sql = " + SELECT A.*, B.*,C.* ,D.*,E.* + FROM lob_class_repo as A + LEFT JOIN lob_test AS B + ON B.lob_repo_entry_id = A.lob_repo_entry_id + LEFT JOIN lob_test_qst AS C + ON C.lob_test_id = B.lob_test_id + LEFT JOIN lob_class_metadata AS D ON D.lob_class_repo_id=A.lob_class_repo_id + LEFT JOIN lob_class_test AS E on A.lob_class_repo_id=E.lob_class_repo_id + WHERE A.class_id=".$this->classId.' + AND A.lob_type = "test" + AND A.lob_sub_type = "test" + + '; + + $db->query($sql); - $db->RESULT_TYPE = MYSQL_ASSOC; + $testRecs = array(); while ($db->nextRecord()) { - $testRecs[] = $db->record; - } - foreach ($testRecs as $tstidx => $testRec) { - $type_node = new xml_node('type',null,null,'assessment'); + + $type_node = new xml_node('type',null,null,$db->record['lob_type']); + + //subtype + //list($type,$submime) = explode('/', $db->record['lob_mime']); + $sub_type_node = new xml_node('lob:subtype',null,null,$db->record['lob_sub_type']); + + $mim_type_node = new xml_node('lob:mime',null,null, $db->record['lob_mime']); + + + + - $xml_child_nodes = array(); - - $lob_title_node = new xml_node('lob:title',null,null,$testRec['display_name']); + $lob_title_node = new xml_node('lob:title',null,null,$db->record['lob_title']); $lob_title_node->cdata = true; - $lob_desc_node = new xml_node('lob:description',null,null,$testRec['description']); + $lob_desc_node = new xml_node('lob:description',null,null,$db->record['lob_description']); $lob_desc_node->cdata = true; - $lob_instr_node = new xml_node('instructions',null,null,$testRec['instructions']); - $lob_desc_node->cdata = true; - - + $lob_copystyle_node = new xml_node('lob:copystyle',null,null,$db->record['lob_copy_style']); + $lob_copystyle_node->cdata = true; + + $lob_qsttext_node = new xml_node('lob:qsttext',null,null,$db->record['qst_text']); + $lob_qsttext_node->cdata = true; + + $lob_qstchoice_node = new xml_node('lob:qstchoices',null,null,$db->record['qst_choices']); + $lob_qstchoice_node->cdata = true; + + + $lob_qsttype_node = new xml_node('lob:questiontype',null,null,$db->record['question_type_id']); + $lob_qsttype_node->cdata = true; + + $lob_qstpoints_node = new xml_node('lob:questionpoints',null,null,$db->record['qst_points']); + $lob_qstpoints_node->cdata = true; + + $lob_numretry_node = new xml_node('lob:numretry',null,null,$db->record['num_retry']); + $lob_numretry_node->cdata = true; + + $lob_ispractice_node = new xml_node('lob:ispractice',null,null,$db->record['is_practice']); + $lob_ispractice_node->cdata = true; + + $lob_image_node = new xml_node('lob:image',null,null,$db->record['image_content_id']); + $lob_image_node->cdata = true; + + $xml_child_nodes = array(); $xml_child_nodes[] = $type_node; + $xml_child_nodes[] = $sub_type_node; + $xml_child_nodes[] = $mim_type_node; + $xml_child_nodes[] = $lob_title_node; $xml_child_nodes[] = $lob_desc_node; - $xml_child_nodes[] = $lob_instr_node; + $xml_child_nodes[] = $lob_copystyle_node; + $xml_child_nodes[] =$lob_qsttext_node; + $xml_child_nodes[] =$lob_qstchoice_node; + $xml_child_nodes[] =$lob_qsttype_node; + $xml_child_nodes[] =$lob_qstpoints_node; + $xml_child_nodes[] =$lob_numretry_node; + $xml_child_nodes[] =$lob_ispractice_node; + $xml_child_nodes[]=$lob_image_node; - $attrs = array( 'mail_responses', 'auto_publish', @@ -730,16 +830,14 @@ 'show_result_type', 'possible_points' ); - foreach($attrs as $at) { - $xml_child_nodes[] = new xml_node('logicampus:'.$at, null,null, $testRec[$at]); - } + //lifecycle - $createdon = $testRec['created_on']; + $createdon = $db->record['created_on']; $lifecycleArray = array( - 'lob:version'=>$testRec['version'], + 'lob:version'=>$db->record['lob_version'], 'lob:createdon'=>time(), 'createdon_dateformat'=>'unix' ); @@ -758,17 +856,16 @@ ); $xml_child_nodes[] = $this->makeMetadataNode($metadataArray); */ - - - $guid = lcUuid(); - $this->testGuid[ $testRec['assessment_id'] ] = $guid; - - $testLob = new xml_node('lob:obj', - array('guid'=>$guid, 'dbid'=>$testRec['assessment_id']), + + $guid = $db->record['lob_guid']; + $this->testGuid[ $db->record['lob_test_id' ] ]= $guid; + + $lob_nodes[] = new xml_node('lob:obj', + array('guid'=>$guid, 'dbid'=>$db->record['lob_repo_entry_id']), $xml_child_nodes ); - //questions + /* //questions $db->query('SELECT * FROM assessment_question WHERE assessment_id = '.$testRec['assessment_id']); $questionRecs = array(); while ($db->nextRecord()) { @@ -795,7 +892,7 @@ $testLob->children[] = $qust_node; } - $lob_nodes[] = $testLob; + */ //$lob_nodes[] = $testLob; } return $lob_nodes; } @@ -825,6 +922,7 @@ 'lob:status', 'lob:active', 'lob:createdby', + 'lob:verdion', 'lob:updatedby' ); $lifecycle_node = new xml_node('lob:lifecycle',null,null); @@ -862,10 +960,12 @@ function makeMetadataNode($metadataStruct) { + echo "metadata"; $allow = array( 'lob:subject', 'lob:subdisc', 'lob:author', + 'lob:source', 'lob:copyright', 'lob:license', 'lob:objective' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |