ILIAS  release_8 Revision v8.24
InitUIFramework.php
Go to the documentation of this file.
1<?php
2
20
25{
26 public function init(\ILIAS\DI\Container $c): void
27 {
28 $c["ui.factory"] = function ($c) {
29 $c["lng"]->loadLanguageModule("ui");
31 $c["ui.factory.counter"],
32 $c["ui.factory.button"],
33 $c["ui.factory.listing"],
34 $c["ui.factory.image"],
35 $c["ui.factory.panel"],
36 $c["ui.factory.modal"],
37 $c["ui.factory.dropzone"],
38 $c["ui.factory.popover"],
39 $c["ui.factory.divider"],
40 $c["ui.factory.link"],
41 $c["ui.factory.dropdown"],
42 $c["ui.factory.item"],
43 $c["ui.factory.viewcontrol"],
44 $c["ui.factory.chart"],
45 $c["ui.factory.input"],
46 $c["ui.factory.table"],
47 $c["ui.factory.messagebox"],
48 $c["ui.factory.card"],
49 $c["ui.factory.layout"],
50 $c["ui.factory.maincontrols"],
51 $c["ui.factory.tree"],
52 $c["ui.factory.menu"],
53 $c["ui.factory.symbol"],
54 $c["ui.factory.toast"],
55 $c["ui.factory.legacy"]
56 );
57 };
58 $c["ui.upload_limit_resolver"] = function ($c) {
59 return new \ILIAS\UI\Implementation\Component\Input\UploadLimitResolver(
61 );
62 };
63 $c["ui.data_factory"] = function ($c) {
64 return new ILIAS\Data\Factory();
65 };
66 $c["ui.signal_generator"] = function ($c) {
68 };
69 $c["ui.factory.counter"] = function ($c) {
71 };
72 $c["ui.factory.button"] = function ($c) {
74 };
75 $c["ui.factory.listing"] = function ($c) {
77 };
78 $c["ui.factory.image"] = function ($c) {
80 };
81 $c["ui.factory.panel"] = function ($c) {
82 return new ILIAS\UI\Implementation\Component\Panel\Factory($c["ui.factory.panel.listing"]);
83 };
84 $c["ui.factory.modal"] = function ($c) {
86 $c["ui.signal_generator"],
87 $c["ui.factory.input.field"]
88 );
89 };
90 $c["ui.factory.dropzone"] = function ($c) {
91 return new ILIAS\UI\Implementation\Component\Dropzone\Factory($c["ui.factory.dropzone.file"]);
92 };
93 $c["ui.factory.popover"] = function ($c) {
94 return new ILIAS\UI\Implementation\Component\Popover\Factory($c["ui.signal_generator"]);
95 };
96 $c["ui.factory.divider"] = function ($c) {
98 };
99 $c["ui.factory.link"] = function ($c) {
101 };
102 $c["ui.factory.dropdown"] = function ($c) {
104 };
105 $c["ui.factory.item"] = function ($c) {
107 };
108 $c["ui.factory.toast"] = function ($c) {
109 return new ILIAS\UI\Implementation\Component\Toast\Factory($c["ui.signal_generator"]);
110 };
111 $c["ui.factory.viewcontrol"] = function ($c) {
113 $c["ui.signal_generator"]
114 );
115 };
116 $c["ui.factory.chart"] = function ($c) {
118 $c["ui.factory.progressmeter"],
119 $c["ui.factory.bar"]
120 );
121 };
122 $c["ui.factory.input"] = function ($c) {
124 $c["ui.signal_generator"],
125 $c["ui.factory.input.field"],
126 $c["ui.factory.input.container"],
127 $c["ui.factory.input.viewcontrol"]
128 );
129 };
130 $c["ui.factory.table"] = function ($c) {
132
134 $c["ui.signal_generator"],
135 $c['ui.factory.input.viewcontrol'],
136 $c['ui.factory.input.container.viewcontrol'],
137 $c["ui.data_factory"],
138 $c["ui.factory.table.column"],
139 $c["ui.factory.table.action"],
140 $row_builder,
141 $c["ui.storage"]
142 );
143 };
144 $c["ui.factory.table.column"] = function ($c) {
146 $c["lng"]
147 );
148 };
149 $c["ui.factory.table.action"] = function ($c) {
151 };
152 $c["ui.factory.messagebox"] = function ($c) {
154 };
155 $c["ui.factory.card"] = function ($c) {
157 };
158 $c["ui.factory.layout"] = function ($c) {
160 };
161 $c["ui.factory.maincontrols.slate"] = function ($c) {
163 $c['ui.signal_generator'],
164 $c['ui.factory.counter'],
165 $c["ui.factory.symbol"]
166 );
167 };
168 $c["ui.factory.maincontrols"] = function ($c) {
170 $c['ui.signal_generator'],
171 $c['ui.factory.maincontrols.slate']
172 );
173 };
174 $c["ui.factory.menu"] = function ($c) {
176 $c['ui.signal_generator']
177 );
178 };
179 $c["ui.factory.symbol.glyph"] = function ($c) {
181 };
182 $c["ui.factory.symbol.icon"] = function ($c) {
184 };
185 $c["ui.factory.symbol.avatar"] = function ($c) {
187 };
188 $c["ui.factory.symbol"] = function ($c) {
190 $c["ui.factory.symbol.icon"],
191 $c["ui.factory.symbol.glyph"],
192 $c["ui.factory.symbol.avatar"]
193 );
194 };
195 $c["ui.factory.progressmeter"] = function ($c) {
197 };
198 $c["ui.factory.bar"] = function ($c) {
200 };
201 $c["ui.factory.input.field"] = function ($c) {
203 $c["ui.upload_limit_resolver"],
204 $c["ui.signal_generator"],
205 $c["ui.data_factory"],
206 $c["refinery"],
207 $c["lng"]
208 );
209 };
210 $c["ui.factory.input.container"] = function ($c) {
212 $c["ui.factory.input.container.form"],
213 $c["ui.factory.input.container.filter"],
214 $c["ui.factory.input.container.viewcontrol"]
215 );
216 };
217 $c["ui.factory.input.container.form"] = function ($c) {
219 $c["ui.factory.input.field"]
220 );
221 };
222 $c["ui.factory.input.container.filter"] = function ($c) {
224 $c["ui.signal_generator"],
225 $c["ui.factory.input.field"]
226 );
227 };
228 $c["ui.factory.input.container.viewcontrol"] = function ($c) {
230 $c["ui.signal_generator"],
231 $c["ui.factory.input.viewcontrol"]
232 );
233 };
234 $c["ui.factory.input.viewcontrol"] = function ($c) {
236 $c["ui.factory.input.field"],
237 $c["ui.data_factory"],
238 $c["refinery"],
239 $c["ui.signal_generator"],
240 $c["lng"]
241 );
242 };
243 $c["ui.factory.dropzone.file"] = function ($c) {
245 $c["ui.signal_generator"],
246 $c["ui.factory.input.field"]
247 );
248 };
249 $c["ui.factory.panel.listing"] = function ($c) {
251 };
252 $c["ui.renderer"] = function ($c) {
254 $c["ui.component_renderer_loader"]
255 );
256 };
257 $c["ui.component_renderer_loader"] = function ($c) {
259 new ILIAS\UI\Implementation\Render\LoaderResourceRegistryWrapper(
260 $c["ui.resource_registry"],
261 new ILIAS\UI\Implementation\Render\FSLoader(
262 new ILIAS\UI\Implementation\Render\DefaultRendererFactory(
263 $c["ui.factory"],
264 $c["ui.template_factory"],
265 $c["lng"],
266 $c["ui.javascript_binding"],
267 $c["refinery"],
268 $c["ui.pathresolver"],
269 $c["ui.data_factory"]
270 ),
271 new ILIAS\UI\Implementation\Component\Symbol\Glyph\GlyphRendererFactory(
272 $c["ui.factory"],
273 $c["ui.template_factory"],
274 $c["lng"],
275 $c["ui.javascript_binding"],
276 $c["refinery"],
277 $c["ui.pathresolver"],
278 $c["ui.data_factory"]
279 ),
280 new ILIAS\UI\Implementation\Component\Symbol\Icon\IconRendererFactory(
281 $c["ui.factory"],
282 $c["ui.template_factory"],
283 $c["lng"],
284 $c["ui.javascript_binding"],
285 $c["refinery"],
286 $c["ui.pathresolver"],
287 $c["ui.data_factory"]
288 ),
289 new ILIAS\UI\Implementation\Component\Input\Field\FieldRendererFactory(
290 $c["ui.factory"],
291 $c["ui.template_factory"],
292 $c["lng"],
293 $c["ui.javascript_binding"],
294 $c["refinery"],
295 $c["ui.pathresolver"],
296 $c["ui.data_factory"]
297 )
298 )
299 )
300 );
301 };
302 $c["ui.template_factory"] = function ($c) {
304 };
305 $c["ui.resource_registry"] = function ($c) {
307 };
308 $c["ui.javascript_binding"] = function ($c) {
310 };
311
312 $c["ui.factory.tree"] = function ($c) {
314 };
315
316 $c["ui.factory.legacy"] = function ($c) {
317 return new ILIAS\UI\Implementation\Component\Legacy\Factory($c["ui.signal_generator"]);
318 };
319
320 $c["ui.pathresolver"] = function ($c): ILIAS\UI\Implementation\Render\ImagePathResolver {
321 return new ilImagePathResolver();
322 };
323
324
325 // currently this is will be a session storage because we cannot store
326 // data on the client, see https://mantis.ilias.de/view.php?id=38503.
327 $c["ui.storage"] = function ($c): ArrayAccess {
328 return new class () implements ArrayAccess {
329 public function offsetExists($offset)
330 {
331 return ilSession::has($offset);
332 }
333 public function offsetGet($offset)
334 {
335 return ilSession::get($offset);
336 }
337 public function offsetSet($offset, $value)
338 {
339 if (!is_string($offset)) {
340 throw new InvalidArgumentException('Offset needs to be of type string.');
341 }
342 ilSession::set($offset, $value);
343 }
344 public function offsetUnset($offset)
345 {
346 ilSession::clear($offset);
347 }
348 };
349 };
350 }
351}
Builds a Color from either hex- or rgb values.
Definition: Factory.php:17
Factory for Date Formats.
Definition: Factory.php:27
Builds data types.
Definition: Factory.php:21
Implementation of factory for cards.
Definition: Factory.php:32
Renderer that dispatches rendering of UI components to a Renderer found in the same namespace as the ...
Caches renderers loaded by another loader.
Wraps global ilTemplate to provide JavaScriptBinding.
Responsible for loading the UI Framework into the dependency injection container of ILIAS.
init(\ILIAS\DI\Container $c)
static getUploadSizeLimitBytes()
static get(string $a_var)
static clear(string $a_var)
static set(string $a_var, $a_val)
Set a value.
static has($a_var)
$c
Definition: cli.php:38
This is what a factory for input fields looks like.
Definition: Factory.php:29
This describes the factory for (view-)controls.
Definition: Factory.php:27
This is what a factory for layouts looks like.
Definition: Factory.php:27
This is how the factory for UI elements looks.
Definition: Factory.php:38
Class HTTPServicesTest.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ChatMainBarProvider \MainMenu\Provider.
Class Factory.