ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilCourseMembershipGUI Class Reference

Member-tab content. More...

+ Inheritance diagram for ilCourseMembershipGUI:
+ Collaboration diagram for ilCourseMembershipGUI:

Public Member Functions

 filterUserIdsByRbacOrPositionOfCurrentUser (array $a_user_ids)
 Filter user ids by access. More...
 
 assignMembers (array $a_usr_ids, string $a_type)
 callback from repository search gui More...
 
 getLocalTypeRole (bool $a_translation=false)
 
 readMemberData (array $usr_ids, array $columns, bool $skip_names=false)
 
 getAttendanceListUserData (int $user_id, array $filters=[])
 
- Public Member Functions inherited from ilMembershipGUI
 __construct (ilObjectGUI $repository_gui, ilObject $repository_obj)
 
 getParentGUI ()
 
 getParentObject ()
 
 getMembersObject ()
 
 filterUserIdsByRbacOrPositionOfCurrentUser (array $a_user_ids)
 Filter user ids by access. More...
 
 executeCommand ()
 
 getAttendanceListUserData (int $user_id, array $filters=[])
 
 updateParticipants ()
 update members More...
 
 createMailSignature ()
 Create Mail signature. More...
 
 addMemberTab (ilTabsGUI $tabs, bool $a_is_participant=false)
 
 readMemberData (array $usr_ids, array $columns)
 Required for member table guis. More...
 
 getLocalRoles ()
 
 confirmAssignSubscribers ()
 Show subscription confirmation. More...
 
 confirmRefuseSubscribers ()
 Refuse subscriber confirmation. More...
 
 assignSubscribers ()
 Do assignment of subscription request. More...
 
 confirmAssignFromWaitingList ()
 Assign from waiting list (confirmatoin) More...
 
 assignFromWaitingList ()
 Assign from waiting list. More...
 
 confirmRefuseFromList ()
 Refuse from waiting list (confirmation) More...
 

Protected Member Functions

 getMailMemberRoles ()
 
 getMailContextOptions ()
 
 showDeleteParticipantsConfirmationWithLinkedCourses (array $participants)
 Show deletion confirmation with linked courses. More...
 
 deleteParticipantsWithLinkedCourses ()
 
 initParticipantStatusFromPostFor (string $item_key)
 
 updateParticipantsStatus ()
 
 initParticipantTableGUI ()
 
 initEditParticipantTableGUI (array $participants)
 
 initParticipantTemplate ()
 
 updateLPFromStatus (int $a_member_id, bool $a_passed)
 
 initWaitingList ()
 
 getDefaultRole ()
 
 deliverCertificate ()
 
 getPrintMemberData (array $a_members)
 
