ILIAS  release_8 Revision v8.24
ilIndividualAssessmentMembersStorageDB Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

+ Inheritance diagram for ilIndividualAssessmentMembersStorageDB:
+ Collaboration diagram for ilIndividualAssessmentMembersStorageDB:

Public Member Functions

 __construct (ilDBInterface $ilDB)
 
 loadMembers (ilObjIndividualAssessment $obj)
 Get ilIndividualAssessmentMembers-object containing member info associated with $obj. More...
 
 loadMembersAsSingleObjects (ilObjIndividualAssessment $obj, string $filter=null, string $sort=null)
 Get ilIndividualAssessmentMember-object for each obj member associated with $obj.
Returns
ilIndividualAssessmentMember[]
More...
 
 loadMember (ilObjIndividualAssessment $obj, ilObjUser $usr)
 Get ilIndividualAssessmentMember-object containing member info associated with $obj and $usr. More...
 
 updateMember (ilIndividualAssessmentMember $member)
 Create a new storage entry for member-object. More...
 
 deleteMembers (ilObjIndividualAssessment $obj)
 Delete entries associated with members-object. More...
 
 insertMembersRecord (ilObjIndividualAssessment $iass, array $record)
 Create a membership inside storage.
Parameters
string[] | int[]$record
More...
 
 removeMembersRecord (ilObjIndividualAssessment $iass, array $record)
 Remove a membership associated with a IndividualAssessment object inside storage.
Parameters
string[] | int[]$record
More...
 
 loadMembers (ilObjIndividualAssessment $obj)
 Get ilIndividualAssessmentMembers-object containing member info associated with $obj. More...
 
 loadMembersAsSingleObjects (ilObjIndividualAssessment $obj, string $filter=null, string $sort=null)
 Get ilIndividualAssessmentMember-object for each obj member associated with $obj. More...
 
 loadMember (ilObjIndividualAssessment $obj, ilObjUser $usr)
 Get ilIndividualAssessmentMember-object containing member info associated with $obj and $usr. More...
 
 updateMember (ilIndividualAssessmentMember $member)
 Create a new storage entry for member-object. More...
 
 deleteMembers (ilObjIndividualAssessment $obj)
 Delete entries associated with members-object. More...
 
 insertMembersRecord (ilObjIndividualAssessment $iass, array $record)
 Create a membership inside storage. More...
 
 removeMembersRecord (ilObjIndividualAssessment $iass, array $record)
 Remove a membership associated with a IndividualAssessment object inside storage. More...
 

Data Fields

const MEMBERS_TABLE = "iass_members"
 

Protected Member Functions

 createAssessmentMember (ilObjIndividualAssessment $obj, ilObjUser $usr, array $record)
 
 createGrading (array $record, string $user_fullname)
 
 getActualDateTime ()
 
 loadMemberQuery ()
 
 loadMembersQuery (int $obj_id)
 
 getWhereFromFilter ($filter)
 
 getOrderByFromSort (string $sort)
 

Protected Attributes

ilDBInterface $db
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning Store member infos to DB

Definition at line 24 of file class.ilIndividualAssessmentMembersStorageDB.php.

Constructor & Destructor Documentation

◆ __construct()

ilIndividualAssessmentMembersStorageDB::__construct ( ilDBInterface  $ilDB)

Definition at line 30 of file class.ilIndividualAssessmentMembersStorageDB.php.

31 {
32 $this->db = $ilDB;
33 }

References $ilDB.

Member Function Documentation

◆ createAssessmentMember()

ilIndividualAssessmentMembersStorageDB::createAssessmentMember ( ilObjIndividualAssessment  $obj,
ilObjUser  $usr,
array  $record 
)
protected

Definition at line 96 of file class.ilIndividualAssessmentMembersStorageDB.php.

102 if (!is_null($changer_id)) {
103 $changer_id = (int) $changer_id;
104 }
105 $change_time = null;
106 $change_time_db = $record[ilIndividualAssessmentMembers::FIELD_CHANGE_TIME];
107 if (!is_null($change_time_db)) {
108 $change_time = new DateTimeImmutable($change_time_db);
109 }
111 if (!is_null($examiner_id)) {
112 $examiner_id = (int) $examiner_id;
113 }
115 $obj,
116 $usr,
117 $this->createGrading($record, $usr->getFullname()),
119 $examiner_id,
120 $changer_id,
121 $change_time
122 );
123 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getFullname(int $a_max_strlen=0)

References ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ createGrading()

ilIndividualAssessmentMembersStorageDB::createGrading ( array  $record,
string  $user_fullname 
)
protected

Definition at line 125 of file class.ilIndividualAssessmentMembersStorageDB.php.

126 {
127 $event_time = null;
128 $event_time_db = $record[ilIndividualAssessmentMembers::FIELD_EVENTTIME];
129 if (!is_null($event_time_db)) {
130 $event_time = new DateTimeImmutable();
131 $event_time = $event_time->setTimestamp((int) $event_time_db);
132 }
134 $user_fullname,
141 $event_time,
144 );
145 }

References ilIndividualAssessmentMembers\FIELD_EVENTTIME, ilIndividualAssessmentMembers\FIELD_FILE_NAME, ilIndividualAssessmentMembers\FIELD_FINALIZED, ilIndividualAssessmentMembers\FIELD_INTERNAL_NOTE, ilIndividualAssessmentMembers\FIELD_LEARNING_PROGRESS, ilIndividualAssessmentMembers\FIELD_NOTIFY, ilIndividualAssessmentMembers\FIELD_PLACE, ilIndividualAssessmentMembers\FIELD_RECORD, and ilIndividualAssessmentMembers\FIELD_USER_VIEW_FILE.

◆ deleteMembers()

ilIndividualAssessmentMembersStorageDB::deleteMembers ( ilObjIndividualAssessment  $obj)

Delete entries associated with members-object.

Implements ilIndividualAssessmentMembersStorage.

Definition at line 189 of file class.ilIndividualAssessmentMembersStorageDB.php.

189 : void
190 {
191 $sql = "DELETE FROM " . self::MEMBERS_TABLE . " WHERE obj_id = " . $this->db->quote($obj->getId(), 'integer');
192 $this->db->manipulate($sql);
193 }

References ilObject\getId().

+ Here is the call graph for this function:

◆ getActualDateTime()

ilIndividualAssessmentMembersStorageDB::getActualDateTime ( )
protected

Reimplemented in ilIndividualAssessmentMembersStorageDBWrapper.

Definition at line 181 of file class.ilIndividualAssessmentMembersStorageDB.php.

181 : string
182 {
183 return date("Y-m-d H:i:s");
184 }

◆ getOrderByFromSort()

ilIndividualAssessmentMembersStorageDB::getOrderByFromSort ( string  $sort)
protected

Definition at line 373 of file class.ilIndividualAssessmentMembersStorageDB.php.

373 : string
374 {
375 $vals = explode(":", $sort);
376
377 return " ORDER BY " . $vals[0] . " " . $vals[1];
378 }

◆ getWhereFromFilter()

ilIndividualAssessmentMembersStorageDB::getWhereFromFilter (   $filter)
protected
Parameters
string | int$filter

Definition at line 357 of file class.ilIndividualAssessmentMembersStorageDB.php.

357 : string
358 {
359 switch ($filter) {
361 return " AND finalized = 0 AND examiner_id IS NULL\n";
363 return " AND finalized = 0 AND examiner_id IS NOT NULL\n";
365 return " AND finalized = 1 AND learning_progress = 2\n";
367 return " AND finalized = 1 AND learning_progress = 3\n";
368 default:
369 return "";
370 }
371 }

References ilIndividualAssessmentMembers\LP_ASSESSMENT_NOT_COMPLETED, ilIndividualAssessmentMembers\LP_COMPLETED, ilIndividualAssessmentMembers\LP_FAILED, and ilIndividualAssessmentMembers\LP_IN_PROGRESS.

◆ insertMembersRecord()

ilIndividualAssessmentMembersStorageDB::insertMembersRecord ( ilObjIndividualAssessment  $iass,
array  $record 
)

Create a membership inside storage.

Parameters
string[] | int[]$record

Implements ilIndividualAssessmentMembersStorage.

