ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
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...
 

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.

References $ilDB.

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

Member Function Documentation

◆ createAssessmentMember()

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

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

References createGrading(), ilIndividualAssessmentMembers\FIELD_CHANGE_TIME, ilIndividualAssessmentMembers\FIELD_CHANGER_ID, ilIndividualAssessmentMembers\FIELD_EXAMINER_ID, ilIndividualAssessmentMembers\FIELD_NOTIFICATION_TS, ilObjUser\getFullname(), and ILIAS\Repository\int().

Referenced by ilIndividualAssessmentMembersStorageDBWrapper\createAssessmentMemberWrapper(), loadMember(), and loadMembersAsSingleObjects().

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  }
110  $examiner_id = $record[ilIndividualAssessmentMembers::FIELD_EXAMINER_ID];
111  if (!is_null($examiner_id)) {
112  $examiner_id = (int) $examiner_id;
113  }
114  return new ilIndividualAssessmentMember(
115  $obj,
116  $usr,
117  $this->createGrading($record, $usr->getFullname()),
119  $examiner_id,
120  $changer_id,
121  $change_time
122  );
123  }
getFullname(int $a_max_strlen=0)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createGrading()

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

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

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.

Referenced by createAssessmentMember().

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  }
+ Here is the caller graph for this function:

◆ deleteMembers()

ilIndividualAssessmentMembersStorageDB::deleteMembers ( ilObjIndividualAssessment  $obj)

Delete entries associated with members-object.

Implements ilIndividualAssessmentMembersStorage.

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

References ilObject\getId().

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  }
+ Here is the call graph for this function:

◆ getActualDateTime()

ilIndividualAssessmentMembersStorageDB::getActualDateTime ( )
protected

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

Referenced by updateMember().

181  : string
182  {
183  return date("Y-m-d H:i:s");
184  }
+ Here is the caller graph for this function:

◆ getOrderByFromSort()

ilIndividualAssessmentMembersStorageDB::getOrderByFromSort ( string  $sort)
protected

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

Referenced by ilIndividualAssessmentMembersStorageDBWrapper\getOrderByFromSortWrapper(), and loadMembersAsSingleObjects().

373  : string
374  {
375  $vals = explode(":", $sort);
376 
377  return " ORDER BY " . $vals[0] . " " . $vals[1];
378  }
+ Here is the caller graph for this function:

◆ getWhereFromFilter()

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

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

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

Referenced by ilIndividualAssessmentMembersStorageDBWrapper\getWhereFromFilterWrapper(), and loadMembersAsSingleObjects().

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  }
+ Here is the caller graph for this function:

◆ 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.

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().

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  }
280  if (isset($record[ilIndividualAssessmentMembers::FIELD_RECORD])) {
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  }
+ 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.

References createAssessmentMember(), ilObject\getId(), and loadMemberQuery().

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  }
createAssessmentMember(ilObjIndividualAssessment $obj, ilObjUser $usr, array $record)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ loadMemberQuery()

ilIndividualAssessmentMembersStorageDB::loadMemberQuery ( )
protected

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

Referenced by loadMember(), and loadMembersAsSingleObjects().

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  }
+ Here is the caller graph for this function:

◆ 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.

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

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  }
$res
Definition: ltiservices.php:69
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ 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.

References $res, createAssessmentMember(), ilObject\getId(), getOrderByFromSort(), getWhereFromFilter(), and loadMemberQuery().

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  }
createAssessmentMember(ilObjIndividualAssessment $obj, ilObjUser $usr, array $record)
$res
Definition: ltiservices.php:69
+ Here is the call graph for this function:

◆ loadMembersQuery()

ilIndividualAssessmentMembersStorageDB::loadMembersQuery ( int  $obj_id)
protected

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

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().

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
229  . " ,usr.login as " . ilIndividualAssessmentMembers::FIELD_LOGIN
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  }
+ 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.

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

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  }
+ 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.

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(), getActualDateTime(), ilIndividualAssessmentMember\id(), ilIndividualAssessmentMember\internalNote(), ilIndividualAssessmentMember\LPStatus(), ilIndividualAssessmentMember\notificationTS(), ilIndividualAssessmentMember\notify(), ilIndividualAssessmentMember\place(), ilIndividualAssessmentMember\record(), and ilIndividualAssessmentMember\viewFile().

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"],
165  ilIndividualAssessmentMembers::FIELD_RECORD => ["text", $member->record()],
167  ilIndividualAssessmentMembers::FIELD_PLACE => ["text", $member->place()],
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  }
+ Here is the call graph for this function:

Field Documentation

◆ $db

◆ MEMBERS_TABLE


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