ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilLSLocalDI.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21use Pimple\Container;
22use ILIAS\Data\Factory as DataFactory;
24
29class ilLSLocalDI extends Container
30{
31 public function init(
32 ArrayAccess $dic,
33 ArrayAccess $lsdic,
34 DataFactory $data_factory,
36 ): void {
37 $obj_id = (int) $object->getId();
38
39 $current_user = $dic['ilUser'];
40 $current_user_id = (int) $current_user->getId();
41
42 $this["obj.ref_id"] = function ($c) use ($object): int {
43 $ref = $object->getRefId();
44 if (!$ref) {
45 $refs = ilObject::_getAllReferences($object->getId());
46 $ref = array_shift($refs);
47 }
48 return (int) $ref;
49 };
50
51 $this["obj.obj_id"] = $obj_id;
52
53 $this["usr.id"] = $current_user_id;
54
55 $this["obj.sorting"] = function ($c): ilContainerSorting {
56 return ilContainerSorting::_getInstance($c["obj.obj_id"]);
57 };
58
59 $this["db.lsitems"] = function ($c) use ($dic, $lsdic): ilLSItemsDB {
60 $online_status = new LSItemOnlineStatus();
61 return new ilLSItemsDB(
62 $dic["tree"],
63 $c["obj.sorting"],
64 $lsdic["db.postconditions"],
65 $online_status
66 );
67 };
68
69 $this["db.progress"] = function ($c) use ($dic): ilLearnerProgressDB {
70 return new ilLearnerProgressDB(
71 $c["db.lsitems"],
72 $dic["ilAccess"],
73 $dic['ilObjDataCache']
74 );
75 };
76
77 $this["learneritems"] = function ($c) use ($dic, $lsdic): ilLSLearnerItemsQueries {
78 return new ilLSLearnerItemsQueries(
79 $c["db.progress"],
80 $lsdic["db.states"],
81 $c["obj.ref_id"],
82 $c["usr.id"]
83 );
84 };
85
86
87 $this["get.params"] = function ($c) use ($dic): ArrayBasedRequestWrapper {
88 return $dic["http"]->wrapper()->query();
89 };
90
91
92 $this["gui.learner"] = function ($c) use ($dic, $lsdic, $object): ilObjLearningSequenceLearnerGUI {
93 $intro = $object->getContentPageHTML(LSOPageType::INTRO);
94 $extro = $object->getContentPageHTML(LSOPageType::EXTRO);
95
97 $c["usr.id"],
98 $dic["ilAccess"],
99 $dic["ilCtrl"],
100 $dic["lng"],
101 $dic["tpl"],
102 $dic["ilToolbar"],
103 $dic["ui.factory"],
104 $dic["ui.renderer"],
105 $c["roles"],
106 $lsdic["db.settings"]->getSettingsFor($c["obj.obj_id"]),
107 $c["player.curriculumbuilder"],
108 $c["player.launchlinksbuilder"],
109 $c["player"],
110 $intro,
111 $extro,
112 $c["get.params"]
113 );
114 };
115
116 $this["player.urlbuilder.lp"] = function ($c) use ($dic, $data_factory): LSUrlBuilder {
117 $player_base_url = $dic['ilCtrl']->getLinkTargetByClass(
118 'ilObjLearningSequenceLPPollingGUI',
120 '',
121 false,
122 false
123 );
124 $player_base_url = $data_factory->uri(ILIAS_HTTP_PATH . '/' . $player_base_url);
125
126 return new LSUrlBuilder($player_base_url);
127 };
128 $this["gui.learner.lp"] = function ($c) use ($dic): ilObjLearningSequenceLPPollingGUI {
130 $dic["ilCtrl"],
131 $c["usr.id"],
132 $dic['ilObjDataCache'],
133 $dic->refinery(),
134 $dic->http()->wrapper()->query()
135 );
136 };
137
138 $this["gui.toc"] = function ($c) use ($dic): ilLSTOCGUI {
139 return new ilLSTOCGUI(
140 $c["player.urlbuilder"],
141 $dic["ilCtrl"]
142 );
143 };
144
145 $this["gui.loc"] = function ($c) use ($dic): ilLSLocatorGUI {
146 return new ilLSLocatorGUI(
147 $c["player.urlbuilder"],
148 $dic["ui.factory"]
149 );
150 };
151
152 $this["player.viewfactory"] = function ($c) use ($dic): ilLSViewFactory {
153 return new ilLSViewFactory(
154 $dic['service.kiosk_mode'],
155 $dic["lng"],
156 $dic["ilAccess"],
157 $dic['learning_object_metadata']
158 );
159 };
160
161 $this["player.urlbuilder"] = function ($c) use ($dic, $data_factory): LSUrlBuilder {
162 $player_base_url = $dic['ilCtrl']->getLinkTargetByClass(
163 'ilObjLearningSequenceLearnerGUI',
165 '',
166 false,
167 false
168 );
169 $player_base_url = $data_factory->uri(ILIAS_HTTP_PATH . '/' . $player_base_url);
170
171 return new LSUrlBuilder($player_base_url);
172 };
173
174 $this["globalsetttings"] = function ($c) use ($dic): \LSGlobalSettings {
175 $db = new ilLSGlobalSettingsDB($dic['ilSetting']);
176 return $db->getSettings();
177 };
178
179 $this["player.controlbuilder"] = function ($c) use ($dic): LSControlBuilder {
180 return new LSControlBuilder(
181 $dic["ui.factory"],
182 $c["player.urlbuilder"],
183 $dic["lng"],
184 $c["globalsetttings"],
185 $c["player.urlbuilder.lp"]
186 );
187 };
188
189 $this["player.kioskrenderer"] = function ($c) use ($dic): ilKioskPageRenderer {
190 $kiosk_template = new ilTemplate("tpl.kioskpage.html", true, true, 'components/ILIAS/LearningSequence');
191 $window_title = $dic['ilSetting']->get('short_inst_name', 'ILIAS');
192
193 return new ilKioskPageRenderer(
194 $dic["global_screen"]->layout()->meta(),
195 $dic["ui.factory"],
196 $dic["ui.renderer"],
197 $dic['lng'],
198 $kiosk_template,
199 $c["gui.toc"],
200 $c["gui.loc"],
201 $window_title
202 );
203 };
204
205 $this["player.curriculumbuilder"] = function ($c) use ($dic): ilLSCurriculumBuilder {
206 return new ilLSCurriculumBuilder(
207 $c["learneritems"],
208 $dic["ui.factory"],
209 $dic["lng"],
211 $c["player.urlbuilder"]
212 );
213 };
214
215 $this["player.launchlinksbuilder"] = function ($c) use ($dic): ilLSLaunchlinksBuilder {
216 $first_access = $c["learneritems"]->getFirstAccess();
217
218 return new ilLSLaunchlinksBuilder(
219 $dic["lng"],
220 $dic["ilAccess"],
221 $dic["ilCtrl"],
222 $dic["ui.factory"],
223 $c["obj.ref_id"],
224 $c["usr.id"],
225 $first_access,
226 $c["roles"],
227 $c["learneritems"]
228 );
229 };
230
231 $this["player"] = function ($c) use ($dic, $lsdic): ilLSPlayer {
232 return new ilLSPlayer(
233 $c["learneritems"],
234 $c["player.controlbuilder"],
235 $c["player.urlbuilder"],
236 $c["player.curriculumbuilder"],
237 $c["player.viewfactory"],
238 $c["player.kioskrenderer"],
239 $dic["ui.factory"],
240 $lsdic["gs.current_context"],
241 $dic["refinery"]
242 );
243 };
244
245 $this["participants"] = function ($c) use ($dic): ilLearningSequenceParticipants {
247 $c["obj.obj_id"],
248 $dic["ilLoggerFactory"]->getRootLogger(),
249 $dic["ilAppEventHandler"],
250 $dic["ilSetting"]
251 );
252 };
253
254 $this["roles"] = function ($c) use ($dic, $current_user): ilLearningSequenceRoles {
255 return new ilLearningSequenceRoles(
256 $c["obj.ref_id"],
257 $c["obj.obj_id"],
258 $c["participants"],
259 $dic["ilCtrl"],
260 $dic["rbacadmin"],
261 $dic["rbacreview"],
262 $dic["ilDB"],
263 $current_user,
264 $dic['lng']
265 );
266 };
267
268 $this["ui.renderer"] = function ($c) use ($dic): ILIAS\UI\Renderer {
269 return $dic['ui.renderer'];
270 };
271 }
272}
@ EXTRO
Definition: LSOPageType.php:24
Builds data types.
Definition: Factory.php:36
Global Settings of the Learning Sequence.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getInstance(int $a_obj_id)
Builds the overview (curriculum) of a LearningSequence.
Repository for LSGlobalSettings over ILIAS global settings.
Class ilLSItemsDB.
Definition: ilLSItemsDB.php:25
Builds the links to join/(re-)start the LearningSequence.
This combines calls to ProgressDB and StateDB to handle learner-items in the context of a specific LS...
init(ArrayAccess $dic, ArrayAccess $lsdic, DataFactory $data_factory, ilObjLearningSequence $object)
GUI for Locator element.
Implementation of KioskMode Player.
Tree-GUI for ToC.
Get LearningProgress and availability of items in sequence.
getContentPageHTML(LSOPageType $page_type)
static _getAllReferences(int $id)
get all reference ids for object ID
special template class to simplify handling of ITX/PEAR
$c
Definition: deliver.php:25
An entity that renders components to a string output.
Definition: Renderer.php:31
$dic
Definition: ltiresult.php:33