Definition at line 244 of file class.ilIndividualAssessmentMembersStorageDB.php.

244 : void
245 {
246 $values = [
247 "obj_id" => [
248 "integer",
249 $iass->getId()
250 ],
251 "usr_id" => [
252 "integer",
254 ],
256 "text",
258 ],
260 "integer",
262 ],
264 "integer",
265 0
266 ],
268 "integer",
269 -1
270 ]
271 ];
272
275 [
276 "integer",
278 ];
279 }
282 [
283 "text",
285 ];
286 }
289 [
290 "text",
292 ];
293 }
294 if (isset($record[ilIndividualAssessmentMembers::FIELD_PLACE])) {
296 [
297 "text",
299 ];
300 }
303 [
304 "integer",
306 ];
307 }
310 [
311 "text",
313 ];
314 }
317 [
318 "integer",
320 ];
321 }
324 [
325 "integer",
327 ];
328 }
331 [
332 "text",
334 ];
335 }
336
337 $this->db->insert(self::MEMBERS_TABLE, $values);
338 }

References ilIndividualAssessmentMembers\FIELD_CHANGE_TIME, ilIndividualAssessmentMembers\FIELD_CHANGER_ID, ilIndividualAssessmentMembers\FIELD_EVENTTIME, ilIndividualAssessmentMembers\FIELD_EXAMINER_ID, ilIndividualAssessmentMembers\FIELD_FILE_NAME, ilIndividualAssessmentMembers\FIELD_FINALIZED, ilIndividualAssessmentMembers\FIELD_INTERNAL_NOTE, ilIndividualAssessmentMembers\FIELD_LEARNING_PROGRESS, ilIndividualAssessmentMembers\FIELD_NOTIFICATION_TS, ilIndividualAssessmentMembers\FIELD_NOTIFY, ilIndividualAssessmentMembers\FIELD_PLACE, ilIndividualAssessmentMembers\FIELD_RECORD, ilIndividualAssessmentMembers\FIELD_USER_VIEW_FILE, ilIndividualAssessmentMembers\FIELD_USR_ID, and ilObject\getId().

+ Here is the call graph for this function:

◆ loadMember()

ilIndividualAssessmentMembersStorageDB::loadMember ( ilObjIndividualAssessment  $obj,
ilObjUser  $usr 
)

Get ilIndividualAssessmentMember-object containing member info associated with $obj and $usr.

Implements ilIndividualAssessmentMembersStorage.

Definition at line 80 of file class.ilIndividualAssessmentMembersStorageDB.php.

