ILIAS  release_7 Revision v7.30-3-g800a261c036
ilStudyProgrammeAppEventListener Class Reference

Event listener for study programs. More...

+ Collaboration diagram for ilStudyProgrammeAppEventListener:

Static Public Member Functions

static handleEvent ($a_component, $a_event, $a_parameter)
 

Static Private Member Functions

static onServiceUserDeleteUser ($a_parameter)
 
static onServiceTrackingUpdateStatus ($a_par)
 
static onServiceTreeInsertNode ($a_parameter)
 
static onServiceTreeMoveTree ($a_parameter)
 
static onServiceObjectDeleteOrToTrash ($a_parameter)
 
static getStudyProgramme ($a_ref_id)
 
static adjustProgrammeLPMode ($a_ref_id)
 
static addMissingProgresses ($a_ref_id)
 
static addCrsToProgrammes (int $crs_ref_id, int $cat_ref_id)
 
static removeCrsFromProgrammes (int $crs_ref_id, int $cat_ref_id)
 
static addMemberToProgrammes (string $src_type, array $params)
 
static removeMemberFromProgrammes (string $src_type, array $params)
 
static sendReAssignedMail (array $params)
 
static sendInformToReAssignMail (array $params)
 
static sendRiskyToFailMail (array $params)
 

Detailed Description

Event listener for study programs.

Has the following tasks:

  • Remove all assignments of a user on all study programms when the user is removed.
  • Add/Remove courses to/trom study programms, if upper category is under surveillance
Author
Richard Klees richa.nosp@m.rd.k.nosp@m.lees@.nosp@m.conc.nosp@m.epts-.nosp@m.and-.nosp@m.train.nosp@m.ing..nosp@m.de

Definition at line 17 of file class.ilStudyProgrammeAppEventListener.php.

Member Function Documentation

◆ addCrsToProgrammes()

static ilStudyProgrammeAppEventListener::addCrsToProgrammes ( int  $crs_ref_id,
int  $cat_ref_id 
)
staticprivate

Definition at line 255 of file class.ilStudyProgrammeAppEventListener.php.

256 {
257 ilObjStudyProgramme::addCrsToProgrammes($crs_ref_id, $cat_ref_id);
258 }
static addCrsToProgrammes(int $crs_ref_id, int $cat_ref_id)
Check, if a category is under surveilllance and automatically add the course.

References ilObjStudyProgramme\addCrsToProgrammes().

Referenced by onServiceTreeInsertNode(), and onServiceTreeMoveTree().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addMemberToProgrammes()

static ilStudyProgrammeAppEventListener::addMemberToProgrammes ( string  $src_type,
array  $params 
)
staticprivate

Definition at line 265 of file class.ilStudyProgrammeAppEventListener.php.

266 {
267 $usr_id = $params['usr_id'];
268 $id = $params['obj_id'];
269 if (
272 ) {
273 $id = array_shift(ilObject::_getAllReferences($id));
274 }
276 $id = $params['role_id'];
277 }
278
279 ilObjStudyProgramme::addMemberToProgrammes($src_type, $id, $usr_id);
280 }
static addMemberToProgrammes(string $src_type, int $src_id, int $usr_id)
static _getAllReferences($a_id)
get all reference ids of object

References ilObject\_getAllReferences(), ilObjStudyProgramme\addMemberToProgrammes(), ilStudyProgrammeAutoMembershipSource\TYPE_COURSE, ilStudyProgrammeAutoMembershipSource\TYPE_GROUP, and ilStudyProgrammeAutoMembershipSource\TYPE_ROLE.

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addMissingProgresses()

static ilStudyProgrammeAppEventListener::addMissingProgresses (   $a_ref_id)
staticprivate

Definition at line 249 of file class.ilStudyProgrammeAppEventListener.php.

250 {
251 $obj = self::getStudyProgramme($a_ref_id);
252 $obj->addMissingProgresses();
253 }

References getStudyProgramme().

Referenced by onServiceTreeInsertNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ adjustProgrammeLPMode()

static ilStudyProgrammeAppEventListener::adjustProgrammeLPMode (   $a_ref_id)
staticprivate

Definition at line 243 of file class.ilStudyProgrammeAppEventListener.php.

244 {
245 $obj = self::getStudyProgramme($a_ref_id);
246 $obj->adjustLPMode();
247 }

