ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilCOPageHTMLExport.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
12 {
16  protected $mobs = [];
17 
21  protected $glossary_terms = [];
22 
26  protected $files = [];
27 
31  protected $files_direct = [];
32 
36  protected $int_links = [];
37 
41  protected $q_ids = [];
42 
46  protected $exp_dir = "";
47 
51  protected $content_style_id = 0;
52 
56  protected $user;
57 
61  protected $log;
62 
66  protected $global_screen;
67 
71  protected $page_linker;
72 
76  protected $ref_id;
77 
82  public function __construct($a_exp_dir, \ILIAS\COPage\PageLinker $linker = null, $ref_id = 0)
83  {
84  global $DIC;
85 
86  $this->log = ilLoggerFactory::getLogger('copg');
87  $this->user = $DIC->user();
88  $this->global_screen = $DIC->globalScreen();
89  $this->page_linker = is_null($linker)
90  ? new ilPageLinker("", true)
91  : $linker;
92  $this->ref_id = $ref_id;
93 
94  $this->exp_dir = $a_exp_dir;
95  $this->mobs_dir = $a_exp_dir . "/mobs";
96  $this->files_dir = $a_exp_dir . "/files";
97  $this->tex_dir = $a_exp_dir . "/teximg";
98  $this->content_style_dir = $a_exp_dir . "/content_style";
99  $this->content_style_img_dir = $a_exp_dir . "/content_style/images";
100 
101  include_once("./Services/MediaObjects/classes/class.ilPlayerUtil.php");
102  $this->services_dir = $a_exp_dir . "/Services";
103  $this->media_service_dir = $this->services_dir . "/MediaObjects";
104  $this->flv_dir = $a_exp_dir . "/" . ilPlayerUtil::getFlashVideoPlayerDirectory();
105  $this->mp3_dir = $this->media_service_dir . "/flash_mp3_player";
106 
107  $this->js_dir = $a_exp_dir . '/js';
108  $this->js_yahoo_dir = $a_exp_dir . '/js/yahoo';
109  $this->css_dir = $a_exp_dir . '/css';
110  }
111 
117  public function setContentStyleId($a_val)
118  {
119  $this->content_style_id = $a_val;
120  }
121 
127  public function getContentStyleId()
128  {
130  }
131 
138  public function createDirectories()
139  {
140  ilUtil::makeDir($this->mobs_dir);
141  ilUtil::makeDir($this->files_dir);
142  ilUtil::makeDir($this->tex_dir);
143  ilUtil::makeDir($this->content_style_dir);
144  ilUtil::makeDir($this->content_style_img_dir);
145  ilUtil::makeDir($this->services_dir);
146  ilUtil::makeDir($this->media_service_dir);
147  ilUtil::makeDir($this->flv_dir);
148  ilUtil::makeDir($this->mp3_dir);
149 
150  ilUtil::makeDir($this->js_dir);
151  ilUtil::makeDir($this->js_yahoo_dir);
152  ilUtil::makeDir($this->css_dir);
153  ilUtil::makeDir($this->css_dir . "/yahoo");
154  }
155 
163  public function exportStyles()
164  {
165  $this->log->debug("export styles");
166 
167  // export content style sheet
168  if ($this->getContentStyleId() < 1) { // basic style
170  ilUtil::makeDirParents($this->exp_dir . "/Services/COPage/css");
171  copy("Services/COPage/css/content.css", $this->exp_dir . "/Services/COPage/css/content.css");
172  } else {
173  $style = new ilObjStyleSheet($this->getContentStyleId());
174  $style->copyImagesToDir($this->exp_dir . "/" . $style->getImagesDirectory());
175  $this->exportResourceFile(
176  $this->exp_dir,
178  );
179  }
180 
181  // export syntax highlighting style
182  $syn_stylesheet = ilObjStyleSheet::getSyntaxStylePath();
183  $this->exportResourceFile($this->exp_dir, $syn_stylesheet);
184  }
185 
194  public function exportSupportScripts()
195  {
196  $this->log->debug("export scripts");
197 
198  $collector = new \ILIAS\COPage\ResourcesCollector(ilPageObjectGUI::OFFLINE);
199 
200  foreach ($collector->getJavascriptFiles() as $js) {
201  $this->exportResourceFile($this->exp_dir, $js);
202  }
203 
204  foreach ($collector->getCssFiles() as $css) {
205  $this->exportResourceFile($this->exp_dir, $css);
206  }
207 
208  //copy('./Services/UIComponent/Overlay/js/ilOverlay.js', $this->js_dir . '/ilOverlay.js');
209 
210 
211  // yui stuff we use
212  /*
213  include_once("./Services/YUI/classes/class.ilYuiUtil.php");
214  copy(
215  ilYuiUtil::getLocalPath('yahoo/yahoo-min.js'),
216  $this->js_yahoo_dir . '/yahoo-min.js'
217  );
218  copy(
219  ilYuiUtil::getLocalPath('yahoo-dom-event/yahoo-dom-event.js'),
220  $this->js_yahoo_dir . '/yahoo-dom-event.js'
221  );
222  copy(
223  ilYuiUtil::getLocalPath('animation/animation-min.js'),
224  $this->js_yahoo_dir . '/animation-min.js'
225  );
226  copy(
227  ilYuiUtil::getLocalPath('container/container-min.js'),
228  $this->js_yahoo_dir . '/container-min.js'
229  );
230  copy(
231  ilYuiUtil::getLocalPath('container/assets/skins/sam/container.css'),
232  $this->css_dir . '/container.css'
233  );
234  copy(
235  ilYuiUtil::getLocalPath('container/assets/skins/sam/container.css'),
236  $this->css_dir . '/yahoo/container.css'
237  );*/ // see #23083
238 
239 
240  // mediaelement.js
241  include_once("./Services/MediaObjects/classes/class.ilPlayerUtil.php");
243  }
244 
251  protected function exportResourceFile(string $target_dir, string $file)
252  {
253  if (is_int(strpos($file, "?"))) {
254  $file = substr($file, 0, strpos($file, "?"));
255  }
256  if (is_file($file)) {
257  $dir = dirname($file);
258  \ilUtil::makeDirParents($target_dir . "/" . $dir);
259  if (!is_file($target_dir . "/" . $file)) {
260  copy($file, $target_dir . "/" . $file);
261  }
262  }
263  }
264 
265 
272  public function getPreparedMainTemplate($a_tpl = "")
273  {
274  global $DIC;
275  $this->log->debug("get main template");
276 
277 
278  $resource_collector = new \ILIAS\COPage\ResourcesCollector(ilPageObjectGUI::OFFLINE);
279  $resource_injector = new \ILIAS\COPage\ResourcesInjector($resource_collector);
280 
281 
282  include_once("./Services/MediaObjects/classes/class.ilPlayerUtil.php");
283 
284  if ($a_tpl != "") {
285  $tpl = $a_tpl;
286  } else {
287  // template workaround: reset of template
288  $tpl = new ilGlobalPageTemplate($DIC->globalScreen(), $DIC->ui(), $DIC->http());
289  }
290  // scripts needed
291  /*
292  $scripts = array("./js/yahoo/yahoo-min.js", "./js/yahoo/yahoo-dom-event.js",
293  "./js/yahoo/animation-min.js", "./js/yahoo/container-min.js",
294  "./js/ilOverlay.js",
295  "./js/ilTooltip.js",);*/
296  $scripts = [];
297  $scripts = array_merge($scripts, ilPlayerUtil::getJsFilePaths());
298 
299  $mathJaxSetting = new ilSetting("MathJax");
300  $use_mathjax = $mathJaxSetting->get("enable");
301  if ($use_mathjax) {
302  $scripts[] = $mathJaxSetting->get("path_to_mathjax");
303  }
304 
308 
309  $resource_injector->inject($tpl);
310 
311  return $tpl;
312  }
313 
320  public function collectPageElements($a_type, $a_id, $lang = "")
321  {
322  $this->log->debug("collect page elements");
323 
324  // collect all dependent pages (only one level deep)
325  $pages[] = [
326  "type" => $a_type,
327  "id" => $a_id
328  ];
329 
330  // ... content includes
331  $pcs = ilPageContentUsage::getUsagesOfPage($a_id, $a_type, 0, false, $lang);
332  foreach ($pcs as $pc) {
333  // content includes
334  if ($pc["type"] == "incl") {
335  $pages[] = [
336  "type" => "mep:pg",
337  "id" => $pc["id"]
338  ];
339  }
340  }
341 
342  // ... internal links
343  $pg_links = \ilInternalLink::_getTargetsOfSource($a_type, $a_id, $lang);
344  $this->int_links = array_merge($this->int_links, $pg_links);
345  $this->glossary_terms = [];
346 
347  // ... glossary pages of internal links
348  foreach ($this->int_links as $int_link) {
349  if ($int_link["type"] == "git") {
350  $this->glossary_terms[] = $int_link["id"];
351  // store linked/embedded media objects of glosssary term
352  $defs = \ilGlossaryDefinition::getDefinitionList($int_link["id"]);
353  foreach ($defs as $def) {
354  $pages[] = [
355  "type" => "gdf:pg",
356  "id" => $def["obj_id"]
357  ];
358  }
359  }
360  }
361 
362  // resources of pages
363  foreach ($pages as $page) {
364  $page_id = $page["id"];
365  $page_type = $page["type"];
366 
367  // collect media objects
368  $pg_mobs = ilObjMediaObject::_getMobsOfObject($page_type, $page_id, 0, $lang);
369  foreach ($pg_mobs as $pg_mob) {
370  $this->mobs[$pg_mob] = $pg_mob;
371  $this->log->debug("HTML Export: Add media object $pg_mob (" . \ilObject::_lookupTitle($pg_mob) . ") " .
372  " due to page $page_id, $page_type ).");
373  }
374 
375  // collect all files
376  $files = ilObjFile::_getFilesOfObject($page_type, $page_id, 0, $lang);
377  foreach ($files as $f) {
378  $this->files[$f] = $f;
379  }
380 
381  // collect all questions
383  foreach ($q_ids as $q_id) {
384  $this->q_ids[$q_id] = $q_id;
385  }
386  }
387 
388  // collect page content items
389  $skill_tree = $ws_tree = null;
390 
391  // skills
392  foreach ($pcs as $pc) {
393  if ($pc["type"] == "skmg") {
394  $skill_id = $pc["id"];
395 
396  // trying to find user id
397  $user_id = null;
398  switch ($a_type) {
399  case "prtf:pg":
400  include_once "Modules/Portfolio/classes/class.ilPortfolioPage.php";
401  $page = new ilPortfolioPage($a_id);
402  $user_id = $page->create_user;
403  break;
404 
405  default:
406  // :TODO:
407  break;
408  }
409 
410  if ($user_id) {
411  // we only need 1 instance each
412  if (!$skill_tree) {
413  $skill_tree = new ilSkillTree();
414 
415  $ws_tree = new ilWorkspaceTree($user_id);
416  }
417 
418  // walk skill tree
419  $vtree = new ilVirtualSkillTree();
420  $tref_id = 0;
421  $skill_id = (int) $skill_id;
422  if (ilSkillTreeNode::_lookupType($skill_id) == "sktr") {
423  $tref_id = $skill_id;
424  $skill_id = ilSkillTemplateReference::_lookupTemplateId($skill_id);
425  }
426  $b_skills = $vtree->getSubTreeForCSkillId($skill_id . ":" . $tref_id, true);
427 
428  foreach ($b_skills as $bs) {
429  $skill = ilSkillTreeNodeFactory::getInstance($bs["skill_id"]);
430  $level_data = $skill->getLevelData();
431  foreach ($level_data as $k => $v) {
432  // get assigned materials from personal skill
433  $mat = ilPersonalSkill::getAssignedMaterial($user_id, $bs["tref_id"], $v["id"]);
434  if (sizeof($mat)) {
435  foreach ($mat as $item) {
436  $wsp_id = $item["wsp_id"];
437  $obj_id = $ws_tree->lookupObjectId($wsp_id);
438 
439  // all possible material types for now
440  switch (ilObject::_lookupType($obj_id)) {
441  case "file":
442  $this->files[$obj_id] = $obj_id;
443  break;
444 
445  case "tstv":
446  include_once "Modules/Test/classes/class.ilObjTestVerification.php";
447  $obj = new ilObjTestVerification($obj_id, false);
448  $this->files_direct[$obj_id] = array($obj->getFilePath(),
449  $obj->getOfflineFilename());
450  break;
451 
452  case "excv":
453  include_once "Modules/Exercise/classes/class.ilObjExerciseVerification.php";
454  $obj = new ilObjExerciseVerification($obj_id, false);
455  $this->files_direct[$obj_id] = array($obj->getFilePath(),
456  $obj->getOfflineFilename());
457  break;
458 
459  case "crsv":
460  include_once "Modules/Course/classes/Verification/class.ilObjCourseVerification.php";
461  $obj = new ilObjCourseVerification($obj_id, false);
462  $this->files_direct[$obj_id] = array($obj->getFilePath(),
463  $obj->getOfflineFilename());
464  break;
465 
466  case "cmxv":
467  $obj = new ilObjCmiXapiVerification($obj_id, false);
468  $this->files_direct[$obj_id] = array($obj->getFilePath(),
469  $obj->getOfflineFilename());
470  break;
471 
472  case "ltiv":
473  $obj = new ilObjLTIConsumerVerification($obj_id, false);
474  $this->files_direct[$obj_id] = array($obj->getFilePath(),
475  $obj->getOfflineFilename());
476  break;
477 
478  case "scov":
479  include_once "Modules/ScormAicc/classes/Verification/class.ilObjSCORMVerification.php";
480  $obj = new ilObjSCORMVerification($obj_id, false);
481  $this->files_direct[$obj_id] = array($obj->getFilePath(),
482  $obj->getOfflineFilename());
483  break;
484  }
485  }
486  }
487  }
488  }
489  }
490  }
491  }
492  }
493 
500  public function exportPageElements($a_update_callback = null)
501  {
502  $this->log->debug("export page elements");
503 
504  $total = count($this->mobs) + count($this->files) + count($this->files_direct);
505  $cnt = 0;
506 
507  // export all media objects
508  $linked_mobs = array();
509  foreach ($this->mobs as $mob) {
510  if (ilObject::_exists($mob) && ilObject::_lookupType($mob) == "mob") {
511  $this->exportHTMLMOB($mob, $linked_mobs);
512  }
513  if (is_callable($a_update_callback)) {
514  $cnt++;
515  $a_update_callback($total, $cnt);
516  }
517  }
518  $linked_mobs2 = array(); // mobs linked in link areas
519  foreach ($linked_mobs as $mob) {
520  if (ilObject::_exists($mob)) {
521  $this->exportHTMLMOB($mob, $linked_mobs2);
522  }
523  }
524 
525  // export all file objects
526  foreach ($this->files as $file) {
527  $this->exportHTMLFile($file);
528  if (is_callable($a_update_callback)) {
529  $cnt++;
530  $a_update_callback($total, $cnt);
531  }
532  }
533 
534  // export all files (which are not objects
535  foreach ($this->files_direct as $file_id => $attr) {
536  $this->exportHTMLFileDirect($file_id, $attr[0], $attr[1]);
537  if (is_callable($a_update_callback)) {
538  $cnt++;
539  $a_update_callback($total, $cnt);
540  }
541  }
542 
543  $this->exportQuestionFiles();
544 
545  // export all glossary terms
546  $this->exportHTMLGlossaryTerms();
547  }
548 
555  protected function initResourceTemplate($tempalate_file)
556  {
557  $this->global_screen->layout()->meta()->reset();
558  $tpl = new ilGlobalTemplate($tempalate_file, true, true, "Services/COPage");
563  return $tpl;
564  }
565 
569  public function exportHTMLMOB($a_mob_id, &$a_linked_mobs)
570  {
571  $this->log->debug("export html mobs");
572 
573  $source_dir = ilUtil::getWebspaceDir() . "/mobs/mm_" . $a_mob_id;
574  if (is_dir($source_dir)) {
575  ilUtil::makeDir($this->mobs_dir . "/mm_" . $a_mob_id);
576  ilUtil::rCopy($source_dir, $this->mobs_dir . "/mm_" . $a_mob_id);
577  }
578 
579  $mob_obj = new ilObjMediaObject($a_mob_id);
580 
581  $tpl = $this->initResourceTemplate("tpl.fullscreen.html");
582  $med_links = ilMediaItem::_getMapAreasIntLinks($a_mob_id);
583  $link_xml = $this->page_linker->getLinkXML($med_links);
584 
585  $params = [
586  "mode" => "media",
587  'enlarge_path' => ilUtil::getImagePath("enlarge.svg", false, "output", true),
588  'fullscreen_link' => $this->page_linker->getFullScreenLink("fullscreen")
589  ];
590  if ($this->ref_id > 0) {
591  $params["ref_id"] = $this->ref_id;
592  $params["link_params"] = "ref_id=" . $this->ref_id;
593  }
594 
595  $tpl->setVariable("MEDIA_CONTENT", $this->renderMob($mob_obj, $link_xml, $params));
596  $html = $tpl->printToString();
597  $file = $this->exp_dir . "/media_" . $a_mob_id . ".html";
598  $fp = fopen($file, "w+");
599  fwrite($fp, $html);
600  fclose($fp);
601  unset($fp);
602 
603  if ($mob_obj->hasFullscreenItem()) {
604  $tpl = $this->initResourceTemplate("tpl.fullscreen.html");
605  $params["mode"] = "fullscreen";
606  $tpl->setVariable("MEDIA_CONTENT", $this->renderMob($mob_obj, $link_xml, $params));
607  $html = $tpl->printToString();
608  $file = $this->exp_dir . "/fullscreen_" . $a_mob_id . ".html";
609  $fp = fopen($file, "w+");
610  fwrite($fp, $html);
611  fclose($fp);
612  unset($fp);
613  }
614 
615  $linked_mobs = $mob_obj->getLinkedMediaObjects();
616  $a_linked_mobs = array_merge($a_linked_mobs, $linked_mobs);
617  }
618 
626  protected function renderMob(\ilObjMediaObject $mob_obj, string $link_xml, array $params)
627  {
628  // render media object html
629  $xh = xslt_create();
630  $output = xslt_process(
631  $xh,
632  "arg:/_xml",
633  "arg:/_xsl",
634  null,
635  array(
636  "/_xml" =>
637  "<dummy>" .
638  $mob_obj->getXML(IL_MODE_ALIAS) .
639  $mob_obj->getXML(IL_MODE_OUTPUT) .
640  $link_xml .
641  "</dummy>",
642  "/_xsl" => file_get_contents("./Services/COPage/xsl/page.xsl")
643  ),
644  $params
645  );
646  xslt_free($xh);
647  unset($xh);
648  return $output;
649  }
650 
651 
655  public function exportHTMLFile($a_file_id)
656  {
657  $file_dir = $this->files_dir . "/file_" . $a_file_id;
658  ilUtil::makeDir($file_dir);
659 
660  include_once("./Modules/File/classes/class.ilObjFile.php");
661  $file_obj = new ilObjFile($a_file_id, false);
662  $source_file = $file_obj->getFile($file_obj->getVersion());
663  if (!is_file($source_file)) {
664  $source_file = $file_obj->getFile();
665  }
666  if (is_file($source_file)) {
667  copy($source_file, $file_dir . "/" . $file_obj->getFileName());
668  }
669  }
670 
674  public function exportHTMLFileDirect($a_file_id, $a_source_file, $a_file_name)
675  {
676  $file_dir = $this->files_dir . "/file_" . $a_file_id;
677  ilUtil::makeDir($file_dir);
678 
679  if (is_file($a_source_file)) {
680  copy(
681  $a_source_file,
682  $file_dir . "/" . ilUtil::getASCIIFilename($a_file_name)
683  );
684  }
685  }
686 
690  protected function exportQuestionFiles()
691  {
692  // export questions (images)
693  if (count($this->q_ids) > 0) {
694  foreach ($this->q_ids as $q_id) {
695  \ilUtil::makeDirParents($this->exp_dir . "/assessment/0/" . $q_id . "/images");
697  \ilUtil::getWebspaceDir() . "/assessment/0/" . $q_id . "/images",
698  $this->exp_dir . "/assessment/0/" . $q_id . "/images"
699  );
700  }
701  }
702  }
703 
708  public function exportHTMLGlossaryTerms()
709  {
710  foreach ($this->glossary_terms as $term_id) {
711  $tpl = $this->initResourceTemplate("tpl.glossary_term_output.html");
712 
713  $term_gui = new ilGlossaryTermGUI($term_id);
714  $term_gui->setPageLinker($this->page_linker);
715  $term_gui->setOfflineDirectory($this->exp_dir);
716  $term_gui->output(true, $tpl);
717 
718  // write file
719  $html = $tpl->printToString();
720  $file = $this->exp_dir . "/term_" . $term_id . ".html";
721  $fp = fopen($file, "w+");
722  fwrite($fp, $html);
723  fclose($fp);
724  }
725  }
726 }
static getContentStylePath($a_style_id, $add_random=true, $add_token=true)
get content style path
xslt_create()
static makeDirParents($a_dir)
Create a new directory and all parent directories.
setContentStyleId($a_val)
Set content style id.
static _getMobsOfObject($a_type, $a_id, $a_usage_hist_nr=0, $a_lang="-")
get mobs of object
renderMob(\ilObjMediaObject $mob_obj, string $link_xml, array $params)
Render Mob.
static getDefinitionList($a_term_id)
static
Page linker.
static _getMapAreasIntLinks($a_mob_id)
get all internal links of map areas of a mob
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
exportHTMLFile($a_file_id)
Export file object.
special template class to simplify handling of ITX/PEAR
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
HTML export class for pages.
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
Skill tree.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
Class ChatMainBarProvider .
xslt_free(&$proc)
getContentStyleId()
Get content style id.
if(strpos($jquery_path, './')===0) elseif(strpos($jquery_path, '.')===0) $mathJaxSetting
Definition: latex.php:54
initResourceTemplate($tempalate_file)
Get resource template.
static _lookupTitle($a_id)
lookup object title
exportHTMLFileDirect($a_file_id, $a_source_file, $a_file_name)
Export file from path.
exportHTMLGlossaryTerms()
Export glossary terms.
getPreparedMainTemplate($a_tpl="")
Get prepared main template.
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
user()
Definition: user.php:4
$total
Definition: Utf8Test.php:87
static getBasicImageDir()
Get basic image dir.
Tree handler for personal workspace.
static _lookupType($a_obj_id)
Lookup Type.
static getJsFilePaths()
Get js file paths.
createDirectories()
Create directories.
static getUsagesOfPage($a_usage_id, $a_usage_type, $a_hist_nr=0, $a_all_hist_nrs=false, $a_lang="-")
Get page content usages for page.
collectPageElements($a_type, $a_id, $lang="")
Collect page elements (that need to be exported separately)
Class ilGlobalPageTemplate.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
global $DIC
Definition: goto.php:24
GUI class for glossary terms.
static getFlashVideoPlayerDirectory()
Get flash video player directory.
exportSupportScripts()
Export support scripts.
Page for user portfolio.
static _lookupTemplateId($a_obj_id)
Lookup template ID.
Class ilObjMediaObject.
static getSyntaxStylePath()
get syntax style path
const IL_MODE_ALIAS
static _lookupType($a_id, $a_reference=false)
lookup object type
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
$lang
Definition: xapiexit.php:8
exportResourceFile(string $target_dir, string $file)
Export resource file.
static getAssignedMaterial($a_user_id, $a_tref_id, $a_level)
Get assigned material (for a skill level and user)
__construct($a_exp_dir, \ILIAS\COPage\PageLinker $linker=null, $ref_id=0)
ilCOPageHTMLExport constructor.
static copyPlayerFilesToTargetDirectory($a_target_dir)
Copy css files to target dir.
Class ilObjStyleSheet.
const IL_MODE_OUTPUT
static getLogger($a_component_id)
Get component logger.
exportStyles()
Export content style.
exportQuestionFiles()
Export question images.
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41
exportHTMLMOB($a_mob_id, &$a_linked_mobs)
Export media object to html.
static getWebspaceDir($mode="filesystem")
get webspace directory
getXML($a_mode=IL_MODE_FULL, $a_inst=0, $a_sign_locals=false)
get MediaObject XLM Tag
exportPageElements($a_update_callback=null)
Export page elements.