ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ilStudyProgrammeDIC.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
24 {
25  public static ?Container $dic = null;
26 
27  public static function dic(): Container
28  {
29  if (!self::$dic) {
30  self::$dic = self::buildDIC();
31  }
32  return self::$dic;
33  }
34 
35  public static function specificDicFor(ilObjStudyProgramme $prg): Container
36  {
37  global $DIC;
38  $dic = new Container();
39 
40  $dic['permissionhelper'] = static function ($dic) use ($prg, $DIC) {
41  return new ilPRGPermissionsHelper(
42  $DIC['ilAccess'],
44  $DIC['ilObjDataCache'],
45  new ilOrgUnitPositionAccess($DIC['ilAccess']),
46  (int) $prg->getRefid()
47  );
48  };
49 
50  $dic['ilStudyProgrammeUserTable'] = function ($dic) use ($DIC) {
51  return new ilStudyProgrammeUserTable(
52  $DIC['ilDB'],
54  $dic['repo.assignment'],
55  $DIC['lng'],
56  $dic['permissionhelper'],
58  );
59  };
60 
61  $dic['model.Settings.ilStudyProgrammeSettingsRepository'] = function ($dic) use ($DIC) {
63  $DIC['ilDB']
64  );
65  };
66  $dic['repo.assignment'] = function ($dic) use ($DIC) {
67  return new ilPRGAssignmentDBRepository(
68  $DIC['ilDB'],
69  $DIC['tree'],
70  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
71  $dic['ilStudyProgrammeDelayedEvents'],
73  );
74  };
75  $dic['filter.assignment'] = function ($dic) use ($DIC): ilPRGAssignmentFilter {
76  return new ilPRGAssignmentFilter(
77  $DIC['lng']
78  );
79  };
80 
81  $dic['Log'] = static fn($dic) =>
83 
84  $dic['mail'] = static fn($dic) =>
85  new ilPRGMail(
86  $dic['Log'],
87  $DIC['lng']
88  );
89  $dic['ilAppEventHandler'] = static fn($dic) =>
90  $DIC->offsetExists('ilAppEventHandler') ? $DIC['ilAppEventHandler'] : new \ilAppEventHandler();
91 
92  $dic['prgEventHandler'] = static fn($dic) => new PRGEventHandler($dic['mail']);
93 
94  $dic['ilStudyProgrammeEvents'] = static fn($dic) =>
96  $dic['Log'],
97  $dic['ilAppEventHandler'],
98  $dic['prgEventHandler']
99  );
100  $dic['ilStudyProgrammeDelayedEvents'] = static fn($dic) =>
101  new PRGEventsDelayed($dic['ilStudyProgrammeEvents']);
102 
103  $dic['ui.factory'] = static fn($dic) => $DIC['ui.factory'];
104  $dic['ui.renderer'] = static fn($dic) => $DIC['ui.renderer'];
105 
106  $dic['ilStudyProgrammeMailMemberSearchGUI'] = static fn($dic) =>
108  $DIC['ilCtrl'],
109  $DIC['tpl'],
110  $DIC['lng'],
111  $DIC['ilAccess'],
112  $DIC->http()->wrapper(),
113  $DIC->refinery(),
114  $dic['permissionhelper'],
115  $prg->getId(),
116  $dic['PRGMessages']
117  );
118 
119  $dic['PRGMessages'] = static fn($dic): ilPRGMessagePrinter =>
122  $DIC['lng'],
123  $DIC['tpl']
124  );
125 
126  $dic['DataFactory'] = static fn($dic) => new \ILIAS\Data\Factory();
127 
128  return $dic;
129  }
130 
131 
132  protected static function buildDIC(): Container
133  {
134  global $DIC;
135  $dic = new Container();
136 
137  $dic['mail'] = static fn($dic) =>
138  new ilPRGMail(
139  $dic['Log'],
140  $DIC['lng']
141  );
142 
143  $dic['ilAppEventHandler'] = static fn($dic) =>
144  $DIC->offsetExists('ilAppEventHandler') ? $DIC['ilAppEventHandler'] : new \ilAppEventHandler();
145 
146  $dic['prgEventHandler'] = static fn($dic) => new PRGEventHandler($dic['mail']);
147 
148  $dic['ilStudyProgrammeEvents'] = static fn($dic) =>
150  $dic['Log'],
151  $dic['ilAppEventHandler'],
152  $dic['prgEventHandler']
153  );
154  $dic['ilStudyProgrammeDelayedEvents'] = static fn($dic) =>
155  new PRGEventsDelayed($dic['ilStudyProgrammeEvents']);
156 
157  $dic['repo.assignment'] = static fn($dic) =>
159  $DIC['ilDB'],
160  $DIC['tree'],
161  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
162  $dic['ilStudyProgrammeDelayedEvents'],
164  );
165 
166 
167  $dic['model.Settings.ilStudyProgrammeSettingsRepository'] = static fn($dic) =>
169  $DIC['ilDB']
170  );
171  $dic['model.AutoMemberships.ilStudyProgrammeAutoMembershipsRepository'] = static fn($dic) =>
173  $DIC['ilDB'],
174  (int) $DIC['ilUser']->getId()
175  );
176  $dic['model.AutoMemberships.ilStudyProgrammeMembershipSourceReaderFactory'] = static fn($dic) =>
178  $dic['model.Type.ilStudyProgrammeTypeRepository'] = static fn($dic) =>
180  $DIC['ilDB'],
181  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
182  $DIC['ilUser'],
183  $DIC['lng'],
184  $DIC['component.factory'],
185  $DIC['ui.factory'],
186  $DIC['ui.renderer'],
187  $DIC['resource_storage'],
188  );
189  $dic['model.AutoCategories.ilStudyProgrammeAutoCategoriesRepository'] = static fn($dic) =>
191  $DIC['ilDB'],
192  (int) $DIC['ilUser']->getId()
193  );
194  $dic['ilObjStudyProgrammeSettingsGUI'] = static fn($dic) =>
196  $DIC['tpl'],
197  $DIC['ilCtrl'],
198  $DIC['lng'],
199  $DIC->ui()->factory()->input(),
200  $DIC->ui()->renderer(),
201  $DIC->http()->request(),
202  $DIC->refinery(),
203  $dic['DataFactory'],
204  $dic['model.Type.ilStudyProgrammeTypeRepository'],
205  $dic['ilStudyProgrammeCommonSettingsGUI'],
206  $DIC['ilTabs'],
207  $DIC->http()->wrapper()->query()
208  );
209  $dic['PRGMessages'] = static fn($dic) =>
212  $DIC['lng'],
213  $DIC['tpl']
214  );
215  $dic['ilObjStudyProgrammeMembersGUI'] = static fn($dic) =>
217  $DIC['tpl'],
218  $DIC['ilCtrl'],
219  $DIC['ilToolbar'],
220  $DIC['lng'],
221  $DIC['ilUser'],
222  $DIC['ilTabs'],
223  $dic['repo.assignment'],
224  $dic['ilStudyProgrammeRepositorySearchGUI'],
225  $dic['ilObjStudyProgrammeIndividualPlanGUI'],
226  $dic['PRGMessages'],
227  $dic['DataFactory'],
228  new ilConfirmationGUI(),
229  $DIC->http()->wrapper(),
230  $DIC->refinery(),
231  $DIC['ui.factory'],
232  $DIC['ui.renderer'],
233  $DIC->http()->request(),
234  );
235  $dic['ilObjStudyProgrammeAutoMembershipsGUI'] = static fn($dic) =>
237  $DIC['tpl'],
238  $DIC['ilCtrl'],
239  $DIC['ilToolbar'],
240  $DIC['lng'],
241  $DIC->ui()->factory(),
242  $DIC['ui.factory']->messageBox(),
243  $DIC['ui.factory']->button(),
244  $DIC->ui()->renderer(),
245  $DIC->http()->request(),
246  $DIC['tree'],
247  $DIC->http()->wrapper()->query(),
248  $DIC->refinery(),
249  $DIC['rbacreview']
250  );
251  $dic['ilObjStudyProgrammeTreeGUI'] = static fn($dic) =>
253  $DIC['tpl'],
254  $DIC['ilCtrl'],
255  $DIC['ilAccess'],
256  $DIC['ilToolbar'],
257  $DIC['lng'],
258  $dic['Log'],
259  $DIC['ilias'],
260  $DIC['ilSetting'],
261  $DIC['tree'],
262  $DIC['rbacadmin'],
263  $DIC->http()->wrapper(),
264  $DIC->refinery(),
265  $DIC['ui.factory']
266  );
267  $dic['ilStudyProgrammeTypeGUI'] = static fn($dic): ilStudyProgrammeTypeGUI =>
269  $DIC['tpl'],
270  $DIC['ilCtrl'],
271  $DIC['ilAccess'],
272  $DIC['ilToolbar'],
273  $DIC['lng'],
274  $DIC['ilias'],
275  $DIC['ilTabs'],
276  $DIC['ilUser'],
277  $dic['model.Type.ilStudyProgrammeTypeRepository'],
278  $DIC->ui()->factory(),
279  $DIC->ui()->renderer(),
280  $dic['DataFactory'],
281  $DIC->http()->request(),
282  $DIC->refinery(),
283  $DIC->http()->wrapper()->query()
284  );
285 
286  $dic['ilStudyProgrammeRepositorySearchGUI'] = static fn($dic) =>
288  $dic['ilObjStudyProgrammeIndividualPlanGUI'] = static fn($dic) =>
290  $DIC['tpl'],
291  $DIC['ilCtrl'],
292  $DIC['lng'],
293  $DIC['ilUser'],
294  $dic['repo.assignment'],
295  $dic['PRGMessages'],
296  $DIC->http()->wrapper(),
297  $DIC->refinery()
298  );
299  $dic['ilObjStudyProgrammeAutoCategoriesGUI'] = static fn($dic) =>
301  $DIC['tpl'],
302  $DIC['ilCtrl'],
303  $DIC['ilToolbar'],
304  $DIC['lng'],
305  $DIC->ui()->factory(),
306  $DIC['ui.factory']->messageBox(),
307  $DIC['ui.factory']->button(),
308  $DIC->ui()->renderer(),
309  $DIC->http()->request(),
310  $DIC['tree'],
311  $DIC->http()->wrapper()->query(),
312  $DIC->refinery()
313  );
314  $dic['DataFactory'] = static fn($dic) =>
315  new \ILIAS\Data\Factory();
316  $dic['ilOrgUnitObjectTypePositionSetting'] = static fn($dic) =>
318 
319  $dic['ilStudyProgrammeChangeExpireDateGUI'] = static fn($dic) =>
321  $DIC['ilCtrl'],
322  $DIC['tpl'],
323  $DIC['lng'],
324  $DIC['ilAccess'],
325  $DIC['ilUser'],
326  $DIC->ui()->factory()->input(),
327  $DIC->ui()->renderer(),
328  $DIC->http()->request(),
329  $DIC->refinery(),
330  $dic['DataFactory'],
331  $dic['PRGMessages']
332  );
333  $dic['ilStudyProgrammeChangeDeadlineGUI'] = static fn($dic) =>
335  $DIC['ilCtrl'],
336  $DIC['tpl'],
337  $DIC['lng'],
338  $DIC['ilAccess'],
339  $DIC['ilUser'],
340  $DIC->ui()->factory()->input(),
341  $DIC->ui()->renderer(),
342  $DIC->http()->request(),
343  $DIC->refinery(),
344  $dic['DataFactory'],
345  $dic['PRGMessages']
346  );
347 
348  $dic['permissionhelper'] = static function ($dic) use ($DIC) {
349  return new ilPRGPermissionsHelper(
350  $DIC['ilAccess'],
352  $DIC['ilObjDataCache'],
353  new ilOrgUnitPositionAccess($DIC['ilAccess']),
354  -1
355  );
356  };
357 
358  $dic['ilStudyProgrammeUserTable'] = function ($dic) use ($DIC) {
359  return new ilStudyProgrammeUserTable(
360  $DIC['ilDB'],
362  $dic['repo.assignment'],
363  $DIC['lng'],
364  $dic['permissionhelper'],
366  );
367  };
368 
369  $dic['ilStudyProgrammeCommonSettingsGUI'] = static fn($dic) =>
371  $DIC['ilCtrl'],
372  $DIC['tpl'],
373  $DIC['lng'],
374  $DIC->object()
375  );
376  $dic['Log'] = static fn($dic) =>
378 
379  $dic['current_user'] = static fn($dic) =>
380  $DIC['ilUser'];
381 
382  $dic['cron.riskyToFail'] = static fn($dic) =>
383  new ilPrgRiskyToFail(
384  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
385  $dic['ilStudyProgrammeEvents']
386  );
387  $dic['cron.notRestarted'] = static fn($dic) =>
388  new ilPrgNotRestarted(
389  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
390  $dic['ilStudyProgrammeEvents']
391  );
392  $dic['cron.restart'] = static fn($dic) =>
393  new ilPrgRestart(
394  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
395  $dic['ilStudyProgrammeEvents']
396  );
397  $dic['ui.factory'] = static fn($dic) => $DIC['ui.factory'];
398 
399  $dic['pc.statusinfo'] = static fn($dic) =>
401  $DIC['ui.factory'],
402  $DIC['ui.renderer'],
403  $DIC['lng'],
404  $DIC['ilCtrl'],
405  new ilTemplate("tpl.statusinformation.html", true, true, 'Modules/StudyProgramme'),
406  $dic['repo.assignment'],
407  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
409  $dic['current_user']->getId()
410  );
411 
412  $dic['pc.actionnote'] = static fn($dic) =>
414  $DIC['ui.factory'],
415  $DIC['ui.renderer'],
416  $DIC['lng'],
417  $DIC['ilCtrl'],
418  new ilTemplate("tpl.action_note.html", true, true, 'Modules/StudyProgramme'),
419  $dic['repo.assignment'],
420  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
421  $dic['current_user']->getId()
422  );
423 
424  return $dic;
425  }
426 }
static getLogger(string $a_component_id)
Get component logger.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Builds PageContent "Status Information".
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: feed.php:28
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Validates if an active certificate is stored in the database and can be downloaded by the user...
static specificDicFor(ilObjStudyProgramme $prg)
ilObjStudyProgrammeMembersGUI: ilStudyProgrammeRepositorySearchGUI ilObjStudyProgrammeMembersGUI: il...
Send mails to users (usually triggered by cron)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilStudyProgrammeUserTable provides a flattened list of progresses at a programme-node.
static _getInstanceByType(string $a_type)
Get Singleton Instance.
Custom repository search gui class for study programme to make it possible to get a handle on users s...
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$dic
Definition: result.php:32
Builds PageContent "Note".
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilObjStudyProgrammeSettingsGUI: ilStudyProgrammeCommonSettingsGUI
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilObjStudyProgrammeTreeGUI Generates the manage view for ilTrainingProgramme-Repository objects...
Holds information about multi-actions, mainly in context of member-assignemnts and status changes...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...