ILIAS  release_7 Revision v7.30-3-g800a261c036
ilIndividualAssessmentMembersStorageDB Class Reference

Store member infos to DB. More...

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

Public Member Functions

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

Protected Attributes

 $db
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilIndividualAssessmentMembersStorageDB::__construct (   $ilDB)

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

21 {
22 $this->db = $ilDB;
23 }
global $ilDB

References $ilDB.

Member Function Documentation

◆ createAssessmentMember()

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

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

92 if (!is_null($changer_id)) {
93 $changer_id = (int) $changer_id;
94 }
95 $change_time = null;
96 $change_time_db = $record[ilIndividualAssessmentMembers::FIELD_CHANGE_TIME];
97 if (!is_null($change_time_db)) {
98 $change_time = new DateTime($change_time_db);
99 }
101 if (!is_null($examiner_id)) {
102 $examiner_id = (int) $examiner_id;
103 }
105 $obj,
106 $usr,
107 $this->createGrading($record, $usr->getFullname()),
108 $examiner_id,
110 $changer_id,
111 $change_time
112 );
113 }
Edit the record of a user, set LP.
getFullname($a_max_strlen=0)
get fullname @access public

◆ createGrading()

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

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

116 {
117 $event_time = null;
118 $event_time_db = $record[ilIndividualAssessmentMembers::FIELD_EVENTTIME];
119 if (!is_null($event_time_db)) {
120 $event_time = new DateTimeImmutable();
121 $event_time = $event_time->setTimestamp($event_time_db);
122 }
124 $user_fullname,
131 $event_time,
134 );
135 }

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.

Parameters
ilObjIndividualAssessment$obj

Implements ilIndividualAssessmentMembersStorage.

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

173 {
174 $sql = "DELETE FROM " . self::MEMBERS_TABLE . " WHERE obj_id = " . $this->db->quote($obj->getId(), 'integer');
175 $this->db->manipulate($sql);
176 }
getId()
get object id @access public

References ilObject\getId().

+ Here is the call graph for this function:

◆ getOrderByFromSort()

ilIndividualAssessmentMembersStorageDB::getOrderByFromSort ( string  $sort)
protected

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

285 : string
286 {
287 $vals = explode(":", $sort);
288
289 return " ORDER BY " . $vals[0] . " " . $vals[1];
290 }

◆ getWhereFromFilter()

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

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

267 : string
268 {
269 switch ($filter) {
271 return " AND finalized = 0 AND examiner_id IS NULL\n";
272 break;
274 return " AND finalized = 0 AND examiner_id IS NOT NULL\n";
275 break;
277 return " AND finalized = 1 AND learning_progress = 2\n";
278 break;
280 return " AND finalized = 1 AND learning_progress = 3\n";
281 break;
282 }
283 }

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
ilObjIndividualAssessment$iass
string | int[]$record

Implements ilIndividualAssessmentMembersStorage.

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

231 {
232 $values = array("obj_id" => array("integer", $iass->getId())
233 , "usr_id" => array("integer", $record[ilIndividualAssessmentMembers::FIELD_USR_ID])
247 );
248
249 $this->db->insert(self::MEMBERS_TABLE, $values);
250 }

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 meberinfo associated with $obj and $usr.

Parameters
ilObjIndividualAssessment$obj
ilObjUser$usr
Returns
ilIndividualAssessmentMember

Implements ilIndividualAssessmentMembersStorage.

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

71 {
72 $obj_id = $obj->getId();
73 $usr_id = $usr->getId();
74 $sql = $this->loadMemberQuery();
75 $sql .= " WHERE obj_id = " . $this->db->quote($obj_id, 'integer') . "\n"
76 . " AND iassme.usr_id = " . $this->db->quote($usr_id, 'integer');
77
78 $rec = $this->db->fetchAssoc($this->db->query($sql));
79 if ($rec) {
80 return $this->createAssessmentMember($obj, $usr, $rec);
81 } else {
82 throw new ilIndividualAssessmentException("invalid usr-obj combination");
83 }
84 }
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 178 of file class.ilIndividualAssessmentMembersStorageDB.php.

179 {
180 return "SELECT "
181 . "iassme.obj_id,"
182 . "iassme.usr_id,"
183 . "iassme.examiner_id,"
184 . "iassme.record,"
185 . "iassme.internal_note,"
186 . "iassme.notify,"
187 . "iassme.notification_ts,"
188 . "iassme.learning_progress,"
189 . "iassme.finalized,"
190 . "iassme.place,"
191 . "iassme.event_time,"
192 . "iassme.user_view_file,"
193 . "iassme.file_name,"
194 . "iassme.changer_id,"
195 . "iassme.change_time,"
196 . "usr.lastname AS user_lastname,"
197 . "ex.login AS examiner_login"
198 . " FROM " . self::MEMBERS_TABLE . " iassme\n"
199 . " JOIN usr_data usr ON iassme.usr_id = usr.usr_id\n"
200 . " LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id\n"
201 ;
202 }

◆ loadMembers()