- Protected Member Functions inherited from ilMembershipGUI
 initParticipantsFromPost ()
 
 initMemberIdFromGet ()
 
 initSubscribersFromPost ()
 
 initWaitingListIdsFromPost ()
 
 getLanguage ()
 
 getCtrl ()
 
 getLogger ()
 
 getMailMemberRoles ()
 
 checkPermissionBool (string $a_permission, string $a_cmd='', string $a_type='', int $a_ref_id=0)
 
 checkRbacOrPositionAccessBool (string $a_rbac_perm, string $a_pos_perm, int $a_ref_id=0)
 
 checkPermission (string $a_permission, string $a_cmd="")
 Check permission If not granted redirect to parent gui. More...
 
 checkRbacOrPermissionAccess (string $a_rbac_perm, string $a_pos_perm)
 check rbac or position access More...
 
 canAddOrSearchUsers ()
 Check if current user is allowed to add / search users. More...
 
 participants ()
 Show participant table, subscriber table, wating list table;. More...
 
 getParticipantTableTitle ()
 
 participantsApplyFilter ()
 Apply filter for participant table. More...
 
 participantsResetFilter ()
 reset participants filter More...
 
 editMember ()
 Edit one participant. More...
 
 editParticipants (array $post_participants=array())
 Edit participants. More...
 
 updateLPFromStatus (int $usr_id, bool $has_passed)
 
 confirmDeleteParticipants ()
 Show confirmation screen for participants deletion. More...
 
 deleteParticipants ()
 
 sendMailToSelectedUsers ()
 
 getMailContextOptions ()
 
 membersMap ()
 Members map. More...
 
 mailMembersBtn ()
 
 showParticipantsToolbar ()
 Show participants toolbar. More...
 
 showMemberExportToolbarButton (ilToolbarGUI $toolbar, ?string $a_back_cmd=null, bool $a_separator=false)
 
 showMailToMemberToolbarButton (ilToolbarGUI $toolbar, ?string $a_back_cmd=null, bool $a_separator=false)
 Show mail to member toolbar button. More...
 
 getDefaultCommand ()
 
 getMemberTabName ()
 
 setSubTabs (ilTabsGUI $tabs)
 Set sub tabs. More...
 
 parseSubscriberTable ()
 Parse table of subscription request. More...
 
 initSubscriberTable ()
 
 refuseSubscribers ()
 
 parseWaitingListTable ()
 Parse table of subscription request. More...
 
 refuseFromList ()
 refuse from waiting list More...
 
 addToClipboard ()
 Add selected users to user clipboard. More...
 
 getDefaultRole ()
 
 activateSubTab (string $a_sub_tab)
 
 printMembers ()
 
 printMembersOutput ()
 print members output More...
 
 printForMembersOutput ()
 print members output More...
 
 jump2UsersGallery ()
 
 initAttendanceList (bool $a_for_members=false)
 

Additional Inherited Members

- Protected Attributes inherited from ilMembershipGUI
GlobalHttpState $http
 
Factory $refinery
 
ilLanguage $lng
 
ilCtrlInterface $ctrl
 
ilLogger $logger
 
ilGlobalTemplateInterface $tpl
 
ilAccessHandler $access
 
ilParticipants $participants = null
 
ilObjUser $user
 
ilErrorHandling $error
 
ilTabsGUI $tabs
 
ilToolbarGUI $toolbar
 
ilRbacSystem $rbacsystem
 
ilRbacReview $rbacreview
 
ilTree $tree
 
array $member_data = []
 

Detailed Description

Member Function Documentation

◆ assignMembers()

ilCourseMembershipGUI::assignMembers ( array  $a_usr_ids,
string  $a_type 
)

callback from repository search gui

Definition at line 156 of file class.ilCourseMembershipGUI.php.

References $user_id, ilMembershipGUI\checkRbacOrPositionAccessBool(), ILIAS\Repository\ctrl(), filterUserIdsByRbacOrPositionOfCurrentUser(), ilObjectFactory\getInstanceByObjId(), ilLoggerFactory\getLogger(), ilMembershipGUI\getMembersObject(), ilMembershipGUI\getParentObject(), ilParticipants\IL_CRS_ADMIN, ilParticipants\IL_CRS_MEMBER, ilParticipants\IL_CRS_TUTOR, ILIAS\Repository\int(), ILIAS\Repository\lng(), and ilCourseMembershipMailNotification\TYPE_ADMISSION_MEMBER.

