function main() { $collection_id = 376317; # olpc dictionary.... WAY too big $fetcher = new OWFetcher(); echo "fullset...\n"; $fullSetXML = $fetcher->getFullSetXML_asString( $collection_id ); $fullSet = new DOMDocument(); $success = $fullSet->loadXML( $fullSetXML ); if ( !$success ) { throw new Exception( "Failed to load category XML from server" ); } $maxSubSet = dom2set( $fullSet ); # sort($maxSubSet); foreach ($maxSubSet as $dmid) {print "$dmid,";} # var_dump($fullSet->saveXML()); $exercise = new Exercise( $fetcher, $fullSet, $maxSubSet ); # pwease, not the max! # $exercise->setLanguages(array("eng","fra","deu")); $exercise->setQuestionLanguages( array( "deu" ) ); $exercise->setAnswerLanguages( array( "eng" ) ); # $question_dmid=$maxSubSet[array_rand($maxSubSet)]; echo "question...\n"; # $questionNode=$exercise->getQuestionNode($question_dmid); # dumpNode($questionNode); $runex = $exercise->randSubExercise( 10 ); dumpExercise( $runex, 5 ); echo "\n\n=== presistence test ===\n\n"; saveExercise( $runex ); $exid = mysql_insert_id(); $loadex = loadExercise( $exid ); $loadex->setFetcher( $fetcher ); dumpExercise( $loadex, 10 ); }
/** create a new Exercise from scratch. # */ public function createExercise( $userName, $size, $collection_id, $questionLanguages, $answerLanguages, $hide ) { # this can be simplified for now... # first get a master exercise... $fetcher = new OWFetcher(); $fullSetXML = $fetcher->getFullSetXML_asString( $collection_id, array_merge( $questionLanguages, $answerLanguages ) ); $fullSet = new DOMDocument(); $success = $fullSet->loadXML( $fullSetXML ); if ( !$success ) { throw new Exception( "Failed to load category XML from server" ); } $exercise = new Exercise( $fetcher, $fullSet ); $exercise->setQuestionLanguages( $questionLanguages ); $exercise->setAnswerLanguages( $answerLanguages ); $exercise->setHide( $hide ); # This is the master exercise... which we should now store and # worship. That's for mark II though. # Today we toss it in the trash and just snarf a # subset instead. Mean huh? $subExercise = $exercise->randSubExercise( $size ); $this->saveExercise( $subExercise, $userName ); return $subExercise; }