81 {
82 $obj_id = $obj->getId();
83 $usr_id = $usr->getId();
84 $sql = $this->loadMemberQuery();
85 $sql .= " WHERE obj_id = " . $this->db->quote($obj_id, 'integer') . "\n"
86 . " AND iassme.usr_id = " . $this->db->quote($usr_id, 'integer');
87
88 $rec = $this->db->fetchAssoc($this->db->query($sql));
89 if ($rec) {
90 return $this->createAssessmentMember($obj, $usr, $rec);
91 } else {
92 throw new ilIndividualAssessmentException("invalid usr-obj combination");
93 }
94 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
createAssessmentMember(ilObjIndividualAssessment $obj, ilObjUser $usr, array $record)

References ilObject\getId().

+ Here is the call graph for this function:

◆ loadMemberQuery()

ilIndividualAssessmentMembersStorageDB::loadMemberQuery ( )
protected

Definition at line 195 of file class.ilIndividualAssessmentMembersStorageDB.php.

195 : string
196 {
197 return "SELECT "
198 . "iassme.obj_id,"
199 . "iassme.usr_id,"
200 . "iassme.examiner_id,"
201 . "iassme.record,"
202 . "iassme.internal_note,"
203 . "iassme.notify,"
204 . "iassme.notification_ts,"
205 . "iassme.learning_progress,"
206 . "iassme.finalized,"
207 . "iassme.place,"
208 . "iassme.event_time,"
209 . "iassme.user_view_file,"
210 . "iassme.file_name,"
211 . "iassme.changer_id,"
212 . "iassme.change_time,"
213 . "usr.login AS user_login,"
214 . "ex.login AS examiner_login"
215 . " FROM " . self::MEMBERS_TABLE . " iassme\n"
216 . " JOIN usr_data usr ON iassme.usr_id = usr.usr_id\n"
217 . " LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id\n"
218 ;
219 }

◆ loadMembers()

ilIndividualAssessmentMembersStorageDB::loadMembers ( ilObjIndividualAssessment  $obj)

Get ilIndividualAssessmentMembers-object containing member info associated with $obj.

Implements ilIndividualAssessmentMembersStorage.

Definition at line 38 of file class.ilIndividualAssessmentMembersStorageDB.php.

39 {
40 $members = new ilIndividualAssessmentMembers($obj);
41 $obj_id = $obj->getId();
42 $sql = $this->loadMembersQuery($obj_id);
43 $res = $this->db->query($sql);
44 while ($rec = $this->db->fetchAssoc($res)) {
45 $members = $members->withAdditionalRecord($rec);
46 }
47 return $members;
48 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$res
Definition: ltiservices.php:69

References $res, ilObject\getId(), and loadMembersQuery().

+ Here is the call graph for this function:

◆ loadMembersAsSingleObjects()

ilIndividualAssessmentMembersStorageDB::loadMembersAsSingleObjects ( ilObjIndividualAssessment  $obj,
string  $filter = null,
string  $sort = null 
)

Get ilIndividualAssessmentMember-object for each obj member associated with $obj.

Returns
ilIndividualAssessmentMember[]

Implements ilIndividualAssessmentMembersStorage.

Definition at line 53 of file class.ilIndividualAssessmentMembersStorageDB.php.

57 : array {
58 $members = [];
59 $sql = $this->loadMemberQuery();
60 $sql .= " WHERE obj_id = " . $this->db->quote($obj->getId(), 'integer');
61
62 if (!is_null($filter)) {
63 $sql .= $this->getWhereFromFilter($filter);
64 }
65
66 if (!is_null($sort)) {
67 $sql .= $this->getOrderByFromSort($sort);
68 }
69 $res = $this->db->query($sql);
70 while ($rec = $this->db->fetchAssoc($res)) {
71 $usr = new ilObjUser((int)$rec["usr_id"]);
72 $members[] = $this->createAssessmentMember($obj, $usr, $rec);
73 }
74 return $members;
75 }
User class.

◆ loadMembersQuery()

ilIndividualAssessmentMembersStorageDB::loadMembersQuery ( int  $obj_id)
protected

Definition at line 221 of file class.ilIndividualAssessmentMembersStorageDB.php.

221 : string
222 {
223 return "SELECT ex.firstname as " . ilIndividualAssessmentMembers::FIELD_EXAMINER_FIRSTNAME
227 . " ,usr.firstname as " . ilIndividualAssessmentMembers::FIELD_FIRSTNAME
228 . " ,usr.lastname as " . ilIndividualAssessmentMembers::FIELD_LASTNAME
231 . " ,iassme.obj_id, iassme.usr_id, iassme.examiner_id, iassme.record, iassme.internal_note, iassme.notify"
232 . " ,iassme.notification_ts, iassme.learning_progress, iassme.finalized,iassme.place"
233 . " ,iassme.event_time, iassme.changer_id, iassme.change_time\n"
234 . " FROM iass_members iassme"
235 . " JOIN usr_data usr ON iassme.usr_id = usr.usr_id"
236 . " LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id"
237 . " LEFT JOIN usr_data ud ON iassme.changer_id = ud.usr_id"
238 . " WHERE obj_id = " . $this->db->quote($obj_id, 'integer');
239 }

References ilIndividualAssessmentMembers\FIELD_CHANGER_FIRSTNAME, ilIndividualAssessmentMembers\FIELD_CHANGER_LASTNAME, ilIndividualAssessmentMembers\FIELD_EXAMINER_FIRSTNAME, ilIndividualAssessmentMembers\FIELD_EXAMINER_LASTNAME, ilIndividualAssessmentMembers\FIELD_FILE_NAME, ilIndividualAssessmentMembers\FIELD_FIRSTNAME, ilIndividualAssessmentMembers\FIELD_LASTNAME, and ilIndividualAssessmentMembers\FIELD_LOGIN.

Referenced by loadMembers().

+ Here is the caller graph for this function:

◆ removeMembersRecord()

ilIndividualAssessmentMembersStorageDB::removeMembersRecord ( ilObjIndividualAssessment  $iass,
array  $record 
)

Remove a membership associated with a IndividualAssessment object inside storage.

Parameters
string[] | int[]$record

Implements ilIndividualAssessmentMembersStorage.

Definition at line 343 of file class.ilIndividualAssessmentMembersStorageDB.php.

343 : void
344 {
345 $sql =
346 "DELETE FROM " . self::MEMBERS_TABLE . PHP_EOL
347 . "WHERE obj_id = " . $this->db->quote($iass->getId(), 'integer') . PHP_EOL
348 . "AND usr_id = " . $this->db->quote($record[ilIndividualAssessmentMembers::FIELD_USR_ID], 'integer') . PHP_EOL
349 ;
350
351 $this->db->manipulate($sql);
352 }

References ilIndividualAssessmentMembers\FIELD_USR_ID, and ilObject\getId().

+ Here is the call graph for this function:

◆ updateMember()

ilIndividualAssessmentMembersStorageDB::updateMember ( ilIndividualAssessmentMember  $member)

Create a new storage entry for member-object.

Implements ilIndividualAssessmentMembersStorage.

Definition at line 150 of file class.ilIndividualAssessmentMembersStorageDB.php.

150 : void
151 {
152 $where = [
153 "obj_id" => ["integer", $member->assessmentId()],
154 "usr_id" => ["integer", $member->id()]
155 ];
156
157 $event_time = $member->eventTime();
158 if (!is_null($event_time)) {
159 $event_time = $event_time->getTimestamp();
160 }
161
162 $values = [
164 ilIndividualAssessmentMembers::FIELD_EXAMINER_ID => ["integer", $member->examinerId() ?? "NULL"],
168 ilIndividualAssessmentMembers::FIELD_EVENTTIME => ["integer", $event_time],
169 ilIndividualAssessmentMembers::FIELD_NOTIFY => ["integer", $member->notify()],
176 ];
177
178 $this->db->update(self::MEMBERS_TABLE, $values, $where);
179 }

References ilIndividualAssessmentMember\assessmentId(), ilIndividualAssessmentMember\changerId(), ilIndividualAssessmentMember\eventTime(), ilIndividualAssessmentMember\examinerId(), ilIndividualAssessmentMembers\FIELD_CHANGE_TIME, ilIndividualAssessmentMembers\FIELD_CHANGER_ID, ilIndividualAssessmentMembers\FIELD_EVENTTIME, ilIndividualAssessmentMembers\FIELD_EXAMINER_ID, ilIndividualAssessmentMembers\FIELD_FILE_NAME, ilIndividualAssessmentMembers\FIELD_FINALIZED, ilIndividualAssessmentMembers\FIELD_INTERNAL_NOTE, ilIndividualAssessmentMembers\FIELD_LEARNING_PROGRESS, ilIndividualAssessmentMembers\FIELD_NOTIFICATION_TS, ilIndividualAssessmentMembers\FIELD_NOTIFY, ilIndividualAssessmentMembers\FIELD_PLACE, ilIndividualAssessmentMembers\FIELD_RECORD, ilIndividualAssessmentMembers\FIELD_USER_VIEW_FILE, ilIndividualAssessmentMember\fileName(), ilIndividualAssessmentMember\finalized(), ilIndividualAssessmentMember\id(), ilIndividualAssessmentMember\internalNote(), ilIndividualAssessmentMember\LPStatus(), ilIndividualAssessmentMember\notificationTS(), ilIndividualAssessmentMember\notify(), ilIndividualAssessmentMember\place(), ilIndividualAssessmentMember\record(), and ilIndividualAssessmentMember\viewFile().

+ Here is the call graph for this function:

Field Documentation

◆ $db

ilDBInterface ilIndividualAssessmentMembersStorageDB::$db
protected

◆ MEMBERS_TABLE


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