156  : bool
157  {
158  $a_type = (int) $a_type;
159  if (!$this->checkRbacOrPositionAccessBool('manage_members', 'manage_members')) {
160  $this->error->raiseError($this->lng->txt("msg_no_perm_read"), $this->error->FATAL);
161  }
162  if ($a_usr_ids === []) {
163  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("crs_no_users_selected"), true);
164  return false;
165  }
166  $a_usr_ids = $this->filterUserIdsByRbacOrPositionOfCurrentUser($a_usr_ids);
167 
168  $added_users = 0;
169  foreach ($a_usr_ids as $user_id) {
170  if (!$tmp_obj = ilObjectFactory::getInstanceByObjId($user_id, false)) {
171  continue;
172  }
173  if ($this->getMembersObject()->isAssigned($user_id)) {
174  continue;
175  }
176  switch ($a_type) {
177  case $this->getParentObject()->getDefaultMemberRole():
178  $this->getMembersObject()->add($user_id, ilParticipants::IL_CRS_MEMBER);
179  break;
180  case $this->getParentObject()->getDefaultTutorRole():
181  $this->getMembersObject()->add($user_id, ilParticipants::IL_CRS_TUTOR);
182  break;
183  case $this->getParentObject()->getDefaultAdminRole():
184  $this->getMembersObject()->add($user_id, ilParticipants::IL_CRS_ADMIN);
185  break;
186  default:
187  if (in_array($a_type, $this->getParentObject()->getLocalCourseRoles(true))) {
188  $this->getMembersObject()->add($user_id, ilParticipants::IL_CRS_MEMBER);
189  $this->getMembersObject()->updateRoleAssignments($user_id, (array) $a_type);
190  } else {
191  ilLoggerFactory::getLogger('crs')->notice('Can\'t find role with id .' . $a_type . ' to assign users.');
192  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("crs_cannot_find_role"), true);
193  return false;
194  }
195  break;
196  }
198 
199  $this->getParentObject()->checkLPStatusSync($user_id);
200 
201  ++$added_users;
202  }
203  if ($added_users) {
204  $this->tpl->setOnScreenMessage('success', $this->lng->txt("crs_users_added"), true);
205  $this->ctrl->redirect($this, 'participants');
206  }
207  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("crs_users_already_assigned"), true);
208  return false;
209  }
static getLogger(string $a_component_id)
Get component logger.
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
filterUserIdsByRbacOrPositionOfCurrentUser(array $a_user_ids)
Filter user ids by access.
checkRbacOrPositionAccessBool(string $a_rbac_perm, string $a_pos_perm, int $a_ref_id=0)
+ Here is the call graph for this function:

◆ deleteParticipantsWithLinkedCourses()

ilCourseMembershipGUI::deleteParticipantsWithLinkedCourses ( )
protected

Definition at line 88 of file class.ilCourseMembershipGUI.php.

References ilMembershipGUI\$participants, ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ilMembershipGUI\deleteParticipants(), ilParticipants\getInstance(), ilMembershipGUI\getMembersObject(), ilMembershipGUI\getParentObject(), ILIAS\FileDelivery\http(), ilMembershipGUI\initParticipantsFromPost(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), ilCourseMembershipMailNotification\TYPE_DISMISS_MEMBER, and ILIAS\Repository\user().

88  : void
89  {
91 
92  if (!is_array($participants) || $participants === []) {
93  $this->tpl->setOnScreenMessage('failure', $this->lng->txt("no_checkbox"), true);
94  $this->ctrl->redirect($this, 'participants');
95  }
96 
97  // If the user doesn't have the edit_permission and is not administrator, he may not remove
98  // members who have the course administrator role
99  if (
100  !$this->access->checkAccess('edit_permission', '', $this->getParentObject()->getRefId()) &&
101  !$this->getMembersObject()->isAdmin($this->user->getId())
102  ) {
103  foreach ($participants as $part) {
104  if ($this->getMembersObject()->isAdmin($part)) {
105  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('msg_no_perm_perm'), true);
106  $this->ctrl->redirect($this, 'participants');
107  }
108  }
109  }
110 
112  $this->tpl->setOnScreenMessage('failure', 'Error deleting participants.', true);
113  $this->ctrl->redirect($this, 'participants');
114  } else {
115  foreach ($this->initParticipantsFromPost() as $usr_id) {
116  $mail_type = 0;
117  switch ($this->getParentObject()->getType()) {
118  case 'crs':
120  break;
121  }
122  $this->getMembersObject()->sendNotification($mail_type, $usr_id);
123  }
124  }
125 
126  $refs = [];
127  if ($this->http->wrapper()->post()->has('refs')) {
128  $refs = $this->http->wrapper()->post()->retrieve(
129  'refs',
130  $this->refinery->kindlyTo()->dictOf(
131  $this->refinery->kindlyTo()->dictOf(
132  $this->refinery->kindlyTo()->int()
133  )
134  )
135  );
136  }
137 
138  // Delete course reference assignments
139  foreach ($refs as $usr_id => $usr_info) {
140  foreach ((array) $usr_info as $course_ref_id => $tmp) {
141  $part = ilParticipants::getInstance($course_ref_id);
142  $part->delete($usr_id);
143  }
144  }
145  $this->tpl->setOnScreenMessage(
146  'success',
147  $this->lng->txt($this->getParentObject()->getType() . "_members_deleted"),
148  true
149  );
150  $this->ctrl->redirect($this, "participants");
151  }
static getInstance(int $a_ref_id)
static http()
Fetches the global http state from ILIAS.
ilParticipants $participants
+ Here is the call graph for this function:

