Export class for content objects. More...
Public Member Functions | |
ilContObjectExport (&$a_cont_obj, $a_mode="xml") | |
Constructor public. | |
getInstId () | |
exportRekursiv ($depth, $left, $right) | |
exports lm_data-table to xml-structure | |
buildExportFile () | |
build export file (complete zip file) | |
buildExportFileXML () | |
build xml export file | |
buildExportFilePDF () | |
build pdf offline file | |
buildExportFileHTML () | |
build html package | |
buildExportFileSCORM () | |
build scorm package | |
Data Fields | |
$err | |
$db | |
$ilias | |
$cont_obj | |
$inst_id | |
$mode |
Export class for content objects.
Definition at line 36 of file class.ilContObjectExport.php.
ilContObjectExport::buildExportFile | ( | ) |
build export file (complete zip file)
public
Definition at line 182 of file class.ilContObjectExport.php.
References buildExportFileHTML(), buildExportFilePDF(), buildExportFileSCORM(), and buildExportFileXML().
{ switch ($this->mode) { case "html": return $this->buildExportFileHTML(); break; case "scorm": return $this->buildExportFileSCORM(); break; case "pdf": return $this->buildExportFilePDF(); break; default: return $this->buildExportFileXML(); break; } }
ilContObjectExport::buildExportFileHTML | ( | ) |
build html package
Definition at line 350 of file class.ilContObjectExport.php.
References $ilBench.
Referenced by buildExportFile().
{ global $ilBench; $ilBench->start("ContentObjectExport", "buildHTMLPackage"); // create directories $this->cont_obj->createExportDirectory("html"); // get html content $ilBench->start("ContentObjectExport", "buildHTMLPackage_getHTML"); $this->cont_obj->exportHTML($this->export_dir."/".$this->subdir, $expLog); $ilBench->stop("ContentObjectExport", "buildHTMLPackage_getHTML"); //$expLog->write(date("[y-m-d H:i:s] ")."Finished Export"); $ilBench->stop("ContentObjectExport", "buildHTMLPackage"); }
ilContObjectExport::buildExportFilePDF | ( | ) |
build pdf offline file
Definition at line 286 of file class.ilContObjectExport.php.
References $ilBench, and ilFOPUtil::makePDF().
Referenced by buildExportFile().
{ global $ilBench; $ilBench->start("ContentObjectExport", "buildPDFFile"); require_once("classes/class.ilXmlWriter.php"); $this->xml = new ilXmlWriter; // set dtd definition //$this->xml->xmlSetDtdDef("<!DOCTYPE LearningModule SYSTEM \"http://www.ilias.uni-koeln.de/download/dtd/ilias_co.dtd\">"); // set generated comment //$this->xml->xmlSetGenCmt("Export of ILIAS Content Module ". // $this->cont_obj->getId()." of installation ".$this->inst."."); // set xml header $this->xml->xmlHeader(); // create directories //$this->cont_obj->createExportDirectory("pdf"); //not implemened! //ilUtil::makeDir($this->export_dir."/".$this->subdir); //ilUtil::makeDir($this->export_dir."/".$this->subdir."/objects"); // get Log File /* $expDir = $this->cont_obj->getExportDirectory(); $expLog = new ilLog($expDir, "export.log"); $expLog->delete(); $expLog->setLogFormat(""); $expLog->write(date("[y-m-d H:i:s] ")."Start Export");*/ // get xml content $ilBench->start("ContentObjectExport", "buildPDFFile_getFO"); $this->cont_obj->exportFO($this->xml, $this->export_dir."/".$this->subdir, $expLog); $ilBench->stop("ContentObjectExport", "buildPDFFile_getFO"); // dump fo document to file $ilBench->start("ContentObjectExport", "buildPDFFile_dumpToFile"); //echo "dumping:".$this->export_dir."/".$this->filename; $this->xml->xmlDumpFile($this->export_dir."/".$this->filename , false); $ilBench->stop("ContentObjectExport", "buildPDFFile_dumpToFile"); // convert fo to pdf file //$ilBench->start("ContentObjectExport", "buildExportFile_zipFile"); include_once("classes/class.ilFOPUtil.php"); ilFOPUtil::makePDF($this->export_dir."/".$this->filename, $this->export_dir."/".$this->subdir.".pdf"); //$ilBench->stop("ContentObjectExport", "buildExportFile_zipFile"); // destroy writer object $this->xml->_XmlWriter; //$expLog->write(date("[y-m-d H:i:s] ")."Finished Export"); $ilBench->stop("ContentObjectExport", "buildPDFFile"); }
ilContObjectExport::buildExportFileSCORM | ( | ) |
build scorm package
Definition at line 371 of file class.ilContObjectExport.php.
References $ilBench.
Referenced by buildExportFile().
{ global $ilBench; $ilBench->start("ContentObjectExport", "buildSCORMPackage"); // create directories $this->cont_obj->createExportDirectory("scorm"); // get html content $ilBench->start("ContentObjectExport", "buildSCORMPackage_getSCORM"); $this->cont_obj->exportSCORM($this->export_dir."/".$this->subdir, $expLog); $ilBench->stop("ContentObjectExport", "buildSCORMPackage_getSCORM"); //$expLog->write(date("[y-m-d H:i:s] ")."Finished Export"); $ilBench->stop("ContentObjectExport", "buildSCORMPackage"); }
ilContObjectExport::buildExportFileXML | ( | ) |
build xml export file
Definition at line 207 of file class.ilContObjectExport.php.
References $ilBench, ilUtil::makeDir(), and ilUtil::zip().
Referenced by buildExportFile().
{ global $ilBench; $ilBench->start("ContentObjectExport", "buildExportFile"); require_once("classes/class.ilXmlWriter.php"); $this->xml = new ilXmlWriter; // set dtd definition $this->xml->xmlSetDtdDef("<!DOCTYPE ContentObject SYSTEM \"http://www.ilias.de/download/dtd/ilias_co_3_7.dtd\">"); // set generated comment $this->xml->xmlSetGenCmt("Export of ILIAS Content Module ". $this->cont_obj->getId()." of installation ".$this->inst."."); // set xml header $this->xml->xmlHeader(); // create directories $this->cont_obj->createExportDirectory(); ilUtil::makeDir($this->export_dir."/".$this->subdir); ilUtil::makeDir($this->export_dir."/".$this->subdir."/objects"); // get Log File $expDir = $this->cont_obj->getExportDirectory(); $expLog = new ilLog($expDir, "export.log"); $expLog->delete(); $expLog->setLogFormat(""); $expLog->write(date("[y-m-d H:i:s] ")."Start Export"); // get xml content //echo "ContObjExport:".$this->inst_id.":<br>"; $ilBench->start("ContentObjectExport", "buildExportFile_getXML"); $this->cont_obj->exportXML($this->xml, $this->inst_id, $this->export_dir."/".$this->subdir, $expLog); $ilBench->stop("ContentObjectExport", "buildExportFile_getXML"); // export style if ($this->cont_obj->getStyleSheetId() > 0) { include_once("classes/class.ilObjStyleSheet.php"); $style_obj = new ilObjStyleSheet($this->cont_obj->getStyleSheetId(), false); $style_obj->exportXML($this->export_dir."/".$this->subdir); } // dump xml document to screen (only for debugging reasons) /* echo "<PRE>"; echo htmlentities($this->xml->xmlDumpMem($format)); echo "</PRE>"; */ // dump xml document to file $ilBench->start("ContentObjectExport", "buildExportFile_dumpToFile"); $this->xml->xmlDumpFile($this->export_dir."/".$this->subdir."/".$this->filename , false); $ilBench->stop("ContentObjectExport", "buildExportFile_dumpToFile"); // zip the file $ilBench->start("ContentObjectExport", "buildExportFile_zipFile"); //echo "-".$this->export_dir."/".$this->subdir."-"; ilUtil::zip($this->export_dir."/".$this->subdir, $this->export_dir."/".$this->subdir.".zip"); $ilBench->stop("ContentObjectExport", "buildExportFile_zipFile"); // destroy writer object $this->xml->_XmlWriter; $expLog->write(date("[y-m-d H:i:s] ")."Finished Export"); $ilBench->stop("ContentObjectExport", "buildExportFile"); return $this->export_dir."/".$this->subdir.".zip"; }
ilContObjectExport::exportRekursiv | ( | $ | depth, | |
$ | left, | |||
$ | right | |||
) |
exports lm_data-table to xml-structure
integer | $depth | |
integer | $left left border of nested-set-structure | |
integer | $right right border of nested-set-structure public |
Definition at line 109 of file class.ilContObjectExport.php.
References $nested, $query, $res, $result, $row, domxml_open_mem(), xpath_eval(), and xpath_new_context().
{ // Jetzt alle lm_data anhand der obj_id auslesen. $query = "SELECT * FROM lm_tree, lm_data WHERE lm_tree.lm_id = ".$this->cont_obj->getId()." AND lm_tree.child = lm_data.obj_id AND ( lm_data.type = 'st' OR lm_data.type = 'pg' ) AND lm_tree.depth = $depth AND lm_tree.lft>$left and lm_tree.rgt<$right ORDER BY lm_tree.lft"; $result = $this->db->query($query); while (is_array($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) ) { if ($row["type"] == "st") { $xml .= "<StructureObject>"; $nested = new ilNestedSetXML(); $xml .= $nested->export($row["obj_id"],"st"); $xml .= "\n"; $xml .= $this->exportRekursiv($depth+1, $row["lft"], $row["rgt"]); $xml .= "</StructureObject>"; } if ($row["type"] == "pg") { $query = "SELECT * FROM page_object WHERE page_id='".$row["obj_id"]."' "; $result2 = $this->db->query($query); $row2 = $result2->fetchRow(DB_FETCHMODE_ASSOC); $PO = $row2["content"]."\n"; if (stristr($PO,"MediaObject")) { $dom = domxml_open_mem($PO); $xpc = xpath_new_context($dom); $path = "//MediaObject/MediaAlias"; $res =& xpath_eval($xpc, $path); for($i = 0; $i < count($res->nodeset); $i++) { $id_arr = explode("_", $res->nodeset[$i]->get_attribute("OriginId")); $mob_id = $id_arr[count($id_arr) - 1]; $this->mob_ids[$mob_id] = true; } } $nested = new ilNestedSetXML(); $mdxml = $nested->export($row["obj_id"],"pg"); $PO = str_replace("<PageObject>","<PageObject>\n$mdxml\n",$PO); $xml .= $PO; } } return($xml); }
ilContObjectExport::getInstId | ( | ) |
Definition at line 95 of file class.ilContObjectExport.php.
{
return $this->inst_id;
}
ilContObjectExport::ilContObjectExport | ( | &$ | a_cont_obj, | |
$ | a_mode = "xml" | |||
) |
Constructor public.
Definition at line 49 of file class.ilContObjectExport.php.
References $ilErr, and $ilias.
{ global $ilErr, $ilDB, $ilias; $this->cont_obj =& $a_cont_obj; $this->err =& $ilErr; $this->ilias =& $ilias; $this->db =& $ilDB; $this->mode = $a_mode; $settings = $this->ilias->getAllSettings(); //$this->inst_id = $settings["inst_id"]; $this->inst_id = IL_INST_ID; $date = time(); switch($this->mode) { case "html": $this->export_dir = $this->cont_obj->getExportDirectory("html"); $this->subdir = $this->cont_obj->getType()."_".$this->cont_obj->getId(); $this->filename = $this->subdir.".zip"; break; case "scorm": $this->export_dir = $this->cont_obj->getExportDirectory("scorm"); $this->subdir = $this->cont_obj->getType()."_".$this->cont_obj->getId(); $this->filename = $this->subdir.".zip"; break; case "pdf": $this->export_dir = $this->cont_obj->getOfflineDirectory(); $this->subdir = $date."__".$this->inst_id."__". $this->cont_obj->getType()."_".$this->cont_obj->getId(); $this->filename = $this->subdir.".fo"; break; default: $this->export_dir = $this->cont_obj->getExportDirectory(); $this->subdir = $date."__".$this->inst_id."__". $this->cont_obj->getType()."_".$this->cont_obj->getId(); $this->filename = $this->subdir.".xml"; break; } }
ilContObjectExport::$cont_obj |
Definition at line 41 of file class.ilContObjectExport.php.
ilContObjectExport::$db |
Definition at line 39 of file class.ilContObjectExport.php.
ilContObjectExport::$err |
Definition at line 38 of file class.ilContObjectExport.php.
ilContObjectExport::$ilias |
Definition at line 40 of file class.ilContObjectExport.php.
Referenced by ilContObjectExport().
ilContObjectExport::$inst_id |
Definition at line 42 of file class.ilContObjectExport.php.
ilContObjectExport::$mode |
Definition at line 43 of file class.ilContObjectExport.php.