ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilLSLocalDI.php
Go to the documentation of this file.
1 <?php declare(strict_types=1);
2 
4 use \ILIAS\Data\Factory as DataFactory;
5 
9 class ilLSLocalDI extends Container
10 {
11  public function init(
13  ilLSDI $lsdic,
14  DataFactory $data_factory,
15  ilObjLearningSequence $object
16  ) {
17  $ref_id = (int) $object->getRefId();
18  $obj_id = (int) $object->getId();
19  $obj_title = $object->getTitle();
20 
21  $current_user = $dic['ilUser'];
22  $current_user_id = (int) $current_user->getId();
23 
24  $data_factory = new \ILIAS\Data\Factory();
25 
26  $this["obj.ref_id"] = $ref_id;
27  $this["obj.obj_id"] = $obj_id;
28  $this["obj.title"] = (string) $obj_title;
29 
30  $this["usr.id"] = $current_user_id;
31 
32  $this["obj.sorting"] = function ($c) : ilContainerSorting {
33  return ilContainerSorting::_getInstance($c["obj.obj_id"]);
34  };
35 
36  $this["db.lsitems"] = function ($c) use ($dic, $lsdic) : ilLSItemsDB {
37  $online_status = new LSItemOnlineStatus();
38  return new ilLSItemsDB(
39  $dic["tree"],
40  $c["obj.sorting"],
41  $lsdic["db.postconditions"],
42  $online_status
43  );
44  };
45 
46  $this["db.progress"] = function ($c) use ($dic) : ilLearnerProgressDB {
47  return new ilLearnerProgressDB(
48  $c["db.lsitems"],
49  $dic["ilAccess"],
50  $dic['ilObjDataCache']
51  );
52  };
53 
54  $this["learneritems"] = function ($c) use ($dic, $lsdic) : ilLSLearnerItemsQueries {
55  return new ilLSLearnerItemsQueries(
56  $c["db.progress"],
57  $lsdic["db.states"],
58  $c["obj.ref_id"],
59  $c["usr.id"]
60  );
61  };
62 
63  $this["gui.learner"] = function ($c) use ($dic, $lsdic, $object) : ilObjLearningSequenceLearnerGUI {
64  $first_access = $c["learneritems"]->getFirstAccess();
65 
67  $c["obj.ref_id"],
68  $first_access,
69  $c["usr.id"],
70  $dic["ilAccess"],
71  $dic["ilCtrl"],
72  $dic["lng"],
73  $dic["tpl"],
74  $dic["ilToolbar"],
75  $dic["ui.factory"],
76  $dic["ui.renderer"],
77  $c["roles"],
78  $lsdic["db.settings"]->getSettingsFor($c["obj.obj_id"]),
79  $c["player.curriculumbuilder"],
80  $c["player"]
81  );
82  };
83 
84  $this["gui.toc"] = function ($c) use ($dic) : ilLSTOCGUI {
85  return new ilLSTOCGUI(
86  $c["player.urlbuilder"],
87  $dic["ilCtrl"]
88  );
89  };
90 
91  $this["gui.loc"] = function ($c) use ($dic) : ilLSLocatorGUI {
92  return new ilLSLocatorGUI(
93  $c["player.urlbuilder"],
94  $dic["ui.factory"]
95  );
96  };
97 
98  $this["player.viewfactory"] = function ($c) use ($dic) : ilLSViewFactory {
99  return new ilLSViewFactory(
100  $dic['service.kiosk_mode'],
101  $dic["lng"],
102  $dic["ilAccess"]
103  );
104  };
105 
106  $this["player.urlbuilder"] = function ($c) use ($dic, $data_factory) : LSUrlBuilder {
107  $player_base_url = $dic['ilCtrl']->getLinkTargetByClass(
108  'ilObjLearningSequenceLearnerGUI',
110  '',
111  false,
112  false
113  );
114  $player_base_url = $data_factory->uri(ILIAS_HTTP_PATH . '/' . $player_base_url);
115 
116  return new LSUrlBuilder($player_base_url);
117  };
118 
119  $this["globalsetttings"] = function ($c) use ($dic) {
120  $db = new ilLSGlobalSettingsDB($dic['ilSetting']);
121  return $db->getSettings();
122  };
123 
124  $this["player.controlbuilder"] = function ($c) use ($dic) : LSControlBuilder {
125  return new LSControlBuilder(
126  $dic["ui.factory"],
127  $c["player.urlbuilder"],
128  $dic["lng"],
129  $c["globalsetttings"]
130  );
131  };
132 
133  $this["player.kioskrenderer"] = function ($c) use ($dic) : ilKioskPageRenderer {
134  $kiosk_template = new ilTemplate("tpl.kioskpage.html", true, true, 'Modules/LearningSequence');
135  $window_title = $dic['ilSetting']->get('short_inst_name');
136  if ($window_title === false) {
137  $window_title = 'ILIAS';
138  }
139 
140  return new ilKioskPageRenderer(
141  $dic["tpl"],
142  $dic["global_screen"]->layout()->meta(),
143  $dic["ui.factory"],
144  $dic["ui.renderer"],
145  $dic['lng'],
146  $kiosk_template,
147  $c["gui.toc"],
148  $c["gui.loc"],
149  $window_title
150  );
151  };
152 
153  $this["player.curriculumbuilder"] = function ($c) use ($dic) : ilLSCurriculumBuilder {
154  return new ilLSCurriculumBuilder(
155  $c["learneritems"],
156  $dic["ui.factory"],
157  $dic["lng"],
159  $c["player.urlbuilder"]
160  );
161  };
162 
163  $this["player"] = function ($c) use ($dic, $lsdic) : ilLSPlayer {
164  return new ilLSPlayer(
165  $c["obj.title"],
166  $c["learneritems"],
167  $c["player.controlbuilder"],
168  $c["player.urlbuilder"],
169  $c["player.curriculumbuilder"],
170  $c["player.viewfactory"],
171  $c["player.kioskrenderer"],
172  $dic["ui.factory"],
173  $lsdic["gs.current_context"]
174  );
175  };
176 
177  $this["participants"] = function ($c) use ($dic) : ilLearningSequenceParticipants {
179  $c["obj.obj_id"],
180  $dic["ilLoggerFactory"]->getRootLogger(),
181  $dic["ilAppEventHandler"],
182  $dic["ilSetting"]
183  );
184  };
185 
186  $this["roles"] = function ($c) use ($dic, $current_user) : ilLearningSequenceRoles {
187  return new ilLearningSequenceRoles(
188  $c["obj.ref_id"],
189  $c["obj.obj_id"],
190  $c["participants"],
191  $dic["ilCtrl"],
192  $dic["rbacadmin"],
193  $dic["rbacreview"],
194  $dic["ilDB"],
195  $current_user
196  );
197  };
198  }
199 }
$c
Definition: cli.php:37
Class ilLSItemsDB.
Definition: ilLSItemsDB.php:11
Class ilObjLearningSequence.
Repository for LSGlobalSettings over ILIAS global settings.
Class ilObjLearningSequenceLearnerGUI.
Class LSUrlBuilder.
getId()
get object id public
Class ilKioskPageRenderer.
getTitle()
get object title public
This combines calls to ProgressDB and StateDB to handle learner-items in the context of a specific LS...
Implementation of KioskMode Player.
init(ArrayAccess $dic, ilLSDI $lsdic, DataFactory $data_factory, ilObjLearningSequence $object)
Get LearningProgress and availability of items in sequence.
Class LSControlBuilder.
GUI for Locator element.
Tree-GUI for ToC.
getRefId()
get reference id public
$dic
Definition: result.php:13
static _getInstance($a_obj_id)
get instance by obj_id
Builds the overview (curriculum) of a LearningSequence.