◆ deliverCertificate()

ilCourseMembershipGUI::deliverCertificate ( )
protected

Definition at line 341 of file class.ilCourseMembershipGUI.php.

References ilMembershipGUI\getParentGUI().

341  : void
342  {
343  $this->getParentGUI()->deliverCertificateObject();
344  }
+ Here is the call graph for this function:

◆ filterUserIdsByRbacOrPositionOfCurrentUser()

ilCourseMembershipGUI::filterUserIdsByRbacOrPositionOfCurrentUser ( array  $a_user_ids)

Filter user ids by access.

Parameters
int[]$a_user_ids
Returns
int[]

Definition at line 41 of file class.ilCourseMembershipGUI.php.

References $GLOBALS, and ilMembershipGUI\getParentObject().

Referenced by assignMembers().

41  : array
42  {
43  return $GLOBALS['DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
44  'manage_members',
45  'manage_members',
46  $this->getParentObject()->getRefId(),
47  $a_user_ids
48  );
49  }
$GLOBALS["DIC"]
Definition: wac.php:53
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAttendanceListUserData()

ilCourseMembershipGUI::getAttendanceListUserData ( int  $user_id,
array  $filters = [] 
)

Definition at line 452 of file class.ilCourseMembershipGUI.php.

References $user_id.

452  : array
453  {
454  if (is_array($this->member_data) && array_key_exists($user_id, $this->member_data)) {
455  return $this->member_data[$user_id];
456  }
457  return [];
458  }

◆ getDefaultRole()

ilCourseMembershipGUI::getDefaultRole ( )
protected

Definition at line 336 of file class.ilCourseMembershipGUI.php.

References ilMembershipGUI\getParentGUI().

336  : ?int
337  {
338  return $this->getParentGUI()->getObject()->getDefaultMemberRole();
339  }
+ Here is the call graph for this function:

◆ getLocalTypeRole()

ilCourseMembershipGUI::getLocalTypeRole ( bool  $a_translation = false)
Todo:
refactor delete

Definition at line 316 of file class.ilCourseMembershipGUI.php.

References ilMembershipGUI\getParentObject().

316  : array
317  {
318  return $this->getParentObject()->getLocalCourseRoles($a_translation);
319  }
+ Here is the call graph for this function:

◆ getMailContextOptions()

ilCourseMembershipGUI::getMailContextOptions ( )
protected

Definition at line 54 of file class.ilCourseMembershipGUI.php.

References ilContainer\_lookupContainerSetting(), ilMailFormCall\CONTEXT_KEY, ilObjectServiceSettingsGUI\EXTERNAL_MAIL_PREFIX, ILIAS\Survey\Mode\getId(), ilMembershipGUI\getParentObject(), ilCourseMailTemplateTutorContext\ID, and ilMail\PROP_CONTEXT_SUBJECT_PREFIX.