References getStudyProgramme().

Referenced by onServiceObjectDeleteOrToTrash(), onServiceTreeInsertNode(), and onServiceTreeMoveTree().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getStudyProgramme()

static ilStudyProgrammeAppEventListener::getStudyProgramme (   $a_ref_id)
staticprivate

Definition at line 237 of file class.ilStudyProgrammeAppEventListener.php.

238 {
239 require_once("Modules/StudyProgramme/classes/class.ilObjStudyProgramme.php");
241 }
static getInstanceByRefId($a_ref_id)

References ilObjStudyProgramme\getInstanceByRefId().

Referenced by addMissingProgresses(), and adjustProgrammeLPMode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleEvent()

static ilStudyProgrammeAppEventListener::handleEvent (   $a_component,
  $a_event,
  $a_parameter 
)
static
Exceptions
ilException

Definition at line 23 of file class.ilStudyProgrammeAppEventListener.php.

24 {
25 switch ($a_component) {
26 case "Services/User":
27 switch ($a_event) {
28 case "deleteUser":
30 break;
31 }
32 break;
33 case "Services/Tracking":
34 switch ($a_event) {
35 case "updateStatus":
37 break;
38 }
39 break;
40 case "Services/Tree":
41 switch ($a_event) {
42 case "insertNode":
44 break;
45 case "moveTree":
46 self::onServiceTreeMoveTree($a_parameter);
47 break;
48 }
49 break;
50 case "Services/Object":
51 switch ($a_event) {
52 case "delete":
53 case "toTrash":
55 break;
56 }
57 break;
58 case "Services/ContainerReference":
59 switch ($a_event) {
60 case "deleteReference":
62 break;
63 }
64 break;
65
66 case "Modules/Course":
67 switch ($a_event) {
68 case "addParticipant":
71 $a_parameter
72 );
73 break;
74 case "deleteParticipant":
77 $a_parameter
78 );
79 break;
80 }
81 break;
82 case "Modules/Group":
83 switch ($a_event) {
84 case "addParticipant":
87 $a_parameter
88 );
89 break;
90 case "deleteParticipant":
93 $a_parameter
94 );
95 break;
96 }
97 break;
98 case "Services/AccessControl":
99 switch ($a_event) {
100 case "assignUser":
103 $a_parameter
104 );
105 break;
106 case "deassignUser":
109 $a_parameter
110 );
111 break;
112 }
113 break;
114 case "Modules/OrgUnit":
115 switch ($a_event) {
116 case "assignUserToPosition":
119 $a_parameter
120 );
121 break;
122 case "deassignUserFromPosition":
123 //case "delete":
126 $a_parameter
127 );
128 break;
129 }
130 break;
131 case "Modules/StudyProgramme":
132 switch ($a_event) {
133 case "userReAssigned":
134 self::sendReAssignedMail($a_parameter);
135 break;
136 case 'informUserToRestart':
137 self::sendInformToReAssignMail($a_parameter);
138 break;
139 case 'userRiskyToFail':
140 self::sendRiskyToFailMail($a_parameter);
141 }
142 break;#
143 default:
144 throw new ilException("ilStudyProgrammeAppEventListener::handleEvent: "
145 . "Won't handle events of '$a_component'.");
146 }
147 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static removeMemberFromProgrammes(string $src_type, array $params)
static addMemberToProgrammes(string $src_type, array $params)

References addMemberToProgrammes(), onServiceObjectDeleteOrToTrash(), onServiceTrackingUpdateStatus(), onServiceTreeInsertNode(), onServiceTreeMoveTree(), onServiceUserDeleteUser(), removeMemberFromProgrammes(), sendInformToReAssignMail(), sendReAssignedMail(), sendRiskyToFailMail(), ilStudyProgrammeAutoMembershipSource\TYPE_COURSE, ilStudyProgrammeAutoMembershipSource\TYPE_GROUP, ilStudyProgrammeAutoMembershipSource\TYPE_ORGU, and ilStudyProgrammeAutoMembershipSource\TYPE_ROLE.

+ Here is the call graph for this function:

◆ onServiceObjectDeleteOrToTrash()

static ilStudyProgrammeAppEventListener::onServiceObjectDeleteOrToTrash (   $a_parameter)
staticprivate

