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
3use Pimple\Container;
4use \ILIAS\Data\Factory as DataFactory;
5
9class ilLSLocalDI extends Container
10{
11 public function init(
13 ilLSDI $lsdic,
14 DataFactory $data_factory,
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}
An exception for terminatinating execution or to throw for unit testing.
Class LSControlBuilder.
Class LSUrlBuilder.
static _getInstance($a_obj_id)
get instance by obj_id
Class ilKioskPageRenderer.
Builds the overview (curriculum) of a LearningSequence.
Repository for LSGlobalSettings over ILIAS global settings.
Class ilLSItemsDB.
Definition: ilLSItemsDB.php:12
This combines calls to ProgressDB and StateDB to handle learner-items in the context of a specific LS...
init(ArrayAccess $dic, ilLSDI $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.
Class ilObjLearningSequenceLearnerGUI.
Class ilObjLearningSequence.
getRefId()
get reference id @access public
getId()
get object id @access public
getTitle()
get object title @access public
special template class to simplify handling of ITX/PEAR
$c
Definition: cli.php:37
$dic
Definition: result.php:13