54  : array
55  {
56  return [
58  'ref_id' => $this->getParentObject()->getRefId(),
59  'ts' => time(),
61  $this->getParentObject()->getId(),
63  ''
64  ),
65  ];
66  }
const PROP_CONTEXT_SUBJECT_PREFIX
static _lookupContainerSetting(int $a_id, string $a_keyword, ?string $a_default_value=null)
+ Here is the call graph for this function:

◆ getMailMemberRoles()

ilCourseMembershipGUI::getMailMemberRoles ( )
protected

Definition at line 31 of file class.ilCourseMembershipGUI.php.

32  {
33  return new ilMailMemberCourseRoles();
34  }
Class ilMailMemberCourseRoles.
Class ilAbstractMailMemberRoles.

◆ getPrintMemberData()

ilCourseMembershipGUI::getPrintMemberData ( array  $a_members)
protected

Definition at line 346 of file class.ilCourseMembershipGUI.php.

References Vendor\Package\$f, ilObjUserTracking\_enabledLearningProgress(), ilObjUserTracking\_enabledUserRelatedData(), ilCourseUserData\_getValuesByObjId(), ilLPStatusWrapper\_lookupCompletedForObject(), ilLPStatusWrapper\_lookupFailedForObject(), ilLPStatusWrapper\_lookupInProgressForObject(), ilLearningProgress\_lookupProgressByObjId(), ilObjUser\_readUsersProfileData(), ilDatePresentation\formatDate(), ilSession\get(), ILIAS\Survey\Mode\getId(), ilObjectLP\getInstance(), ilPrivacySettings\getInstance(), ilObjectFactory\getInstanceByObjId(), ilMembershipGUI\getMembersObject(), ilMembershipGUI\getParentObject(), IL_CAL_UNIX, ILIAS\Repository\lng(), ilLPStatus\LP_STATUS_COMPLETED, ilLPStatus\LP_STATUS_FAILED, ilLPStatus\LP_STATUS_IN_PROGRESS, ilLPStatus\LP_STATUS_NOT_ATTEMPTED, ilDatePresentation\setUseRelativeDates(), and ilArrayUtil\sortArray().

