ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
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  $DIC['learning_object_metadata']
209  );
210  $dic['PRGMessages'] = static fn($dic) =>
213  $DIC['lng'],
214  $DIC['tpl']
215  );
216  $dic['ilObjStudyProgrammeMembersGUI'] = static fn($dic) =>
218  $DIC['tpl'],
219  $DIC['ilCtrl'],
220  $DIC['ilToolbar'],
221  $DIC['lng'],
222  $DIC['ilUser'],
223  $DIC['ilTabs'],
224  $dic['repo.assignment'],
225  $dic['ilStudyProgrammeRepositorySearchGUI'],
226  $dic['ilObjStudyProgrammeIndividualPlanGUI'],
227  $dic['PRGMessages'],
228  $dic['DataFactory'],
229  new ilConfirmationGUI(),
230  $DIC->http()->wrapper(),
231  $DIC->refinery(),
232  $DIC['ui.factory'],
233  $DIC['ui.renderer'],
234  $DIC->http()->request(),
235  );
236  $dic['ilObjStudyProgrammeAutoMembershipsGUI'] = static fn($dic) =>
238  $DIC['tpl'],
239  $DIC['ilCtrl'],
240  $DIC['ilToolbar'],
241  $DIC['lng'],
242  $DIC->ui()->factory(),
243  $DIC['ui.factory']->messageBox(),
244  $DIC['ui.factory']->button(),
245  $DIC->ui()->renderer(),
246  $DIC->http()->request(),
247  $DIC['tree'],
248  $DIC->http()->wrapper()->query(),
249  $DIC->refinery(),
250  $DIC['rbacreview']
251  );
252  $dic['ilStudyProgrammeTypeGUI'] = static fn($dic): ilStudyProgrammeTypeGUI =>
254  $DIC['tpl'],
255  $DIC['ilCtrl'],
256  $DIC['ilAccess'],
257  $DIC['ilToolbar'],
258  $DIC['lng'],
259  $DIC['ilias'],
260  $DIC['ilTabs'],
261  $DIC['ilUser'],
262  $dic['model.Type.ilStudyProgrammeTypeRepository'],
263  $DIC->ui()->factory(),
264  $DIC->ui()->renderer(),
265  $dic['DataFactory'],
266  $DIC->http()->request(),
267  $DIC->refinery(),
268  $DIC->http()->wrapper()->query()
269  );
270 
271  $dic['ilStudyProgrammeRepositorySearchGUI'] = static fn($dic) =>
273  $dic['ilObjStudyProgrammeIndividualPlanGUI'] = static fn($dic) =>
275  $DIC['tpl'],
276  $DIC['ilCtrl'],
277  $DIC['lng'],
278  $DIC['ilUser'],
279  $dic['repo.assignment'],
280  $dic['PRGMessages'],
281  $DIC->http()->wrapper(),
282  $DIC->refinery()
283  );
284  $dic['ilObjStudyProgrammeAutoCategoriesGUI'] = static fn($dic) =>
286  $DIC['tpl'],
287  $DIC['ilCtrl'],
288  $DIC['ilToolbar'],
289  $DIC['lng'],
290  $DIC->ui()->factory(),
291  $DIC['ui.factory']->messageBox(),
292  $DIC['ui.factory']->button(),
293  $DIC->ui()->renderer(),
294  $DIC->http()->request(),
295  $DIC['tree'],
296  $DIC->http()->wrapper()->query(),
297  $DIC->refinery()
298  );
299  $dic['DataFactory'] = static fn($dic) =>
300  new \ILIAS\Data\Factory();
301  $dic['ilOrgUnitObjectTypePositionSetting'] = static fn($dic) =>
303 
304  $dic['ilStudyProgrammeChangeExpireDateGUI'] = static fn($dic) =>
306  $DIC['ilCtrl'],
307  $DIC['tpl'],
308  $DIC['lng'],
309  $DIC['ilAccess'],
310  $DIC['ilUser'],
311  $DIC->ui()->factory()->input(),
312  $DIC->ui()->renderer(),
313  $DIC->http()->request(),
314  $DIC->refinery(),
315  $dic['DataFactory'],
316  $dic['PRGMessages']
317  );
318  $dic['ilStudyProgrammeChangeDeadlineGUI'] = static fn($dic) =>
320  $DIC['ilCtrl'],
321  $DIC['tpl'],
322  $DIC['lng'],
323  $DIC['ilAccess'],
324  $DIC['ilUser'],
325  $DIC->ui()->factory()->input(),
326  $DIC->ui()->renderer(),
327  $DIC->http()->request(),
328  $DIC->refinery(),
329  $dic['DataFactory'],
330  $dic['PRGMessages']
331  );
332 
333  $dic['permissionhelper'] = static function ($dic) use ($DIC) {
334  return new ilPRGPermissionsHelper(
335  $DIC['ilAccess'],
337  $DIC['ilObjDataCache'],
338  new ilOrgUnitPositionAccess($DIC['ilAccess']),
339  -1
340  );
341  };
342 
343  $dic['ilStudyProgrammeUserTable'] = function ($dic) use ($DIC) {
344  return new ilStudyProgrammeUserTable(
345  $DIC['ilDB'],
347  $dic['repo.assignment'],
348  $DIC['lng'],
349  $dic['permissionhelper'],
351  );
352  };
353 
354  $dic['ilStudyProgrammeCommonSettingsGUI'] = static fn($dic) =>
356  $DIC['ilCtrl'],
357  $DIC['tpl'],
358  $DIC['lng'],
359  $DIC->object()
360  );
361  $dic['Log'] = static fn($dic) =>
363 
364  $dic['current_user'] = static fn($dic) =>
365  $DIC['ilUser'];
366 
367  $dic['cron.riskyToFail'] = static fn($dic) =>
368  new ilPrgRiskyToFail(
369  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
370  $dic['ilStudyProgrammeEvents']
371  );
372  $dic['cron.notRestarted'] = static fn($dic) =>
373  new ilPrgNotRestarted(
374  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
375  $dic['ilStudyProgrammeEvents']
376  );
377  $dic['cron.restart'] = static fn($dic) =>
378  new ilPrgRestart(
379  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
380  $dic['ilStudyProgrammeEvents']
381  );
382  $dic['ui.factory'] = static fn($dic) => $DIC['ui.factory'];
383 
384  $dic['pc.statusinfo'] = static fn($dic) =>
386  $DIC['ui.factory'],
387  $DIC['ui.renderer'],
388  $DIC['lng'],
389  $DIC['ilCtrl'],
390  new ilTemplate("tpl.statusinformation.html", true, true, 'components/ILIAS/StudyProgramme'),
391  $dic['repo.assignment'],
392  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
394  $dic['current_user']->getId()
395  );
396 
397  $dic['pc.actionnote'] = static fn($dic) =>
399  $DIC['ui.factory'],
400  $DIC['ui.renderer'],
401  $DIC['lng'],
402  $DIC['ilCtrl'],
403  new ilTemplate("tpl.action_note.html", true, true, 'components/ILIAS/StudyProgramme'),
404  $dic['repo.assignment'],
405  $dic['model.Settings.ilStudyProgrammeSettingsRepository'],
406  $dic['current_user']->getId()
407  );
408 
409  return $dic;
410  }
411 }
static getLogger(string $a_component_id)
Get component logger.
Util around ilPRGMessageCollection factors and output collections.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Builds PageContent "Status Information".
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
Provides adapters to read member-ids from a specific source.
Validates if an active certificate is stored in the database and can be downloaded by the user...
global $DIC
Definition: shib_login.php:26
static specificDicFor(ilObjStudyProgramme $prg)
ilObjStudyProgrammeMembersGUI: ilStudyProgrammeRepositorySearchGUI ilObjStudyProgrammeMembersGUI: il...
Send mails to users (usually triggered by cron)
Both role and OrgU-based permissions are relevant in many places of the PRG.
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...
$dic
Definition: result.php:31
Builds PageContent "Note".
ilObjStudyProgrammeSettingsGUI: ilStudyProgrammeCommonSettingsGUI
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Holds information about multi-actions, mainly in context of member-assignemnts and status changes...