ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
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.progress"],
38  $c["ui.factory.dropzone"],
39  $c["ui.factory.popover"],
40  $c["ui.factory.divider"],
41  $c["ui.factory.link"],
42  $c["ui.factory.dropdown"],
43  $c["ui.factory.item"],
44  $c["ui.factory.viewcontrol"],
45  $c["ui.factory.chart"],
46  $c["ui.factory.input"],
47  $c["ui.factory.table"],
48  $c["ui.factory.messagebox"],
49  $c["ui.factory.card"],
50  $c["ui.factory.layout"],
51  $c["ui.factory.maincontrols"],
52  $c["ui.factory.tree"],
53  $c["ui.factory.menu"],
54  $c["ui.factory.symbol"],
55  $c["ui.factory.toast"],
56  $c["ui.factory.legacy"],
57  $c["ui.factory.launcher"],
58  $c["ui.factory.entity"],
59  $c["ui.factory.prompt"],
60  );
61  };
62  $c["ui.upload_limit_resolver"] = function ($c) {
63  return new \ILIAS\UI\Implementation\Component\Input\UploadLimitResolver(
65  ($c->offsetExists('upload_policy_resolver')) ?
66  $c['upload_policy_resolver']->getUserUploadSizeLimitInBytes() :
67  null
68  );
69  };
70  $c["ui.data_factory"] = function ($c) {
71  return new ILIAS\Data\Factory();
72  };
73  $c["ui.signal_generator"] = function ($c) {
75  };
76  $c["ui.factory.counter"] = function ($c) {
78  };
79  $c["ui.factory.button"] = function ($c) {
81  };
82  $c["ui.factory.listing"] = function ($c) {
84  };
85  $c["ui.factory.image"] = function ($c) {
87  };
88  $c["ui.factory.panel"] = function ($c) {
89  return new ILIAS\UI\Implementation\Component\Panel\Factory($c["ui.factory.panel.listing"]);
90  };
91  $c["ui.factory.interruptive_item"] = function ($c) {
93  };
94  $c["ui.factory.modal"] = function ($c) {
96  $c["ui.signal_generator"],
97  $c["ui.factory.interruptive_item"],
98  $c["ui.factory.input.field"],
99  );
100  };
101  $c["ui.factory.progress.refresh_interval"] = static fn(\ILIAS\DI\Container $c) =>
102  new class () implements \ILIAS\UI\Component\Progress\AsyncRefreshInterval {
103  public function getRefreshIntervalInMs(): int
104  {
105  return 1_000;
106  }
107  };
108  $c["ui.factory.progress"] = static fn(\ILIAS\DI\Container $c) =>
109  new \ILIAS\UI\Implementation\Component\Progress\Factory(
110  $c["ui.factory.progress.refresh_interval"],
111  $c["ui.signal_generator"],
112  $c["ui.factory.progress.state"],
113  );
114  $c["ui.factory.progress.state"] = static fn(\ILIAS\DI\Container $c) =>
115  new \ILIAS\UI\Implementation\Component\Progress\State\Factory(
116  new \ILIAS\UI\Implementation\Component\Progress\State\Bar\Factory(),
117  );
118  $c["ui.factory.dropzone"] = function ($c) {
119  return new ILIAS\UI\Implementation\Component\Dropzone\Factory($c["ui.factory.dropzone.file"]);
120  };
121  $c["ui.factory.popover"] = function ($c) {
122  return new ILIAS\UI\Implementation\Component\Popover\Factory($c["ui.signal_generator"]);
123  };
124  $c["ui.factory.divider"] = function ($c) {
126  };
127  $c["ui.factory.link"] = function ($c) {
129  };
130  $c["ui.factory.dropdown"] = function ($c) {
132  };
133  $c["ui.factory.item"] = function ($c) {
135  };
136  $c["ui.factory.toast"] = function ($c) {
137  return new ILIAS\UI\Implementation\Component\Toast\Factory($c["ui.signal_generator"]);
138  };
139  $c["ui.factory.viewcontrol"] = function ($c) {
141  $c["ui.signal_generator"]
142  );
143  };
144  $c["ui.factory.chart"] = function ($c) {
146  $c["ui.factory.progressmeter"],
147  $c["ui.factory.bar"]
148  );
149  };
150  $c["ui.factory.input"] = function ($c) {
152  $c["ui.signal_generator"],
153  $c["ui.factory.input.field"],
154  $c["ui.factory.input.container"],
155  $c["ui.factory.input.viewcontrol"]
156  );
157  };
158  $c["ui.factory.table"] = function ($c) {
162  $c["ui.signal_generator"],
163  $c['ui.factory.input.viewcontrol'],
164  $c['ui.factory.input.container.viewcontrol'],
165  $c["ui.data_factory"],
166  $c["ui.factory.table.column"],
167  $c["ui.factory.table.action"],
168  $c["ui.storage"],
169  $data_row_builder,
170  $ordering_row_builder
171  );
172  };
173  $c["ui.factory.table.column"] = function ($c) {
175  $c["lng"]
176  );
177  };
178  $c["ui.factory.table.action"] = function ($c) {
180  };
181  $c["ui.factory.messagebox"] = function ($c) {
183  };
184  $c["ui.factory.card"] = function ($c) {
186  };
187  $c["ui.factory.layout"] = function ($c) {
189  };
190  $c["ui.factory.maincontrols.slate"] = function ($c) {
192  $c['ui.signal_generator'],
193  $c['ui.factory.counter'],
194  $c["ui.factory.symbol"]
195  );
196  };
197  $c["ui.factory.maincontrols"] = function ($c) {
199  $c['ui.signal_generator'],
200  $c['ui.factory.maincontrols.slate']
201  );
202  };
203  $c["ui.factory.menu"] = function ($c) {
205  $c['ui.signal_generator']
206  );
207  };
208  $c["ui.factory.symbol.glyph"] = function ($c) {
210  };
211  $c["ui.factory.symbol.icon"] = function ($c) {
213  };
214  $c["ui.factory.symbol.avatar"] = function ($c) {
216  };
217  $c["ui.factory.symbol"] = function ($c) {
219  $c["ui.factory.symbol.icon"],
220  $c["ui.factory.symbol.glyph"],
221  $c["ui.factory.symbol.avatar"]
222  );
223  };
224  $c["ui.factory.progressmeter"] = function ($c) {
226  };
227  $c["ui.factory.bar"] = function ($c) {
229  };
230  $c["ui.factory.input.field"] = function ($c) {
232  $c["ui.upload_limit_resolver"],
233  $c["ui.signal_generator"],
234  $c["ui.data_factory"],
235  $c["refinery"],
236  $c["lng"]
237  );
238  };
239  $c["ui.factory.input.container"] = function ($c) {
241  $c["ui.factory.input.container.form"],
242  $c["ui.factory.input.container.filter"],
243  $c["ui.factory.input.container.viewcontrol"]
244  );
245  };
246  $c["ui.factory.input.container.form"] = function ($c) {
248  $c["ui.factory.input.field"],
249  $c["ui.signal_generator"]
250  );
251  };
252  $c["ui.factory.input.container.filter"] = function ($c) {
254  $c["ui.signal_generator"],
255  $c["ui.factory.input.field"]
256  );
257  };
258  $c["ui.factory.input.container.viewcontrol"] = function ($c) {
260  $c["ui.signal_generator"],
261  $c["ui.factory.input.viewcontrol"],
262  );
263  };
264  $c["ui.factory.input.viewcontrol"] = function ($c) {
266  $c["ui.factory.input.field"],
267  $c["ui.data_factory"],
268  $c["refinery"],
269  $c["ui.signal_generator"],
270  $c["lng"],
271  );
272  };
273  $c["ui.factory.dropzone.file"] = function ($c) {
275  $c["ui.signal_generator"],
276  $c["ui.factory.input.field"],
277  );
278  };
279  $c["ui.factory.panel.listing"] = function ($c) {
281  };
282  $c["ui.renderer"] = function ($c) {
284  $c["ui.component_renderer_loader"],
285  $c["ui.javascript_binding"],
286  );
287  };
288  $c["ui.component_renderer_loader"] = function ($c) {
290  new ILIAS\UI\Implementation\Render\LoaderResourceRegistryWrapper(
291  $c["ui.resource_registry"],
292  new ILIAS\UI\Implementation\Render\FSLoader(
293  new ILIAS\UI\Implementation\Render\DefaultRendererFactory(
294  $c["ui.factory"],
295  $c["ui.template_factory"],
296  $c["lng"],
297  $c["ui.javascript_binding"],
298  $c["ui.pathresolver"],
299  $c["ui.data_factory"],
300  $c["help.text_retriever"],
301  $c["ui.upload_limit_resolver"]
302  ),
303  new ILIAS\UI\Implementation\Component\Symbol\Glyph\GlyphRendererFactory(
304  $c["ui.factory"],
305  $c["ui.template_factory"],
306  $c["lng"],
307  $c["ui.javascript_binding"],
308  $c["ui.pathresolver"],
309  $c["ui.data_factory"],
310  $c["help.text_retriever"],
311  $c["ui.upload_limit_resolver"]
312  ),
313  new ILIAS\UI\Implementation\Component\Input\Field\FieldRendererFactory(
314  $c["ui.factory"],
315  $c["ui.template_factory"],
316  $c["lng"],
317  $c["ui.javascript_binding"],
318  $c["ui.pathresolver"],
319  $c["ui.data_factory"],
320  $c["help.text_retriever"],
321  $c["ui.upload_limit_resolver"]
322  ),
323  new ILIAS\UI\Implementation\Component\MessageBox\MessageBoxRendererFactory(
324  $c["ui.factory"],
325  $c["ui.template_factory"],
326  $c["lng"],
327  $c["ui.javascript_binding"],
328  $c["ui.pathresolver"],
329  $c["ui.data_factory"],
330  $c["help.text_retriever"],
331  $c["ui.upload_limit_resolver"]
332  ),
333  new ILIAS\UI\Implementation\Component\Input\Container\Form\FormRendererFactory(
334  $c["ui.factory"],
335  $c["ui.template_factory"],
336  $c["lng"],
337  $c["ui.javascript_binding"],
338  $c["ui.pathresolver"],
339  $c["ui.data_factory"],
340  $c["help.text_retriever"],
341  $c["ui.upload_limit_resolver"]
342  ),
343  )
344  )
345  );
346  };
347  $c["ui.template_factory"] = function ($c) {
349  };
350  $c["ui.resource_registry"] = function ($c) {
352  };
353  $c["ui.javascript_binding"] = function ($c) {
355  };
356 
357  $c["ui.factory.tree"] = function ($c) {
359  };
360 
361  $c["ui.factory.legacy"] = function ($c) {
362  return new ILIAS\UI\Implementation\Component\Legacy\Factory($c["ui.signal_generator"]);
363  };
364 
365  $c["ui.pathresolver"] = function ($c): ILIAS\UI\Implementation\Render\ImagePathResolver {
366  return new ilImagePathResolver();
367  };
368 
369  $c["ui.factory.launcher"] = function ($c): ILIAS\UI\Implementation\Component\Launcher\Factory {
371  $c["ui.factory.modal"]
372  );
373  };
374 
375  $c["ui.factory.entity"] = function ($c) {
377  };
378 
379  $c["ui.factory.prompt"] = function ($c) {
380  return new ILIAS\UI\Implementation\Component\Prompt\Factory($c["ui.signal_generator"]);
381  };
382 
383  // currently this is will be a session storage because we cannot store
384  // data on the client, see https://mantis.ilias.de/view.php?id=38503.
385  $c["ui.storage"] = function ($c): ArrayAccess {
386  return new class () implements ArrayAccess {
387  public function offsetExists(mixed $offset): bool
388  {
389  return ilSession::has($offset);
390  }
391  public function offsetGet(mixed $offset): mixed
392  {
393  return ilSession::get($offset);
394  }
395  public function offsetSet(mixed $offset, mixed $value): void
396  {
397  if (!is_string($offset)) {
398  throw new InvalidArgumentException('Offset needs to be of type string.');
399  }
400  ilSession::set($offset, $value);
401  }
402  public function offsetUnset(mixed $offset): void
403  {
404  ilSession::clear($offset);
405  }
406  };
407  };
408  }
409 }
static get(string $a_var)
Interface Observer Contains several chained tasks and infos about them.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Implementation of factory for tables.
Definition: Factory.php:34
Implementation of factory for modals.
Definition: Factory.php:35
$c
Definition: deliver.php:9
Responsible for loading the UI Framework into the dependency injection container of ILIAS...
Class HTTPServicesTest.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static has($a_var)
Builds data types.
Definition: Factory.php:35
init(\ILIAS\DI\Container $c)
static getPhpUploadSizeLimitInBytes()
static clear(string $a_var)
static set(string $a_var, $a_val)
Set a value.