346  : array
347  {
348  $this->lng->loadLanguageModule('trac');
349 
350  $is_admin = true;
351  $privacy = ilPrivacySettings::getInstance();
352 
353  if ($privacy->enabledCourseAccessTimes()) {
355  }
356 
357  $show_tracking =
359  if ($show_tracking) {
360  $olp = ilObjectLP::getInstance($this->getParentObject()->getId());
361  $show_tracking = $olp->isActive();
362  }
363 
364  if ($show_tracking) {
368  }
369 
370  $profile_data = ilObjUser::_readUsersProfileData($a_members);
371 
372  // course defined fields
374 
375  $print_member = [];
376  foreach ($a_members as $member_id) {
377  // GET USER OBJ
378  if ($tmp_obj = ilObjectFactory::getInstanceByObjId($member_id, false)) {
379  // udf
380  $udf_data = new ilUserDefinedData($member_id);
381  foreach ($udf_data->getAll() as $field => $value) {
382  list($f, $field_id) = explode('_', $field);
383  $print_member[$member_id]['udf_' . $field_id] = (string) $value;
384  }
385 
386  foreach ((array) ($cdfs[$member_id] ?? []) as $cdf_field => $cdf_value) {
387  $print_member[$member_id]['cdf_' . $cdf_field] = (string) $cdf_value;
388  }
389 
390  foreach ((array) $profile_data[$member_id] as $field => $value) {
391  $print_member[$member_id][$field] = $value;
392  }
393 
394  $print_member[$member_id]['login'] = $tmp_obj->getLogin();
395  $print_member[$member_id]['name'] = $tmp_obj->getLastname() . ', ' . $tmp_obj->getFirstname();
396 
397  if ($this->getMembersObject()->isAdmin($member_id)) {
398  $print_member[$member_id]['role'] = $this->lng->txt("il_crs_admin");
399  } elseif ($this->getMembersObject()->isTutor($member_id)) {
400  $print_member[$member_id]['role'] = $this->lng->txt("il_crs_tutor");
401  } elseif ($this->getMembersObject()->isMember($member_id)) {
402  $print_member[$member_id]['role'] = $this->lng->txt("il_crs_member");
403  }
404  if ($this->getMembersObject()->isAdmin($member_id) || $this->getMembersObject()->isTutor($member_id)) {
405  if ($this->getMembersObject()->isNotificationEnabled($member_id)) {
406  $print_member[$member_id]['status'] = $this->lng->txt("crs_notify");
407  } else {
408  $print_member[$member_id]['status'] = $this->lng->txt("crs_no_notify");
409  }
410  } else {
411  if ($this->getMembersObject()->isBlocked($member_id)) {
412  $print_member[$member_id]['status'] = $this->lng->txt("crs_blocked");
413  } else {
414  $print_member[$member_id]['status'] = $this->lng->txt("crs_unblocked");
415  }
416  }
417 
418  if ($is_admin) {
419  $print_member[$member_id]['passed'] = $this->getMembersObject()->hasPassed($member_id) ?
420  $this->lng->txt('crs_member_passed') :
421  $this->lng->txt('crs_member_not_passed');
422  }
423  if ($privacy->enabledCourseAccessTimes()) {
424  if (isset($progress[$member_id]['ts']) && $progress[$member_id]['ts']) {
426  $print_member[$member_id]['access'] = ilDatePresentation::formatDate(new ilDateTime(
427  $progress[$member_id]['ts'],
429  ));
431  } else {
432  $print_member[$member_id]['access'] = $this->lng->txt('no_date');
433  }
434  }
435  if ($show_tracking) {
436  if (in_array($member_id, $completed)) {
437  $print_member[$member_id]['progress'] = $this->lng->txt(ilLPStatus::LP_STATUS_COMPLETED);
438  } elseif (in_array($member_id, $in_progress)) {
439  $print_member[$member_id]['progress'] = $this->lng->txt(ilLPStatus::LP_STATUS_IN_PROGRESS);
440  } elseif (in_array($member_id, $failed)) {
441  $print_member[$member_id]['progress'] = $this->lng->txt(ilLPStatus::LP_STATUS_FAILED);
442  } else {
443  $print_member[$member_id]['progress'] = $this->lng->txt(ilLPStatus::LP_STATUS_NOT_ATTEMPTED);
444  }
445  }
446  }
447  }
448  $print_order = (string) (ilSession::get('crs_print_order') ?? '');
449  return ilArrayUtil::sortArray($print_member, 'name', $print_order, false, true);
450  }
static get(string $a_var)
static array static setUseRelativeDates(bool $a_status)
set use relative dates
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const LP_STATUS_NOT_ATTEMPTED
static _lookupInProgressForObject(int $a_obj_id, ?array $a_user_ids=null)
static _getValuesByObjId(int $a_obj_id)
const IL_CAL_UNIX
const LP_STATUS_IN_PROGRESS
static _lookupCompletedForObject(int $a_obj_id, ?array $a_user_ids=null)
const LP_STATUS_FAILED
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
static _readUsersProfileData(array $a_user_ids)
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ?ilObjUser $user=null,)
static _lookupProgressByObjId(int $a_obj_id)
lookup progress for a specific object
static _lookupFailedForObject(int $a_obj_id, ?array $a_user_ids=null)
const LP_STATUS_COMPLETED
static getInstance(int $obj_id)
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)
+ Here is the call graph for this function:

◆ initEditParticipantTableGUI()

ilCourseMembershipGUI::initEditParticipantTableGUI ( array  $participants)
protected

PhpParamsInspection

Definition at line 298 of file class.ilCourseMembershipGUI.php.

References ilMembershipGUI\getParentGUI(), ilMembershipGUI\getParentObject(), ILIAS\Repository\lng(), and readMemberData().

