Example #1
0
 /**
  * 
  * @param object $a_table
  * @param object $a_file [optional]
  * @return 
  */
 function buildInsertStatementsXML($a_table, $a_basedir)
 {
     global $ilLog;
     include_once './Services/Xml/classes/class.ilXmlWriter.php';
     $w = new ilXmlWriter();
     $w->xmlStartTag('Table', array('name' => $a_table));
     $set = $this->il_db->query("SELECT * FROM `" . $a_table . "`");
     $ins_st = "";
     $first = true;
     while ($rec = $this->il_db->fetchAssoc($set)) {
         #$ilLog->write('Num: '.$num++);
         $w->xmlStartTag('Row');
         $fields = array();
         $types = array();
         $values = array();
         foreach ($rec as $f => $v) {
             if ($this->fields[$f]['type'] == 'text' and $this->fields[$f]['length'] >= 1000) {
                 $v = $this->shortenText($a_table, $f, $v, $this->fields[$f]['length']);
             }
             $w->xmlElement('Value', array('name' => $f, 'type' => $this->fields[$f]['type']), $v);
         }
         $w->xmlEndTag('Row');
     }
     $w->xmlEndTag('Table');
     $w->xmlDumpFile($a_basedir . '/' . $a_table . '.xml', FALSE);
 }
 function xmlDumpFile($file, $format = TRUE)
 {
     $this->getXML();
     return parent::xmlDumpFile($file, $format);
 }
 function exportScorm($a_inst, $a_target_dir, $ver, &$expLog)
 {
     copy('./xml/ilias_co_3_7.dtd', $a_target_dir . '/ilias_co_3_7.dtd');
     copy('./Modules/Scorm2004/templates/xsl/sco.xsl', $a_target_dir . '/sco.xsl');
     $a_xml_writer = new ilXmlWriter();
     // MetaData
     //file_put_contents($a_target_dir.'/indexMD.xml','<lom xmlns="http://ltsc.ieee.org/xsd/LOM"><general/><classification/></lom>');
     $this->exportXMLMetaData($a_xml_writer);
     $metadata_xml = $a_xml_writer->xmlDumpMem(false);
     $a_xml_writer->_XmlWriter;
     $xsl = file_get_contents("./Modules/Scorm2004/templates/xsl/metadata.xsl");
     $args = array('/_xml' => $metadata_xml, '/_xsl' => $xsl);
     $xh = xslt_create();
     $output = xslt_process($xh, "arg:/_xml", "arg:/_xsl", NULL, $args, NULL);
     xslt_free($xh);
     file_put_contents($a_target_dir . '/indexMD.xml', $output);
     $a_xml_writer = new ilXmlWriter();
     // set dtd definition
     $a_xml_writer->xmlSetDtdDef("<!DOCTYPE ContentObject SYSTEM \"http://www.ilias.de/download/dtd/ilias_co_3_7.dtd\">");
     // set generated comment
     $a_xml_writer->xmlSetGenCmt("Export of ILIAS Content Module " . $this->getId() . " of installation " . $a_inst . ".");
     // set xml header
     $a_xml_writer->xmlHeader();
     global $ilBench;
     $a_xml_writer->xmlStartTag("ContentObject", array("Type" => "SCORM2004SCO"));
     $this->exportXMLMetaData($a_xml_writer);
     $this->exportXMLPageObjects($a_target_dir, $a_xml_writer, $a_inst, $expLog);
     $this->exportXMLMediaObjects($a_xml_writer, $a_inst, $a_target_dir, $expLog);
     $this->exportHTML($a_inst, $a_target_dir, $expLog);
     //overwrite scorm.js for scrom 1.2
     if ($ver == "12") {
         copy('./Modules/Scorm2004/scripts/scorm_12.js', $a_target_dir . '/js/scorm.js');
     }
     $a_xml_writer->xmlEndTag("ContentObject");
     $a_xml_writer->xmlDumpFile($a_target_dir . '/index.xml', false);
     $a_xml_writer->_XmlWriter;
     // export sco data (currently only objective) to sco.xml
     if ($this->getType() == "sco") {
         $objectives_text = "";
         $a_xml_writer = new ilXmlWriter();
         $tr_data = $this->getObjectives();
         foreach ($tr_data as $data) {
             $objectives_text .= $data->getObjectiveID();
         }
         $a_xml_writer->xmlStartTag("sco");
         $a_xml_writer->xmlElement("objective", null, $objectives_text);
         $a_xml_writer->xmlEndTag("sco");
         $a_xml_writer->xmlDumpFile($a_target_dir . '/sco.xml', false);
         $a_xml_writer->_XmlWriter;
     }
 }