Definition at line 222 of file class.ilStudyProgrammeAppEventListener.php.

223 {
224 $node_ref_id = $a_parameter["ref_id"];
225 $old_parent_ref_id = $a_parameter["old_parent_ref_id"];
226
227 $node_type = $a_parameter["type"];
228 $old_parent_type = ilObject::_lookupType($old_parent_ref_id, true);
229
230 if ($old_parent_type !== "prg") {
231 return;
232 }
233
234 self::adjustProgrammeLPMode($old_parent_ref_id);
235 }
static _lookupType($a_id, $a_reference=false)
lookup object type

References ilObject\_lookupType(), and adjustProgrammeLPMode().

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ onServiceTrackingUpdateStatus()

static ilStudyProgrammeAppEventListener::onServiceTrackingUpdateStatus (   $a_par)
staticprivate

Definition at line 158 of file class.ilStudyProgrammeAppEventListener.php.

159 {
160 require_once("./Services/Tracking/classes/class.ilLPStatus.php");
161 if ($a_par["status"] != ilLPStatus::LP_STATUS_COMPLETED_NUM) {
162 return;
163 }
164
165 require_once("./Modules/StudyProgramme/classes/class.ilObjStudyProgramme.php");
166 ilObjStudyProgramme::setProgressesCompletedFor((int) $a_par["obj_id"], (int) $a_par["usr_id"]);
167 }
const LP_STATUS_COMPLETED_NUM
static setProgressesCompletedFor(int $a_obj_id, int $a_user_id)
Set all progresses to completed where the object with given id is a leaf and that belong to the user.

References ilLPStatus\LP_STATUS_COMPLETED_NUM, and ilObjStudyProgramme\setProgressesCompletedFor().

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ onServiceTreeInsertNode()

static ilStudyProgrammeAppEventListener::onServiceTreeInsertNode (   $a_parameter)
staticprivate

Definition at line 169 of file class.ilStudyProgrammeAppEventListener.php.

170 {
171 $node_ref_id = $a_parameter["node_id"];
172 $parent_ref_id = $a_parameter["parent_id"];
173
174 $node_type = ilObject::_lookupType($node_ref_id, true);
175 $parent_type = ilObject::_lookupType($parent_ref_id, true);
176
177 if ($node_type == "crsr" && $parent_type == "prg") {
178 self::adjustProgrammeLPMode($parent_ref_id);
179 }
180 if (in_array($node_type, ["prg", "prgr"]) && $parent_type == "prg") {
181 self::addMissingProgresses($parent_ref_id);
182 }
183 if ($node_type == "crs" && $parent_type == "cat") {
184 self::addCrsToProgrammes($node_ref_id, $parent_ref_id);
185 }
186 }
static addCrsToProgrammes(int $crs_ref_id, int $cat_ref_id)

References ilObject\_lookupType(), addCrsToProgrammes(), addMissingProgresses(), and adjustProgrammeLPMode().

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ onServiceTreeMoveTree()

static ilStudyProgrammeAppEventListener::onServiceTreeMoveTree (   $a_parameter)
staticprivate

Definition at line 188 of file class.ilStudyProgrammeAppEventListener.php.

189 {
190 $node_ref_id = $a_parameter["source_id"];
191 $new_parent_ref_id = $a_parameter["target_id"];
192 $old_parent_ref_id = $a_parameter["old_parent_id"];
193
194 $node_type = ilObject::_lookupType($node_ref_id, true);
195 $new_parent_type = ilObject::_lookupType($new_parent_ref_id, true);
196 $old_parent_type = ilObject::_lookupType($old_parent_ref_id, true);
197
198 if (!in_array($node_type, ["crsr","crs"])
199 || (
200 ($new_parent_type != "prg" && $old_parent_type != "prg")
201 &&
202 $old_parent_type != "cat"
203 )
204 ) {
205 return;
206 }
207
208 if ($node_type === 'crs') {
209 self::removeCrsFromProgrammes($node_ref_id, $old_parent_ref_id);
210 if ($new_parent_type === 'cat') {
211 self::addCrsToProgrammes($node_ref_id, $new_parent_ref_id);
212 }
213 }
214
215 if ($new_parent_type == "prg") {
216 self::adjustProgrammeLPMode($new_parent_ref_id);
217 } elseif ($old_parent_type == "prg") {
218 self::adjustProgrammeLPMode($old_parent_ref_id);
219 }
220 }
static removeCrsFromProgrammes(int $crs_ref_id, int $cat_ref_id)