299  {
301  $table = new ilCourseEditParticipantsTableGUI($this, $this->getParentObject());
302  $table->setTitle($this->lng->txt($this->getParentObject()->getType() . '_header_edit_members'));
303  $table->setData($this->getParentGUI()->readMemberData($participants));
304 
305  return $table;
306  }
readMemberData(array $usr_ids, array $columns, bool $skip_names=false)
ilParticipants $participants
+ Here is the call graph for this function:

◆ initParticipantStatusFromPostFor()

ilCourseMembershipGUI::initParticipantStatusFromPostFor ( string  $item_key)
protected

Definition at line 211 of file class.ilCourseMembershipGUI.php.

References ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

Referenced by updateParticipantsStatus().

211  : array
212  {
213  if ($this->http->wrapper()->post()->has($item_key)) {
214  return $this->http->wrapper()->post()->retrieve(
215  $item_key,
216  $this->refinery->kindlyTo()->listOf(
217  $this->refinery->kindlyTo()->int()
218  )
219  );
220  }
221  return [];
222  }
static http()
Fetches the global http state from ILIAS.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initParticipantTableGUI()

ilCourseMembershipGUI::initParticipantTableGUI ( )
protected

Definition at line 277 of file class.ilCourseMembershipGUI.php.

References ilObjUserTracking\_enabledLearningProgress(), ilObjUserTracking\_enabledUserRelatedData(), ILIAS\Survey\Mode\getId(), ilObjectLP\getInstance(), ilMembershipGUI\getParentObject(), ilObjectActivation\hasTimings(), ilCourseConstants\IL_CRS_VIEW_TIMING, and ilObjCourse\STATUS_DETERMINATION_LP.

278  {
279  $show_tracking =
281  if ($show_tracking) {
282  $olp = ilObjectLP::getInstance($this->getParentObject()->getId());
283  $show_tracking = $olp->isActive();
284  }
285 
286  $timings_enabled =
287  (ilObjectActivation::hasTimings($this->getParentObject()->getRefId()) && ($this->getParentObject()->getViewMode() == ilCourseConstants::IL_CRS_VIEW_TIMING));
288 
289  return new ilCourseParticipantsTableGUI(
290  $this,
291  $this->getParentObject(),
292  $show_tracking,
293  $timings_enabled,
294  $this->getParentObject()->getStatusDetermination() == ilObjCourse::STATUS_DETERMINATION_LP
295  );
296  }
const STATUS_DETERMINATION_LP
static hasTimings(int $ref_id)
Check if there is any active timing (in subtree)
static getInstance(int $obj_id)
+ Here is the call graph for this function:

◆ initParticipantTemplate()

ilCourseMembershipGUI::initParticipantTemplate ( )
protected

Definition at line 308 of file class.ilCourseMembershipGUI.php.

308  : void
309  {
310  $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.crs_edit_members.html', 'components/ILIAS/Course');
311  }

◆ initWaitingList()

ilCourseMembershipGUI::initWaitingList ( )
protected

Definition at line 331 of file class.ilCourseMembershipGUI.php.

References ILIAS\Survey\Mode\getId(), and ilMembershipGUI\getParentObject().

+ Here is the call graph for this function:

◆ readMemberData()

ilCourseMembershipGUI::readMemberData ( array  $usr_ids,
array  $columns,
bool  $skip_names = false 
)

Definition at line 321 of file class.ilCourseMembershipGUI.php.

References ilMembershipGUI\getParentGUI().

Referenced by initEditParticipantTableGUI().