Example #4
0
 /**
  * Process exporter
  *
  * @param
  * @return
  */
 function processExporter($a_comp, $a_class, $a_entity, $a_target_release, $a_id)
 {
     $success = true;
     if (!is_array($a_id)) {
         if ($a_id == "") {
             return;
         }
         $a_id = array($a_id);
     }
     // get exporter object
     $export_class_file = "./" . $a_comp . "/classes/class." . $a_class . ".php";
     //echo "1-".$export_class_file."-"; exit;
     if (!is_file($export_class_file)) {
         echo "1-not found:" . $export_class_file . "-";
         exit;
         return false;
     }
     include_once $export_class_file;
     $exp = new $a_class();
     if (!isset($this->cnt[$a_comp])) {
         $this->cnt[$a_comp] = 1;
     } else {
         $this->cnt[$a_comp]++;
     }
     $set_dir_relative = $a_comp . "/set_" . $this->cnt[$a_comp];
     $set_dir_absolute = $this->export_run_dir . "/" . $set_dir_relative;
     ilUtil::makeDirParents($set_dir_absolute);
     $exp->init();
     $sv = $exp->determineSchemaVersion($a_entity, $a_target_release);
     // process head dependencies
     $sequence = $exp->getXmlExportHeadDependencies($a_entity, $a_target_release, $a_id);
     foreach ($sequence as $s) {
         $comp = explode("/", $s["component"]);
         $exp_class = "il" . $comp[1] . "Exporter";
         $s = $this->processExporter($s["component"], $exp_class, $s["entity"], $a_target_release, $s["ids"]);
         if (!$s) {
             $success = false;
         }
     }
     // write export.xml file
     $export_writer = new ilXmlWriter();
     $export_writer->xmlHeader();
     $attribs = array("InstallationId" => IL_INST_ID, "InstallationUrl" => ILIAS_HTTP_PATH, "Entity" => $a_entity, "SchemaVersion" => $sv["schema_version"], "TargetRelease" => $a_target_release, "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", "xmlns:exp" => "http://www.ilias.de/Services/Export/exp/4_1", "xsi:schemaLocation" => "http://www.ilias.de/Services/Export/exp/4_1 " . ILIAS_HTTP_PATH . "/xml/ilias_export_4_1.xsd");
     if ($sv["namespace"] != "" && $sv["xsd_file"] != "") {
         $attribs["xsi:schemaLocation"] .= " " . $sv["namespace"] . " " . ILIAS_HTTP_PATH . "/xml/" . $sv["xsd_file"];
         $attribs["xmlns"] = $sv["namespace"];
     }
     if ($sv["uses_dataset"]) {
         $attribs["xsi:schemaLocation"] .= " " . "http://www.ilias.de/Services/DataSet/ds/4_3 " . ILIAS_HTTP_PATH . "/xml/ilias_ds_4_3.xsd";
         $attribs["xmlns:ds"] = "http://www.ilias.de/Services/DataSet/ds/4_3";
     }
     $export_writer->xmlStartTag('exp:Export', $attribs);
     $dir_cnt = 1;
     foreach ($a_id as $id) {
         $exp->setExportDirectories($set_dir_relative . "/expDir_" . $dir_cnt, $set_dir_absolute . "/expDir_" . $dir_cnt);
         $export_writer->xmlStartTag('exp:ExportItem', array("Id" => $id));
         //$xml = $exp->getXmlRepresentation($a_entity, $a_target_release, $id);
         $xml = $exp->getXmlRepresentation($a_entity, $sv["schema_version"], $id);
         $export_writer->appendXml($xml);
         $export_writer->xmlEndTag('exp:ExportItem');
         $dir_cnt++;
     }
     $export_writer->xmlEndTag('exp:Export');
     $export_writer->xmlDumpFile($set_dir_absolute . "/export.xml", false);
     $this->manifest_writer->xmlElement("ExportFile", array("Component" => $a_comp, "Path" => $set_dir_relative . "/export.xml"));
     // process tail dependencies
     $sequence = $exp->getXmlExportTailDependencies($a_entity, $a_target_release, $a_id);
     foreach ($sequence as $s) {
         $comp = explode("/", $s["component"]);
         $exp_class = "il" . $comp[1] . "Exporter";
         $s = $this->processExporter($s["component"], $exp_class, $s["entity"], $a_target_release, $s["ids"]);
         if (!$s) {
             $success = false;
         }
     }
     return $success;
 }