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