ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilLMHtmlExportViewLayoutProvider.php
Go to the documentation of this file.
1 <?php
2 
13 
20 {
21  const LM_HTML_EXPORT_RENDERING = 'lm_html_export_rendering';
22 
23 
28  {
29  return $this->context_collection->repository();
30  }
31 
35  public function getMetaBarModification(CalledContexts $called_contexts) : ?MetaBarModification
36  {
37  $additional_data = $called_contexts->current()->getAdditionalData();
38  if ($additional_data->is(self::LM_HTML_EXPORT_RENDERING, true)) {
39  return $this->globalScreen()
40  ->layout()
41  ->factory()
42  ->metabar()
43  ->withModification(function (MetaBar $current = null) : ?MetaBar {
44  return null;
45  })->withHighPriority();
46  }
47  return null;
48  }
49 
53  public function getMainBarModification(CalledContexts $called_contexts) : ?MainBarModification
54  {
55  $additional_data = $called_contexts->current()->getAdditionalData();
56  if ($additional_data->is(self::LM_HTML_EXPORT_RENDERING, true)) {
57  return $this->globalScreen()
58  ->layout()
59  ->factory()
60  ->mainbar()
61  ->withModification(function (MainBar $current = null) : ?MainBar {
62  global $DIC;
63 
64  $lng = $DIC->language();
65  $f = $DIC->ui()->factory();
66 
67  // create an offline main bar
68  $offline_main_bar = new \ILIAS\UI\Implementation\Component\MainControls\MainBar(
69  new \ILIAS\UI\Implementation\Component\SignalGenerator()
70  );
71  $grid_icon = $f->symbol()->icon()->custom(\ilUtil::getImagePath("outlined/icon_tool.svg"), $lng->txt("more"));
72  $offline_main_bar = $offline_main_bar->withMoreButton(
73  $f->button()->bulky($grid_icon, $lng->txt("more"), "#")
74  );
75  $tools_button = $f->button()->bulky($grid_icon, $lng->txt("tools"), "#")->withEngagedState(true);
76  $offline_main_bar = $offline_main_bar->withToolsButton($tools_button);
77 
78  // get tool ids for offline use from lm tools provider
79  $lm_tools = new ilLMGSToolProvider($DIC);
80  $ids = $lm_tools->getOfflineToolIds();
81 
82  // copy all offline tools from original main bar to offline main bar
83  foreach ($current->getToolEntries() as $id => $te) {
84  if (in_array($id, $ids)) {
85  $offline_main_bar = $offline_main_bar->withAdditionalToolEntry(
86  $id,
87  $te
88  );
89  }
90  }
91 
92  return $offline_main_bar;
93  })->withHighPriority();
94  } else {
95  return null;
96  }
97  }
98 
103  {
104  $additional_data = $called_contexts->current()->getAdditionalData();
105  if ($additional_data->is(self::LM_HTML_EXPORT_RENDERING, true)) {
106  return $this->globalScreen()
107  ->layout()
108  ->factory()
109  ->breadcrumbs()
110  ->withModification(function (Breadcrumbs $current = null) : ?Breadcrumbs {
111  return null;
112  })->withHighPriority();
113  } else {
114  return null;
115  }
116  }
117 }
LM HTML export view layout provider, hides main and meta bar.
Class Factory.
This describes the MainBar.
Definition: MainBar.php:15
Class ChatMainBarProvider .
Class ilLMGSToolProvider.
$lng
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
getBreadCrumbsModification(CalledContexts $called_contexts)
No breadcrumbs in HTML exports.
This describes the MetaBar.
Definition: MetaBar.php:14
$DIC
Definition: xapitoken.php:46
getMetaBarModification(CalledContexts $called_contexts)
No meta bar in HTML exports.
getMainBarModification(CalledContexts $called_contexts)
No main bar in HTML exports.