321  : array
322  {
323  return $this->getParentGUI()->readMemberData($usr_ids, $columns, $skip_names);
324  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showDeleteParticipantsConfirmationWithLinkedCourses()

ilCourseMembershipGUI::showDeleteParticipantsConfirmationWithLinkedCourses ( array  $participants)
protected

Show deletion confirmation with linked courses.

Parameters
int[]participants

Definition at line 72 of file class.ilCourseMembershipGUI.php.

References ilMembershipGUI\getParentObject(), and ILIAS\Repository\lng().

72  : void
73  {
74  $this->tpl->setOnScreenMessage('question', $this->lng->txt('crs_ref_delete_confirmation_info'));
75 
77  $this,
78  $this->getParentObject(),
79  'confirmDeleteParticipants'
80  );
81  $table->init();
82  $table->setParticipants($participants);
83  $table->parse();
84 
85  $this->tpl->setContent($table->getHTML());
86  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilParticipants $participants
+ Here is the call graph for this function:

◆ updateLPFromStatus()

ilCourseMembershipGUI::updateLPFromStatus ( int  $a_member_id,
bool  $a_passed 
)
protected

Definition at line 326 of file class.ilCourseMembershipGUI.php.

References ilMembershipGUI\getParentGUI().

Referenced by updateParticipantsStatus().

326  : void
327  {
328  $this->getParentGUI()->updateLPFromStatus($a_member_id, $a_passed);
329  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateParticipantsStatus()

ilCourseMembershipGUI::updateParticipantsStatus ( )
protected

Definition at line 224 of file class.ilCourseMembershipGUI.php.

References ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ilMembershipGUI\getMembersObject(), ILIAS\FileDelivery\http(), initParticipantStatusFromPostFor(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), ilCourseMembershipMailNotification\TYPE_BLOCKED_MEMBER, ilCourseMembershipMailNotification\TYPE_UNBLOCKED_MEMBER, and updateLPFromStatus().

224  : void
225  {
226  $visible_members = [];
227  if ($this->http->wrapper()->post()->has('visible_member_ids')) {
228  $visible_members = $this->http->wrapper()->post()->retrieve(
229  'visible_member_ids',
230  $this->refinery->kindlyTo()->listOf(
231  $this->refinery->kindlyTo()->int()
232  )
233  );
234  }
235  $passed = $this->initParticipantStatusFromPostFor('passed');
236  $blocked = $this->initParticipantStatusFromPostFor('blocked');
237  $contact = $this->initParticipantStatusFromPostFor('contact');
238  $notification = $this->initParticipantStatusFromPostFor('notification');
239 
240  foreach ($visible_members as $member_id) {
241  if ($this->access->checkAccess("grade", "", $this->getParentObject()->getRefId())) {
242  $this->getMembersObject()->updatePassed($member_id, in_array($member_id, $passed), true);
243  $this->updateLPFromStatus($member_id, in_array($member_id, $passed));
244  }
245 
246  if ($this->getMembersObject()->isAdmin($member_id) || $this->getMembersObject()->isTutor($member_id)) {
247  // remove blocked
248  $this->getMembersObject()->updateBlocked($member_id, false);
249  $this->getMembersObject()->updateNotification($member_id, in_array($member_id, $notification));
250  $this->getMembersObject()->updateContact($member_id, in_array($member_id, $contact));
251  } else {
252  // send notifications => unblocked
253  if ($this->getMembersObject()->isBlocked($member_id) && !in_array($member_id, $blocked)) {
254  $this->getMembersObject()->sendNotification(
256  $member_id
257  );
258  }
259  // => blocked
260  if (!$this->getMembersObject()->isBlocked($member_id) && in_array($member_id, $blocked)) {
261  $this->getMembersObject()->sendNotification(
263  $member_id
264  );
265  }
266 
267  // normal member => remove notification, contact
268  $this->getMembersObject()->updateNotification($member_id, false);
269  $this->getMembersObject()->updateContact($member_id, false);
270  $this->getMembersObject()->updateBlocked($member_id, in_array($member_id, $blocked));
271  }
272  }
273  $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'), true);
274  $this->ctrl->redirect($this, 'participants');
275  }
updateLPFromStatus(int $a_member_id, bool $a_passed)
initParticipantStatusFromPostFor(string $item_key)
static http()
Fetches the global http state from ILIAS.
+ Here is the call graph for this function:

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