ILIAS  release_8 Revision v8.23
class.ilKioskPageRenderer.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
28 
30 {
33  protected Factory $ui_factory;
35  protected ilLanguage $lng;
36  protected ilTemplate $tpl;
37  protected ilLSTOCGUI $toc_gui;
39  protected string $window_base_title;
40 
41  public function __construct(
42  ilGlobalPageTemplate $il_global_template,
43  MetaContent $layout_meta_content,
44  Factory $ui_factory,
45  Renderer $ui_renderer,
46  ilLanguage $lng,
47  ilTemplate $kiosk_template,
48  ilLSTOCGUI $toc_gui,
49  ilLSLocatorGUI $loc_gui,
50  string $window_base_title
51  ) {
52  $this->il_tpl = $il_global_template;
53  $this->layout_meta_content = $layout_meta_content;
54  $this->ui_factory = $ui_factory;
55  $this->ui_renderer = $ui_renderer;
56  $this->lng = $lng;
57  $this->tpl = $kiosk_template;
58  $this->toc_gui = $toc_gui;
59  $this->loc_gui = $loc_gui;
60  $this->window_base_title = $window_base_title;
61  }
62 
63  public function buildCurriculumSlate(Workflow $curriculum): Slate
64  {
66  return $this->ui_factory->maincontrols()->slate()->legacy(
67  $this->lng->txt('lso_mainbar_button_label_curriculum'),
68  $f->symbol()->icon()->standard("lso", "Learning Sequence"),
69  $this->ui_factory->legacy(
70  $this->ui_renderer->render($curriculum)
71  )
72  );
73  }
74 
75  public function buildToCSlate(LSTOCBuilder $toc, Icon $icon): Slate
76  {
77  $html = $this->toc_gui
78  ->withStructure($toc->toJSON())
79  ->getHTML();
80  return $this->ui_factory->maincontrols()->slate()->legacy(
81  $this->lng->txt('lso_mainbar_button_label_toc'),
82  $icon->withSize("small"),
83  $this->ui_factory->legacy($html)
84  );
85  }
86 
87 
88  public function render(
89  LSControlBuilder $control_builder,
90  string $obj_title,
91  Component $icon,
92  array $content
93  ): string {
94  $this->tpl->setVariable(
95  "OBJECT_ICON",
96  $this->ui_renderer->render($icon)
97  );
98  $this->tpl->setVariable("OBJECT_TITLE", $obj_title);
99 
100  $this->tpl->setVariable(
101  "PLAYER_NAVIGATION",
102  $this->ui_renderer->render([
103  $control_builder->getPreviousControl(),
104  $control_builder->getNextControl()
105  ])
106  );
107 
108  $controls = $control_builder->getControls();
109 
110  //ensure done control is first element
111  if ($control_builder->getDoneControl()) {
112  array_unshift($controls, $control_builder->getDoneControl());
113  }
114  //also shift start control up front - this is for legacy-views only!
115  if ($control_builder->getStartControl()) {
116  array_unshift($controls, $control_builder->getStartControl());
117  $this->tpl->setVariable("JS_INLINE", $control_builder->getAdditionalJS());
118  }
119 
120  //TODO: insert toggles
121 
122  $this->tpl->setVariable(
123  "OBJ_NAVIGATION",
124  $this->ui_renderer->render($controls)
125  );
126 
127 
128  $this->tpl->setVariable(
129  "VIEW_MODES",
130  $this->ui_renderer->render($control_builder->getModeControls())
131  );
132 
133  if ($control_builder->getLocator()) {
134  $this->tpl->setVariable(
135  'LOCATOR',
136  $this->ui_renderer->render(
137  $this->loc_gui
138  ->withItems($control_builder->getLocator()->getItems())
139  ->getComponent()
140  )
141  );
142  }
143 
144  $this->tpl->setVariable(
145  'CONTENT',
146  $this->ui_renderer->render($content)
147  );
148 
149  return $this->tpl->get();
150  }
151 }
An entity that renders components to a string output.
Definition: Renderer.php:30
ilGlobalPageTemplate $il_tpl
withSize(string $size)
Set the size for this icon.
This describes how an icon could be modified during construction of UI.
Definition: Icon.php:28
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
legacy(string $content)
description: purpose: > This component is used to wrap an existing ILIAS UI element into a UI compon...
buildCurriculumSlate(Workflow $curriculum)
Class LSTOCBuilder.
buildToCSlate(LSTOCBuilder $toc, Icon $icon)
__construct(ilGlobalPageTemplate $il_global_template, MetaContent $layout_meta_content, Factory $ui_factory, Renderer $ui_renderer, ilLanguage $lng, ilTemplate $kiosk_template, ilLSTOCGUI $toc_gui, ilLSLocatorGUI $loc_gui, string $window_base_title)
GUI for Locator element.
Tree-GUI for ToC.
render(LSControlBuilder $control_builder, string $obj_title, Component $icon, array $content)