ilIndividualAssessmentMembersStorageDB::loadMembers ( ilObjIndividualAssessment  $obj)

Get ilIndividualAssessmentMembers-object containing meberinfo associated with $obj.

Parameters
ilObjIndividualAssessment$obj
Returns
ilIndividualAssessmentMembers

Implements ilIndividualAssessmentMembersStorage.

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

29 {
30 $members = new ilIndividualAssessmentMembers($obj);
31 $obj_id = $obj->getId();
32 $sql = $this->loadMembersQuery($obj_id);
33 $res = $this->db->query($sql);
34 while ($rec = $this->db->fetchAssoc($res)) {
35 $members = $members->withAdditionalRecord($rec);
36 }
37 return $members;
38 }
Member administration related logic, add and remove members, get the list of all members,...
foreach($_POST as $key=> $value) $res

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.

Parameters
ilObjIndividualAssessment$obj
Returns
ilIndividualAssessmentMember[]

Implements ilIndividualAssessmentMembersStorage.

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

47 : array {
48 $members = [];
49 $sql = $this->loadMemberQuery();
50 $sql .= " WHERE obj_id = " . $this->db->quote($obj->getId(), 'integer');
51
52 if (!is_null($filter)) {
53 $sql .= $this->getWhereFromFilter($filter);
54 }
55
56 if (!is_null($sort)) {
57 $sql .= $this->getOrderByFromSort($sort);
58 }
59 $res = $this->db->query($sql);
60 while ($rec = $this->db->fetchAssoc($res)) {
61 $usr = new ilObjUser($rec["usr_id"]);
62 $members[] = $this->createAssessmentMember($obj, $usr, $rec);
63 }
64 return $members;
65 }

◆ loadMembersQuery()

ilIndividualAssessmentMembersStorageDB::loadMembersQuery (   $obj_id)
protected

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

208 {
209 return "SELECT ex.firstname as " . ilIndividualAssessmentMembers::FIELD_EXAMINER_FIRSTNAME
213 . " ,usr.firstname as " . ilIndividualAssessmentMembers::FIELD_FIRSTNAME
214 . " ,usr.lastname as " . ilIndividualAssessmentMembers::FIELD_LASTNAME
217 . " ,iassme.obj_id, iassme.usr_id, iassme.examiner_id, iassme.record, iassme.internal_note, iassme.notify"
218 . " ,iassme.notification_ts, iassme.learning_progress, iassme.finalized,iassme.place"
219 . " ,iassme.event_time, iassme.changer_id, iassme.change_time\n"
220 . " FROM iass_members iassme"
221 . " JOIN usr_data usr ON iassme.usr_id = usr.usr_id"
222 . " LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id"
223 . " LEFT JOIN usr_data ud ON iassme.changer_id = ud.usr_id"
224 . " WHERE obj_id = " . $this->db->quote($obj_id, 'integer');
225 }

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
ilObjIndividualAssessment$iass
string | int[]$record

Implements ilIndividualAssessmentMembersStorage.

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

256 {
257 $sql = "DELETE FROM " . self::MEMBERS_TABLE . "\n"
258 . " WHERE obj_id = " . $this->db->quote($iass->getId(), 'integer') . "\n"
259 . " AND usr_id = " . $this->db->quote($record[ilIndividualAssessmentMembers::FIELD_USR_ID], 'integer');
260
261 $this->db->manipulate($sql);
262 }

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.

Parameters
ilIndividualAssessmentMember$member

Implements ilIndividualAssessmentMembersStorage.

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

141 {
142 $where = array("obj_id" => array("integer", $member->assessmentId())
143 , "usr_id" => array("integer", $member->id())
144 );
145 $event_time = $member->eventTime();
146 if (!is_null($event_time)) {
147 $event_time = $event_time->getTimestamp();
148 }
149
150 $values = [
152 ilIndividualAssessmentMembers::FIELD_EXAMINER_ID => array("integer", $member->examinerId()),
153 ilIndividualAssessmentMembers::FIELD_RECORD => array("text", $member->record()),
155 ilIndividualAssessmentMembers::FIELD_PLACE => array("text", $member->place()),
156 ilIndividualAssessmentMembers::FIELD_EVENTTIME => array("integer", $event_time),
157 ilIndividualAssessmentMembers::FIELD_NOTIFY => array("integer", $member->notify()),
158 ilIndividualAssessmentMembers::FIELD_FINALIZED => array("integer", $member->finalized()),
160 ilIndividualAssessmentMembers::FIELD_FILE_NAME => array("text", $member->fileName()),
162 ilIndividualAssessmentMembers::FIELD_CHANGER_ID => array("integer", $member->changerId()),
163 ilIndividualAssessmentMembers::FIELD_CHANGE_TIME => array("string", date("Y-m-d H:i:s"))
164 ];
165
166 $this->db->update(self::MEMBERS_TABLE, $values, $where);
167 }

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

ilIndividualAssessmentMembersStorageDB::$db
protected

◆ MEMBERS_TABLE

const ilIndividualAssessmentMembersStorageDB::MEMBERS_TABLE = "iass_members"

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