24 include_once(
'Modules/Course/classes/class.ilFSStorageCourse.php');
71 $this->ARCHIVE_XML = 1;
72 $this->ARCHIVE_HTML = 2;
73 $this->ARCHIVE_PDF = 3;
83 return $this->archives;
88 return $this->archives[$a_id];
93 foreach($this->archives as $id => $archive)
95 if($archive[
'archive_type'] == $this->ARCHIVE_XML)
99 if($this->course_obj->getArchiveType() != $this->course_obj->ARCHIVE_DOWNLOAD
and 100 $archive[
'archive_type'] == $this->ARCHIVE_PDF)
104 $public_archives[$id] = $archive;
107 return $public_archives ? $public_archives :
array();
116 return $this->archive_type ? $this->archive_type : $this->ARCHIVE_XML;
121 $this->archive_date = $a_date;
125 return $this->archive_date ? $this->archive_date :
time();
130 $this->archive_size = $a_size;
138 $this->archive_name = $a_name;
146 $this->archive_lang = $a_lang_code;
161 return $this->course_files_obj->getArchiveDirectory().
'/'.$archive[
'archive_name'].
'.zip';
165 return $this->course_files_obj->getArchiveDirectory().
'/'.$archive[
'archive_name'];
177 $this->
setType($this->ARCHIVE_XML);
178 $this->
setName(
time().
'__'.$this->
ilias->getSetting(
'inst_id').
'__crs_'.$this->course_obj->getId());
183 $this->course_files_obj->addArchiveSubDirectory($this->
getName());
188 $this->course_xml_writer->start();
189 $this->course_files_obj->writeArchiveFile($this->course_xml_writer->getXML(),$this->
getName().
'/'.$this->
getName().
'.xml');
194 $this->course_files_obj->addArchiveSubDirectory($this->
getName().
'/objects');
196 $this->copied_files =
array();
197 $this->
__addZipFiles($this->course_obj->getRefId(), $a_selection);
200 include_once(
"./Services/Export/classes/class.ilExport.php");
202 $this->
getName().
'/index.html', $this->course_obj->getId(),$this->copied_files);
205 $this->
setSize($this->course_files_obj->zipArchive($this->getName(),$this->
getName().
'.zip'));
216 $this->
setType($this->ARCHIVE_HTML);
218 $this->
setName($this->
getDate().
'__'.$this->
ilias->getSetting(
'inst_id').
'__crs_'.$this->course_obj->getId());
222 $this->course_files_obj->addArchiveSubDirectory($this->
getName());
225 $this->course_files_obj->addArchiveSubDirectory($this->
getName().
'/objects');
232 $this->course_files_obj->createArchiveOnlineVersion($this->
getName());
235 $this->
setSize($this->course_files_obj->zipArchive($this->getName(),$this->
getName().
'.zip'));
248 $next_id = $ilDB->nextId(
'crs_archives');
249 $query =
"INSERT INTO crs_archives (archive_id,course_id,archive_name,archive_type,archive_date,archive_size,archive_lang) ".
251 $ilDB->quote($next_id,
'integer').
", ".
252 $ilDB->quote($this->course_obj->getId(),
'integer').
",".
253 $ilDB->quote($this->getName(),
'text').
",".
254 $ilDB->quote($this->getType(),
'integer').
", ".
255 $ilDB->quote($this->getDate(),
'integer').
",".
256 $ilDB->quote($this->getSize(),
'integer').
",".
257 $ilDB->quote($this->getLanguage(),
'text').
265 function delete($a_id)
272 $this->course_files_obj->deleteArchive($this->archives[$a_id][
"archive_name"]);
274 $query =
"DELETE FROM crs_archives ".
275 "WHERE course_id = ".$ilDB->quote($this->course_obj->getId(),
'integer').
" ".
276 "AND archive_id = ".$ilDB->quote($a_id,
'integer').
" ";
293 if(!is_object($this->course_files_obj))
295 include_once(
'Modules/Course/classes/class.ilFSStorageCourse.php');
303 if(!is_object($this->course_xml_writer))
305 include_once
"./Modules/Course/classes/class.ilCourseXMLWriter.php";
320 $this->course_obj->initCourseItemObject();
321 $this->course_obj->items_obj->setParentId($a_parent_id);
323 foreach($this->course_obj->items_obj->getAllItems() as $item)
329 $action = $a_selection[$item[
'child']];
330 if ($a_selection ==
"")
335 if ($action ==
"omit")
340 if ($action ==
"create")
342 $abs_file_name = $tmp_obj->getXMLZip();
346 include_once(
"./Services/Export/classes/class.ilExport.php");
349 if (!@is_file($abs_file_name))
356 if ($abs_file_name !=
"")
359 $new_name = basename($abs_file_name);
360 $this->course_files_obj->copyFile($abs_file_name,$this->course_files_obj->getArchiveDirectory().
'/'.
361 $this->
getName().
'/'.$new_name);
362 if (is_file($this->course_files_obj->getArchiveDirectory().
'/'.
363 $this->
getName().
'/'.$new_name))
365 $this->copied_files[] =
array(
"title" => $item[
'title'],
366 "file" => $new_name,
"type" => $item[
'type']);
378 $this->course_obj->initCourseItemObject();
379 $this->course_obj->items_obj->setParentId($a_parent_id);
381 foreach($this->course_obj->items_obj->getAllItems() as $item)
387 if($abs_dir_name = $tmp_obj->getHTMLDirectory())
389 $new_name =
'il_'.$this->ilias->getSetting(
'inst_id').
'_'.$tmp_obj->getType().
'_'.$item[
'obj_id'];
391 $this->course_files_obj->addDirectory($this->
getName().
'/objects/'.$new_name);
392 $this->course_files_obj->rCopy($abs_dir_name,$this->
getName().
'/objects/'.$new_name);
395 $this->html_files[
"$item[obj_id]"] =
"objects/".$new_name.
"/index.html";
411 $lng->loadLanguageModule(
'crs');
418 $tmp_tpl =
new ilTemplate(
"tpl.crs_export.html",
true,
true,
'Modules/Course');
420 $this->course_files_obj->copyFile($tpl->tplPath.
'/'.$ilias->account->prefs[
"style"].
'.css',
421 $this->course_files_obj->getArchiveDirectory().
'/'.$this->
getName().
'/default.css');
423 $tmp_tpl->setVariable(
'TITLE',$lng->txt(
'crs_export'));
424 $tmp_tpl->setVariable(
"CRS_STRUCTURE",$lng->txt(
'crs_structure'));
427 $tmp_tpl->setVariable(
"DETAILS_TITLE",$lng->txt(
"crs_details"));
430 $tmp_tpl->setVariable(
"TXT_SYLLABUS",$lng->txt(
"crs_syllabus"));
431 $tmp_tpl->setVariable(
"TXT_CONTACT",$lng->txt(
"crs_contact"));
432 $tmp_tpl->setVariable(
"TXT_CONTACT_NAME",$lng->txt(
"crs_contact_name"));
433 $tmp_tpl->setVariable(
"TXT_CONTACT_RESPONSIBILITY",$lng->txt(
"crs_contact_responsibility"));
434 $tmp_tpl->setVariable(
"TXT_CONTACT_EMAIL",$lng->txt(
"crs_contact_email"));
435 $tmp_tpl->setVariable(
"TXT_CONTACT_PHONE",$lng->txt(
"crs_contact_phone"));
436 $tmp_tpl->setVariable(
"TXT_CONTACT_CONSULTATION",$lng->txt(
"crs_contact_consultation"));
437 $tmp_tpl->setVariable(
"TXT_DATES",$lng->txt(
"crs_dates"));
438 $tmp_tpl->setVariable(
"TXT_ACTIVATION",$lng->txt(
"crs_activation"));
439 $tmp_tpl->setVariable(
"TXT_SUBSCRIPTION",$lng->txt(
"crs_subscription"));
440 $tmp_tpl->setVariable(
"TXT_ARCHIVE",$lng->txt(
"crs_archive"));
443 $tmp_tpl->setVariable(
"SYLLABUS",nl2br($this->course_obj->getSyllabus() ?
444 $this->course_obj->getSyllabus() :
445 $lng->txt(
"crs_not_available")));
447 $tmp_tpl->setVariable(
"CONTACT_NAME",$this->course_obj->getContactName() ?
448 $this->course_obj->getContactName() :
449 $lng->txt(
"crs_not_available"));
450 $tmp_tpl->setVariable(
"CONTACT_RESPONSIBILITY",$this->course_obj->getContactResponsibility() ?
451 $this->course_obj->getContactResponsibility() :
452 $lng->txt(
"crs_not_available"));
453 $tmp_tpl->setVariable(
"CONTACT_PHONE",$this->course_obj->getContactPhone() ?
454 $this->course_obj->getContactPhone() :
455 $lng->txt(
"crs_not_available"));
456 $tmp_tpl->setVariable(
"CONTACT_CONSULTATION",nl2br($this->course_obj->getContactConsultation() ?
457 $this->course_obj->getContactConsultation() :
458 $lng->txt(
"crs_not_available")));
459 if($this->course_obj->getContactEmail())
461 $tmp_tpl->setCurrentBlock(
"email_link");
462 #$tmp_tpl->setVariable("EMAIL_LINK","ilias.php?baseClass=ilMailGUI&type=new&rcp_to=".$this->course_obj->getContactEmail()); 463 $tmp_tpl->setVariable(
"CONTACT_EMAIL",$this->course_obj->getContactEmail());
464 $tmp_tpl->parseCurrentBlock();
468 $tmp_tpl->setCurrentBlock(
"no_mail");
469 $tmp_tpl->setVariable(
"NO_CONTACT_EMAIL",$this->course_obj->getContactEmail());
470 $tmp_tpl->parseCurrentBlock();
472 if($this->course_obj->getActivationUnlimitedStatus())
474 $tmp_tpl->setVariable(
"ACTIVATION",$lng->txt(
'crs_unlimited'));
478 $str = $lng->txt(
"crs_from").
" ".strftime(
"%Y-%m-%d %R",$this->course_obj->getActivationStart()).
" ".
479 $lng->txt(
"crs_to").
" ".strftime(
"%Y-%m-%d %R",$this->course_obj->getActivationEnd());
480 $tmp_tpl->setVariable(
"ACTIVATION",$str);
482 if($this->course_obj->getSubscriptionUnlimitedStatus())
484 $tmp_tpl->setVariable(
"SUBSCRIPTION",$lng->txt(
'crs_unlimited'));
488 $str = $lng->txt(
"crs_from").
" ".strftime(
"%Y-%m-%d %R",$this->course_obj->getSubscriptionStart()).
" ".
489 $lng->txt(
"crs_to").
" ".strftime(
"%Y-%m-%d %R",$this->course_obj->getSubscriptionEnd());
490 $tmp_tpl->setVariable(
"SUBSCRIPTION",$str);
492 if($this->course_obj->getArchiveType() == $this->course_obj->ARCHIVE_DISABLED)
494 $tmp_tpl->setVariable(
"ARCHIVE",$lng->txt(
'crs_archive_disabled'));
498 $str = $lng->txt(
"crs_from").
" ".strftime(
"%Y-%m-%d %R",$this->course_obj->getArchiveStart()).
" ".
499 $lng->txt(
"crs_to").
" ".strftime(
"%Y-%m-%d %R",$this->course_obj->getArchiveEnd());
500 $tmp_tpl->setVariable(
"ARCHIVE",$str);
503 $this->structure =
'';
505 $tmp_tpl->setVariable(
"STRUCTURE",$this->structure);
507 $this->course_files_obj->writeArchiveFile($tmp_tpl->get(),$this->
getName().
'/index.html');
514 $this->course_obj->initCourseItemObject();
515 $this->course_obj->items_obj->setParentId($a_parent_id);
517 $items = $this->course_obj->items_obj->getAllItems();
519 foreach($items as $key => $item)
529 $this->structure .=
"<ul>";
532 $this->structure .=
"<li>";
534 if(isset($this->html_files[
"$item[obj_id]"]))
536 $link =
"<a href=\"./".$this->html_files[
"$item[obj_id]"].
"\">".$item[
"title"].
"</a>";
540 $link = $item[
'title'];
542 $this->structure .= $link;
543 $this->structure .=
"</li>";
547 if($key == (count($items) - 1))
549 $this->structure .=
"</ul>";
575 $this->archives =
array();
576 $query =
"SELECT * FROM crs_archives ".
577 "WHERE course_id = ".$ilDB->quote($this->course_obj->getId(),
'integer').
" ".
578 "ORDER BY archive_date DESC";
583 $this->archives[
$row->archive_id][
"archive_id"] =
$row->archive_id;
584 $this->archives[
$row->archive_id][
"archive_type"] =
$row->archive_type;
585 $this->archives[
$row->archive_id][
"archive_date"] =
$row->archive_date;
586 $this->archives[
$row->archive_id][
"archive_size"] =
$row->archive_size;
587 $this->archives[
$row->archive_id][
"archive_name"] =
$row->archive_name;
588 $this->archives[
$row->archive_id][
"archive_lang"] =
$row->archive_lang;
__buildStructure(&$tmp_tpl, $a_parent_id)
query($sql, $a_handle_error=true)
Query.
cloneArchives()
Clone archives.
__addZipFiles($a_parent_id, $a_selection="")
Add zip files to folder.
addXML($a_selection="")
Add XML archive.
special template class to simplify handling of ITX/PEAR
__addHTMLFiles($a_parent_id)
redirection script todo: (a better solution should control the processing via a xml file) ...
Create styles array
The data for the language used.
static _getExportDirectory($a_obj_id, $a_type="xml", $a_obj_type="", $a_entity="")
Get export directory for an repository object.
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static _generateIndexFile($a_filename, $a_obj_id, $a_files, $a_type="")
Generates an index.html file including links to all xml files included (for container exports) ...
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
setLanguage($a_lang_code)
__construct($course_obj)
Constructor.
static _getLastExportFileInformation($a_obj_id, $a_type="", $a_obj_type="")
Get last export file information.