ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilKioskPageRenderer.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
28
30{
34 protected ilLanguage $lng;
35 protected ilTemplate $tpl;
38 protected string $window_base_title;
39
40 public function __construct(
45 ilTemplate $kiosk_template,
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}
Builds a Color from either hex- or rgb values.
Definition: Factory.php:31
Class LSTOCBuilder.
setVariable(string $a_group_name, string $a_var_name, string $a_var_value)
sets a variable in a group
render(LSControlBuilder $control_builder, string $obj_title, Component $icon, array $content)
__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)
buildToCSlate(LSTOCBuilder $toc, Icon $icon)
buildCurriculumSlate(Workflow $curriculum)
GUI for Locator element.
Tree-GUI for ToC.
language handling
special template class to simplify handling of ITX/PEAR
A component is the most general form of an entity in the UI.
Definition: Component.php:28
This describes how an icon could be modified during construction of UI.
Definition: Icon.php:29
withSize(string $size)
Set the size for this icon.
This is how the factory for UI elements looks.
Definition: Factory.php:38
An entity that renders components to a string output.
Definition: Renderer.php:31