function exportXMLPageObjects($a_target_dir, &$a_xml_writer, $a_inst, &$expLog) { global $ilBench; include_once "./Modules/Scorm2004/classes/class.ilSCORM2004PageNode.php"; include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Page.php"; $tree = new ilTree($this->slm_id); $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node'); $tree->setTreeTablePK("slm_id"); $pages = $tree->getSubTree($tree->getNodeData($this->getId()), true, 'page'); foreach ($pages as $page) { $expLog->write(date("[y-m-d H:i:s] ") . "Page Object " . $page["obj_id"]); // export xml to writer object $page_obj = new ilSCORM2004Page($page["obj_id"]); $page_obj->exportXML($a_xml_writer, "normal", $a_inst); //collect media objects $mob_ids = $page_obj->getMediaObjectIds(); foreach ($mob_ids as $mob_id) { $this->mob_ids[$mob_id] = $mob_id; } // collect all file items $file_ids = $page_obj->getFileItemIds(); foreach ($file_ids as $file_id) { $this->file_ids[$file_id] = $file_id; } include_once "./Services/COPage/classes/class.ilPCQuestion.php"; $q_ids = ilPCQuestion::_getQuestionIdsForPage("sahs", $page["obj_id"]); if (count($q_ids) > 0) { include_once "./Modules/TestQuestionPool/classes/class.assQuestion.php"; foreach ($q_ids as $q_id) { $q_obj =& assQuestion::_instanciateQuestion($q_id); $qti_file = fopen($a_target_dir . "/qti_" . $q_id . ".xml", "w"); fwrite($qti_file, $q_obj->toXML()); fclose($qti_file); } } unset($page_obj); } }