ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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 254 of file class.ilStudyProgrammeAppEventListener.php.

255 {
256 ilObjStudyProgramme::addCrsToProgrammes($crs_ref_id, $cat_ref_id);
257 }
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 264 of file class.ilStudyProgrammeAppEventListener.php.

265 {
266 $usr_id = $params['usr_id'];
267 $id = $params['obj_id'];
268 if (
271 ) {
272 $id = array_shift(ilObject::_getAllReferences($id));
273 }
275 $id = $params['role_id'];
276 }
277
278 ilObjStudyProgramme::addMemberToProgrammes($src_type, $id, $usr_id);
279 }
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 248 of file class.ilStudyProgrammeAppEventListener.php.

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

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 242 of file class.ilStudyProgrammeAppEventListener.php.

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

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 236 of file class.ilStudyProgrammeAppEventListener.php.

237 {
238 require_once("Modules/StudyProgramme/classes/class.ilObjStudyProgramme.php");
240 }
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 }
Base class for ILIAS Exception handling.
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 221 of file class.ilStudyProgrammeAppEventListener.php.

222 {
223 $node_ref_id = $a_parameter["ref_id"];
224 $old_parent_ref_id = $a_parameter["old_parent_ref_id"];
225
226 $node_type = $a_parameter["type"];
227 $old_parent_type = ilObject::_lookupType($old_parent_ref_id, true);
228
229 if ($old_parent_type !== "prg") {
230 return;
231 }
232
233 self::adjustProgrammeLPMode($old_parent_ref_id);
234 }
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 157 of file class.ilStudyProgrammeAppEventListener.php.

158 {
159 require_once("./Services/Tracking/classes/class.ilLPStatus.php");
160 if ($a_par["status"] != ilLPStatus::LP_STATUS_COMPLETED_NUM) {
161 return;
162 }
163
164 require_once("./Modules/StudyProgramme/classes/class.ilObjStudyProgramme.php");
165 ilObjStudyProgramme::setProgressesCompletedFor((int) $a_par["obj_id"], (int) $a_par["usr_id"]);
166 }
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 168 of file class.ilStudyProgrammeAppEventListener.php.

169 {
170 $node_ref_id = $a_parameter["node_id"];
171 $parent_ref_id = $a_parameter["parent_id"];
172
173 $node_type = ilObject::_lookupType($node_ref_id, true);
174 $parent_type = ilObject::_lookupType($parent_ref_id, true);
175
176 if ($node_type == "crsr" && $parent_type == "prg") {
177 self::adjustProgrammeLPMode($parent_ref_id);
178 }
179 if (in_array($node_type, ["prg", "prgr"]) && $parent_type == "prg") {
180 self::addMissingProgresses($parent_ref_id);
181 }
182 if ($node_type == "crs" && $parent_type == "cat") {
183 self::addCrsToProgrammes($node_ref_id, $parent_ref_id);
184 }
185 }
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 187 of file class.ilStudyProgrammeAppEventListener.php.

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

References ilStudyProgrammeDIC\dic().

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 259 of file class.ilStudyProgrammeAppEventListener.php.

260 {
261 ilObjStudyProgramme::removeCrsFromProgrammes($crs_ref_id, $cat_ref_id);
262 }
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 281 of file class.ilStudyProgrammeAppEventListener.php.

282 {
283 $usr_id = $params['usr_id'];
284 $id = $params['obj_id'];
285 if (
288 ) {
289 $id = array_shift(ilObject::_getAllReferences($id));
290 }
292 $id = $params['role_id'];
293 }
294
296 }
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
Exceptions
ilException

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

309 : void
310 {
311 $usr_id = $params['usr_id'];
312 $assignment_id = $params['ass_id'];
313
314 ilStudyProgrammeUserAssignment::sendInformToReAssignMail($assignment_id, $usr_id);
315 }

Referenced by handleEvent().

+ Here is the caller graph for this function:

◆ sendReAssignedMail()

static ilStudyProgrammeAppEventListener::sendReAssignedMail ( array  $params)
staticprivate

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

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

Referenced by handleEvent().

+ Here is the caller graph for this function:

◆ sendRiskyToFailMail()

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

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

320 : void
321 {
322 $usr_id = $params['usr_id'];
323 $progress_id = $params['progress_id'];
324
325 ilStudyProgrammeUserProgress::sendRiskyToFailMail($progress_id, $usr_id);
326 }

Referenced by handleEvent().

+ Here is the caller graph for this function:

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