ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilContainerReferenceAppEventListener Class Reference

Handles delete events from courses and categories. More...

+ Inheritance diagram for ilContainerReferenceAppEventListener:
+ Collaboration diagram for ilContainerReferenceAppEventListener:

Static Public Member Functions

static handleEvent ($a_component, $a_event, $a_parameter)
 Handle events like create, update, delete. More...
 
static deleteReferences ($a_target_id)
 Delete references. More...
 
static handleEvent ($a_component, $a_event, $a_parameter)
 Handle an event in a listener. More...
 

Detailed Description

Handles delete events from courses and categories.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 35 of file class.ilContainerReferenceAppEventListener.php.

Member Function Documentation

◆ deleteReferences()

static ilContainerReferenceAppEventListener::deleteReferences (   $a_target_id)
static

Delete references.

Definition at line 71 of file class.ilContainerReferenceAppEventListener.php.

72 {
73 global $DIC;
74
75 $ilLog = $DIC["ilLog"];
76 $ilAppEventHandler = $DIC["ilAppEventHandler"];
77 $tree = $DIC["tree"];
78
79 include_once('./Services/ContainerReference/classes/class.ilContainerReference.php');
80 if (!$source_id = ilContainerReference::_lookupSourceId($a_target_id)) {
81 return true;
82 }
83 foreach (ilObject::_getAllReferences($source_id) as $ref_id) {
84 if (!$instance = ilObjectFactory::getInstanceByRefId($ref_id, false)) {
85 continue;
86 }
87 $type = $instance->getType();
88 switch ($type) {
89 case 'grpr':
90 case 'crsr':
91 case 'catr':
92 case 'prgr':
93 $parent_id = $tree->getParentId($ref_id);
94 $instance->delete();
95 $ilLog->write(__METHOD__ . ': Deleted reference object of type ' . $instance->getType() . ' with Id ' . $instance->getId());
96 $ilAppEventHandler->raise(
97 'Services/ContainerReference',
98 'deleteReference',
99 [
100 'ref_id' => $ref_id,
101 'old_parent_ref_id' => $parent_id,
102 'type' => $type
103 ]
104 );
105 break;
106
107 default:
108 $ilLog->write(__METHOD__ . ': Unexpected object type ' . $instance->getType() . ' with Id ' . $instance->getId());
109 break;
110 }
111 }
112 return true;
113 }
static _lookupSourceId($a_target_id)
lookup source id
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static _getAllReferences($a_id)
get all reference ids of object
$type
$DIC
Definition: xapitoken.php:46

References $DIC, $ilLog, $type, ilObject\_getAllReferences(), ilContainerReference\_lookupSourceId(), and ilObjectFactory\getInstanceByRefId().

Referenced by handleEvent().

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

◆ handleEvent()

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

Handle events like create, update, delete.

@access public

Parameters
string$a_componentcomponent, e.g. "Modules/Forum" or "Services/User"
string$a_eventevent e.g. "createUser", "updateUser", "deleteUser", ...
array$a_parameterparameter array (assoc), array("name" => ..., "phone_office" => ...) *

Implements ilAppEventListener.

Definition at line 46 of file class.ilContainerReferenceAppEventListener.php.

47 {
48 global $DIC;
49
50 $ilLog = $DIC["ilLog"];
51
52 switch ($a_component) {
53 case 'Modules/Course':
54 case 'Modules/Category':
55 case 'Modules/StudyProgramme':
56 switch ($a_event) {
57 case 'delete':
58 $ilLog->write(__METHOD__ . ': Handling delete event.');
59 self::deleteReferences($a_parameter['obj_id']);
60 break;
61 }
62 break;
63 }
64 }

References $DIC, $ilLog, and deleteReferences().

+ Here is the call graph for this function:

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