References ilObject\_lookupType(), addCrsToProgrammes(), adjustProgrammeLPMode(), and removeCrsFromProgrammes().

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ onServiceUserDeleteUser()

static ilStudyProgrammeAppEventListener::onServiceUserDeleteUser (   $a_parameter)
staticprivate

Definition at line 149 of file class.ilStudyProgrammeAppEventListener.php.

150 {
151 $assignments = ilStudyProgrammeDIC::dic()['ilStudyProgrammeUserAssignmentDB']->getInstancesOfUser((int) $a_parameter["usr_id"]);
152 foreach ($assignments as $ass) {
153 $prg = ilObjStudyProgramme::getInstanceByObjId($ass->getRootId());
154 $prg->removeAssignment($ass);
155 }
156 }

References ilStudyProgrammeDIC\dic(), and ilObjStudyProgramme\getInstanceByObjId().

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeCrsFromProgrammes()

static ilStudyProgrammeAppEventListener::removeCrsFromProgrammes ( int  $crs_ref_id,
int  $cat_ref_id 
)
staticprivate

Definition at line 260 of file class.ilStudyProgrammeAppEventListener.php.

261 {
262 ilObjStudyProgramme::removeCrsFromProgrammes($crs_ref_id, $cat_ref_id);
263 }
static removeCrsFromProgrammes(int $crs_ref_id, int $cat_ref_id)
Check, if a category is under surveilllance and automatically remove the deleted course.

References ilObjStudyProgramme\removeCrsFromProgrammes().

Referenced by onServiceTreeMoveTree().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeMemberFromProgrammes()

static ilStudyProgrammeAppEventListener::removeMemberFromProgrammes ( string  $src_type,
array  $params 
)
staticprivate

Definition at line 282 of file class.ilStudyProgrammeAppEventListener.php.

283 {
284 $usr_id = $params['usr_id'];
285 $id = $params['obj_id'];
286 if (
289 ) {
290 $id = array_shift(ilObject::_getAllReferences($id));
291 }
293 $id = $params['role_id'];
294 }
295
297 }
static removeMemberFromProgrammes(string $src_type, int $src_id, int $usr_id)

References ilObject\_getAllReferences(), ilObjStudyProgramme\removeMemberFromProgrammes(), ilStudyProgrammeAutoMembershipSource\TYPE_COURSE, ilStudyProgrammeAutoMembershipSource\TYPE_GROUP, and ilStudyProgrammeAutoMembershipSource\TYPE_ROLE.

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sendInformToReAssignMail()

static ilStudyProgrammeAppEventListener::sendInformToReAssignMail ( array  $params)
staticprivate

Definition at line 306 of file class.ilStudyProgrammeAppEventListener.php.

306 : void
307 {
308 $usr_id = $params['usr_id'];
309 $progress_id = $params['progress_id'];
311 }
static sendInformToReAssignMail(int $progress_id, int $usr_id)

References ilObjStudyProgramme\sendInformToReAssignMail().

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sendReAssignedMail()

static ilStudyProgrammeAppEventListener::sendReAssignedMail ( array  $params)
staticprivate

Definition at line 299 of file class.ilStudyProgrammeAppEventListener.php.

299 : void
300 {
301 $usr_id = $params['usr_id'];
302 $ref_id = $params['root_prg_ref_id'];
304 }
static sendReAssignedMail(int $ref_id, int $usr_id)

References ilObjStudyProgramme\sendReAssignedMail().

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sendRiskyToFailMail()

static ilStudyProgrammeAppEventListener::sendRiskyToFailMail ( array  $params)
staticprivate
Exceptions
ilException

Definition at line 316 of file class.ilStudyProgrammeAppEventListener.php.

316 : void
317 {
318 $usr_id = $params['usr_id'];
319 $progress_id = $params['progress_id'];
320 ilObjStudyProgramme::sendRiskyToFailMail($progress_id, $usr_id);
321 }
static sendRiskyToFailMail(int $progress_id, int $usr_id)

References ilObjStudyProgramme\sendRiskyToFailMail().

Referenced by handleEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following file: