ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
ilCmiXapiAppEventListener Class Reference

Event listener for cmix. More...

+ Collaboration diagram for ilCmiXapiAppEventListener:

Static Public Member Functions

static handleEvent (string $component, string $event, array $parameter)
 

Static Private Member Functions

static onServiceUserDeleteUser (array $parameter)
 
static onServiceObjectDeleteOrToTrash (array $parameter)
 
static removeMembers (string $src_type, array $parameter)
 

Detailed Description

Event listener for cmix.

Has the following tasks:

Author
Uwe Kohnle kohnl.nosp@m.e@in.nosp@m.terne.nosp@m.tleh.nosp@m.rer-g.nosp@m.mbh..nosp@m.de

Definition at line 28 of file class.ilCmiXapiAppEventListener.php.

Member Function Documentation

◆ handleEvent()

static ilCmiXapiAppEventListener::handleEvent ( string  $component,
string  $event,
array  $parameter 
)
static
Exceptions
ilException

Definition at line 33 of file class.ilCmiXapiAppEventListener.php.

33 : void
34 {
35 switch ($component) {
36 case "components/ILIAS/User":
37 if ($event == "deleteUser") {
39 }
40 break;
41 case "components/ILIAS/ILIASObject":
42 switch ($event) {
43 case "delete":
44 case "toTrash":
46 break;
47 }
48 break;
49
50 case "components/ILIAS/Course":
51 if ($event == "deleteParticipant") {
53 'crs',
54 $parameter
55 );
56 }
57 break;
58 case "components/ILIAS/Group":
59 if ($event == "deleteParticipant") {
61 'grp',
62 $parameter
63 );
64 }
65 break;
66
67 default:
68 throw new ilException(
69 "ilCmiXapiAppEventListener::handleEvent: Won't handle events of '$component'."
70 );
71 }
72 }
static removeMembers(string $src_type, array $parameter)
static onServiceObjectDeleteOrToTrash(array $parameter)
static onServiceUserDeleteUser(array $parameter)
Base class for ILIAS Exception handling.

References onServiceObjectDeleteOrToTrash(), onServiceUserDeleteUser(), and removeMembers().

+ Here is the call graph for this function:

◆ onServiceObjectDeleteOrToTrash()

static ilCmiXapiAppEventListener::onServiceObjectDeleteOrToTrash ( array  $parameter)
staticprivate

Definition at line 99 of file class.ilCmiXapiAppEventListener.php.

99 : void
100 {
101 if (ilObject::_lookupType((int) $parameter["ref_id"], true) !== "cmix") {
102 return;
103 }
104
105 $model = ilCmiXapiDelModel::init();
106 $objId = (int) $parameter['obj_id'];
107 $xapiObject = $model->getXapiObjectData($objId);
108
109 if (!is_null($xapiObject)) {
110 if ((int) $xapiObject['delete_data'] != 0) {
111 if ((int) $xapiObject['delete_data'] < 10) {
112 //remove only ident
113 $model->removeCmixUsersForObject($objId);
114 } else {
115 // add obj as deleted
116 $model->setXapiObjAsDeleted($objId, $xapiObject['lrs_type_id'], $xapiObject['activity_id']);
117 }
118 }
119 }
120 }
static _lookupType(int $id, bool $reference=false)
$objId
Definition: xapitoken.php:55

References $objId, ilObject\_lookupType(), ilCmiXapiDelModel\init(), and ILIAS\Repository\int().

Referenced by handleEvent().

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

◆ onServiceUserDeleteUser()

static ilCmiXapiAppEventListener::onServiceUserDeleteUser ( array  $parameter)
staticprivate

Definition at line 74 of file class.ilCmiXapiAppEventListener.php.

74 : void
75 {
76 $usr_id = $parameter['usr_id'];
77 $model = ilCmiXapiDelModel::init();
78
79 // null or array with objIds, if are going to need more
80 $xapiObjUser = $model->getXapiObjIdForUser($usr_id);
81 if (!is_null($xapiObjUser)) {
82 for ((int) $i = 0; $i < count($xapiObjUser); $i++) {
83 $xapiObject = $model->getXapiObjectData($xapiObjUser[$i]);
84 if (!is_null($xapiObject)) {
85 if ((int) $xapiObject['delete_data'] != 0) {
86 if ((int) $xapiObject['delete_data'] < 10) {
87 //remove only ident
88 $model->removeCmixUsersForObjectAndUser($xapiObjUser[$i], $usr_id);
89 } else {
90 // add obj as deleted
91 $model->setXapiObjAsDeletedForUser($xapiObjUser[$i], $xapiObject['lrs_type_id'], $xapiObject['activity_id'], $usr_id);
92 }
93 }
94 }
95 }
96 }
97 }

References ilCmiXapiDelModel\init().

Referenced by handleEvent().

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

◆ removeMembers()

static ilCmiXapiAppEventListener::removeMembers ( string  $src_type,
array  $parameter 
)
staticprivate

Definition at line 122 of file class.ilCmiXapiAppEventListener.php.

122 : void
123 {
124 global $DIC;
125 $tree = $DIC->repositoryTree();
126
127 $usr_id = $parameter['usr_id'];
128 $crs_id = $parameter['obj_id'];
129 if (
130 $src_type === 'grp' || $src_type === 'crs'
131 ) {
132 $crs_ref_ids = ilObject::_getAllReferences($crs_id);
133 $idc = array_shift($crs_ref_ids);
134
135 //Todo check Verknüpfungen?
136 $ref_ids = $tree->getSubTreeIds($idc);
137 for ((int) $i = 0; $i < count($ref_ids); $i++) {
138 if (ilObject::_lookupType($ref_ids[$i], true) == "cmix") {
139 $objId = ilObject::_lookupObjectId($ref_ids[$i]);
140 $model = ilCmiXapiDelModel::init();
141 $xapiObject = $model->getXapiObjectData($objId);
142 if (!is_null($xapiObject)) {
143 $xapiObjUser = $model->getXapiObjIdForUser($usr_id);
144 if (!is_null($xapiObjUser)) {
145 // add user as deleted
146 if ((int) $xapiObject['delete_data'] != 0) {
147 if ((int) $xapiObject['delete_data'] < 10) {
148 //remove only ident
149 $model->removeCmixUsersForObjectAndUser($objId, $usr_id);
150 } else {
151 // add obj as deleted
152 $model->setXapiObjAsDeletedForUser($objId, $xapiObject['lrs_type_id'], $xapiObject['activity_id'], $usr_id);
153 }
154 }
155 }
156 }
157 }
158 }
159 }
160 }
static _lookupObjectId(int $ref_id)
static _getAllReferences(int $id)
get all reference ids for object ID
global $DIC
Definition: shib_login.php:26

References $DIC, $objId, ilObject\_getAllReferences(), ilObject\_lookupObjectId(), ilObject\_lookupType(), and ilCmiXapiDelModel\init().

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: