ILIAS  release_8 Revision v8.24
class.ilKioskPageRenderer.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
28
30{
35 protected ilLanguage $lng;
36 protected ilTemplate $tpl;
39 protected string $window_base_title;
40
41 public function __construct(
42 ilGlobalPageTemplate $il_global_template,
47 ilTemplate $kiosk_template,
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}
Class LSTOCBuilder.
setVariable(string $a_group_name, string $a_var_name, string $a_var_value)
sets a variable in a group
__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)
ilGlobalPageTemplate $il_tpl
render(LSControlBuilder $control_builder, string $obj_title, Component $icon, array $content)
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
legacy(string $content)
An entity that renders components to a string output.
Definition: Renderer.php:31
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...