ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
class.ilContObjectExport.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once("./Modules/LearningModule/classes/class.ilObjContentObject.php");
5
17{
18 var $err; // error object
19 var $db; // database object
20 var $ilias; // ilias object
21 var $cont_obj; // content object (learning module | digilib book)
22 var $inst_id; // installation id
23 var $mode;
24
29 function ilContObjectExport(&$a_cont_obj, $a_mode = "xml", $a_lang = "")
30 {
31 global $ilErr, $ilDB, $ilias;
32
33 $this->cont_obj =& $a_cont_obj;
34
35 $this->err =& $ilErr;
36 $this->ilias =& $ilias;
37 $this->db =& $ilDB;
38 $this->mode = $a_mode;
39 $this->lang = $a_lang;
40
41 $settings = $this->ilias->getAllSettings();
42 //$this->inst_id = $settings["inst_id"];
43 $this->inst_id = IL_INST_ID;
44
45 $date = time();
46 switch($this->mode)
47 {
48 case "html":
49 if ($this->lang == "")
50 {
51 $this->export_dir = $this->cont_obj->getExportDirectory("html");
52 }
53 else
54 {
55 $this->export_dir = $this->cont_obj->getExportDirectory("html_".$this->lang);
56 }
57 $this->subdir = $this->cont_obj->getType()."_".$this->cont_obj->getId();
58 $this->filename = $this->subdir.".zip";
59 break;
60
61 case "scorm":
62 $this->export_dir = $this->cont_obj->getExportDirectory("scorm");
63 $this->subdir = $this->cont_obj->getType()."_".$this->cont_obj->getId();
64 $this->filename = $this->subdir.".zip";
65 break;
66
67 case "pdf":
68 $this->export_dir = $this->cont_obj->getOfflineDirectory();
69 $this->subdir = $date."__".$this->inst_id."__".
70 $this->cont_obj->getType()."_".$this->cont_obj->getId();
71 $this->filename = $this->subdir.".fo";
72 break;
73
74 default:
75 $this->export_dir = $this->cont_obj->getExportDirectory();
76 $this->subdir = $date."__".$this->inst_id."__".
77 $this->cont_obj->getType()."_".$this->cont_obj->getId();
78 $this->filename = $this->subdir.".xml";
79 break;
80 }
81 }
82
83 function getInstId()
84 {
85 return $this->inst_id;
86 }
87
94 function buildExportFile()
95 {
96 switch ($this->mode)
97 {
98 case "html":
99 $this->buildExportFileHTML();
100 break;
101
102 case "scorm":
103 $this->buildExportFileSCORM();
104 break;
105
106 case "pdf":
107 $this->buildExportFilePDF();
108 break;
109
110 default:
111 return $this->buildExportFileXML();
112 break;
113 }
114 }
115
120 {
121 global $ilBench;
122
123 $ilBench->start("ContentObjectExport", "buildExportFile");
124
125 require_once("./Services/Xml/classes/class.ilXmlWriter.php");
126
127 $this->xml = new ilXmlWriter;
128
129 // set dtd definition
130 $this->xml->xmlSetDtdDef("<!DOCTYPE ContentObject SYSTEM \"http://www.ilias.de/download/dtd/ilias_co_3_7.dtd\">");
131
132 // set generated comment
133 $this->xml->xmlSetGenCmt("Export of ILIAS Content Module ".
134 $this->cont_obj->getId()." of installation ".$this->inst.".");
135
136 // set xml header
137 $this->xml->xmlHeader();
138
139 // create directories
140 $this->cont_obj->createExportDirectory();
141 ilUtil::makeDir($this->export_dir."/".$this->subdir);
142 ilUtil::makeDir($this->export_dir."/".$this->subdir."/objects");
143
144 // get Log File
145 $expDir = $this->cont_obj->getExportDirectory();
146 $expLog = new ilLog($expDir, "export.log");
147 $expLog->delete();
148 $expLog->setLogFormat("");
149 $expLog->write(date("[y-m-d H:i:s] ")."Start Export");
150
151 // get xml content
152//echo "ContObjExport:".$this->inst_id.":<br>";
153 $ilBench->start("ContentObjectExport", "buildExportFile_getXML");
154 $this->cont_obj->exportXML($this->xml, $this->inst_id,
155 $this->export_dir."/".$this->subdir, $expLog);
156 $ilBench->stop("ContentObjectExport", "buildExportFile_getXML");
157
158 // export style
159 if ($this->cont_obj->getStyleSheetId() > 0)
160 {
161 include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
162 $style_obj = new ilObjStyleSheet($this->cont_obj->getStyleSheetId(), false);
163 //$style_obj->exportXML($this->export_dir."/".$this->subdir);
164 $style_obj->setExportSubDir("style");
165 $style_file = $style_obj->export();
166 if (is_file($style_file))
167 {
168 copy($style_file, $this->export_dir."/".$this->subdir."/style.zip");
169 }
170 }
171
172 // dump xml document to screen (only for debugging reasons)
173 /*
174 echo "<PRE>";
175 echo htmlentities($this->xml->xmlDumpMem($format));
176 echo "</PRE>";
177 */
178
179 // dump xml document to file
180 $this->xml->xmlDumpFile($this->export_dir."/".$this->subdir."/".$this->filename
181 , false);
182
183 // help export (workaround to use ref id here)
185 {
186 include_once("./Services/Export/classes/class.ilExport.php");
187 $exp = new ilExport();
188 $exp->exportEntity("help", $this->cont_obj->getId(), "4.3.0", "Services/Help",
189 "OnlineHelp", $this->export_dir."/".$this->subdir);
190 }
191
192 // zip the file
193 ilUtil::zip($this->export_dir."/".$this->subdir,
194 $this->export_dir."/".$this->subdir.".zip");
195
196 // destroy writer object
197 $this->xml->_XmlWriter;
198
199 $expLog->write(date("[y-m-d H:i:s] ")."Finished Export");
200 $ilBench->stop("ContentObjectExport", "buildExportFile");
201
202 return $this->export_dir."/".$this->subdir.".zip";
203 }
204
209 {
210 die("deprecated.");
211 }
212
217 {
218 global $ilBench;
219
220 // create directories
221 if ($this->lang == "")
222 {
223 $this->cont_obj->createExportDirectory("html");
224 }
225 else
226 {
227 $this->cont_obj->createExportDirectory("html_".$this->lang);
228 }
229
230
231 // get html content
232 $this->cont_obj->exportHTML($this->export_dir."/".$this->subdir, $expLog, true, "html", $this->lang);
233 }
234
239 {
240 global $ilBench;
241
242 $ilBench->start("ContentObjectExport", "buildSCORMPackage");
243
244 // create directories
245 $this->cont_obj->createExportDirectory("scorm");
246
247 // get html content
248 $ilBench->start("ContentObjectExport", "buildSCORMPackage_getSCORM");
249 $this->cont_obj->exportSCORM($this->export_dir."/".$this->subdir, $expLog);
250 $ilBench->stop("ContentObjectExport", "buildSCORMPackage_getSCORM");
251
252 //$expLog->write(date("[y-m-d H:i:s] ")."Finished Export");
253 $ilBench->stop("ContentObjectExport", "buildSCORMPackage");
254 }
255
256}
257
258?>
$_GET["client_id"]
Export class for content objects.
ilContObjectExport(&$a_cont_obj, $a_mode="xml", $a_lang="")
Constructor @access public.
buildExportFilePDF()
build pdf offline file
buildExportFileSCORM()
build scorm package
buildExportFileHTML()
build html package
buildExportFile()
build export file (complete zip file)
buildExportFileXML()
build xml export file
logging
Definition: class.ilLog.php:19
static isOnlineHelpModule($a_id, $a_as_obj_id=false)
Is module an online module.
Class ilObjStyleSheet.
static zip($a_dir, $a_file, $compress_content=false)
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
XML writer class.
xmlSetDtdDef($dtdDef)
Sets dtd definition.
global $ilBench
Definition: ilias.php:18
redirection script todo: (a better solution should control the processing via a xml file)
global $ilDB