58 $this->repository_object = $repository_obj;
60 $this->lng =
$GLOBALS[
'DIC']->language();
61 $this->lng->loadLanguageModule(
'crs');
63 $this->tpl =
$GLOBALS[
'DIC']->ui()->mainTemplate();
64 $this->ctrl =
$GLOBALS[
'DIC']->ctrl();
65 $this->logger = $DIC->logger()->mmbr();
66 $this->access =
$GLOBALS[
'DIC']->access();
119 return $this->participants;
144 return $this->access->checkAccess($a_permission, $a_cmd, $a_ref_id);
158 return $this->access->checkRbacOrPositionPermissionAccess($a_rbac_perm, $a_pos_perm, $a_ref_id);
215 public function executeCommand()
224 $ilAccess = $DIC[
'ilAccess'];
225 $rbacsystem = $DIC[
'rbacsystem'];
226 $ilTabs = $DIC[
'ilTabs'];
228 $cmd = $this->ctrl->getCmd(
'participants');
229 $next_class = $this->ctrl->getNextClass();
231 switch ($next_class) {
232 case 'ilrepositorysearchgui':
236 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
237 include_once
'./Services/Membership/classes/class.ilParticipants.php';
239 $rep_search->addUserAccessFilterCallable([$this,
'filterUserIdsByRbacOrPositionOfCurrentUser']);
243 $participants->isAdmin(
$GLOBALS[
'DIC'][
'ilUser']->getId()) ||
244 $ilAccess->checkAccess(
'manage_members',
'', $this->getParentObject()->getRefId())
246 $rep_search->setCallback(
253 $rep_search->setCallback(
261 $this->ctrl->setReturn($this,
'participants');
262 $ret = $this->ctrl->forwardCommand($rep_search);
266 case 'ilmailmembersearchgui':
267 $ilTabs->clearTargets();
268 $ilTabs->setBackTarget(
269 $this->lng->txt(
'btn_back'),
276 $ilAccess->checkAccess(
'manage_members',
"", $this->getParentObject()->getRefId())
278 !$rbacsystem->checkAccess(
280 $mail->getMailObjectReferenceId()
282 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"),
$ilErr->MESSAGE);
290 $mail_search->setObjParticipants(
293 $this->ctrl->forwardCommand($mail_search);
296 case 'ilusersgallerygui':
299 $tabs =
$GLOBALS[
'DIC']->tabs()->setSubTabActive(
312 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'),
$ilErr->MESSAGE);
318 require_once
'Services/User/Gallery/classes/class.ilUsersGalleryGUI.php';
319 require_once
'Services/User/Gallery/classes/class.ilUsersGalleryParticipants.php';
324 $this->ctrl->forwardCommand($gallery_gui);
327 case 'ilcourseparticipantsgroupsgui':
333 include_once
'./Modules/Course/classes/class.ilCourseParticipantsGroupsGUI.php';
335 if ($cmd ==
"show" || $cmd =
"") {
338 $this->ctrl->forwardCommand($cmg_gui);
341 case 'ilsessionoverviewgui':
346 include_once
'./Services/Membership/classes/class.ilParticipants.php';
349 include_once(
'./Modules/Session/classes/class.ilSessionOverviewGUI.php');
351 $this->ctrl->forwardCommand($overview);
354 case 'ilmemberexportgui':
359 include_once(
'./Services/Membership/classes/Export/class.ilMemberExportGUI.php');
361 $this->ctrl->forwardCommand($export);
364 case 'ilobjectcustomuserfieldsgui':
368 $this->activateSubTab($this->
getParentObject()->getType() .
"_member_administration");
369 $this->ctrl->setReturn($this,
'participants');
371 include_once
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
373 $this->ctrl->forwardCommand($cdf_gui);
382 $cmd ==
"mailMembersBtn" ||
383 $cmd ==
'membersMap' ||
384 $cmd ==
'printForMembersOutput' ||
385 $cmd ==
'jump2UsersGallery' 402 $this->initParticipantTemplate();
404 $this->activateSubTab($this->
getParentObject()->getType() .
"_member_administration");
409 $this->tpl->setVariable(
'TABLE_WAIT', $waiting->getHTML());
415 $this->tpl->setVariable(
'TABLE_SUB', $subscriber->getHTML());
419 $table = $this->initParticipantTableGUI();
420 $table->setTitle($this->lng->txt($this->getParentObject()->getType() .
'_mem_tbl_header'));
421 $table->setFormAction($this->ctrl->getFormAction($this));
425 $table->setFilterCommand(
'participantsApplyFilter');
426 $table->setResetCommand(
'participantsResetFilter');
428 $this->tpl->setVariable(
'MEMBERS', $table->getHTML());
436 $table = $this->initParticipantTableGUI();
437 $table->resetOffset();
438 $table->writeFilterToSession();
448 $table = $this->initParticipantTableGUI();
449 $table->resetOffset();
450 $table->resetFilter();
461 $this->activateSubTab($this->
getParentObject()->getType() .
"_member_administration");
471 if (!$post_participants) {
472 $post_participants = (array)
$_POST[
'participants'];
476 $participants = array_intersect((array) $post_participants, (array) $real_participants);
478 if (!count($participants)) {
480 $this->ctrl->redirect($this,
'participants');
482 $table = $this->initEditParticipantTableGUI($participants);
483 $this->tpl->setContent($table->getHTML());
498 $rbacsystem = $DIC[
'rbacsystem'];
499 $rbacreview = $DIC[
'rbacreview'];
501 $ilAccess = $DIC[
'ilAccess'];
503 if (!array_key_exists(
'participants',
$_POST) || !count(
$_POST[
'participants'])) {
505 $this->ctrl->redirect($this,
'participants');
508 $notifications =
$_POST[
'notification'] ?
$_POST[
'notification'] : array();
509 $passed =
$_POST[
'passed'] ?
$_POST[
'passed'] : array();
510 $blocked =
$_POST[
'blocked'] ?
$_POST[
'blocked'] : array();
511 $contact =
$_POST[
'contact'] ?
$_POST[
'contact'] : array();
514 $hasEditPermissionAccess =
516 $ilAccess->checkAccess(
'edit_permission',
'', $this->
getParentObject()->getRefId()) or
522 $assignableLocalRoles = array();
524 foreach ($this->getLocalTypeRole(
false) as $title => $role_id) {
525 $assignableLocalRoles[$role_id] = $title;
529 foreach (
$_POST[
'participants'] as $usr_id) {
530 $memberIsAdmin = $rbacreview->isAssigned($usr_id, $adminRoleId);
535 if (!$hasEditPermissionAccess && $memberIsAdmin &&
536 !in_array($adminRoleId,
$_POST[
'roles'][$usr_id])
538 $_POST[
'roles'][$usr_id][] = $adminRoleId;
542 foreach ((array)
$_POST[
'roles'][$usr_id] as $role_id) {
543 if (!array_key_exists($role_id, $assignableLocalRoles)) {
545 $this->ctrl->redirect($this,
'participants');
547 if (!$hasEditPermissionAccess &&
548 $role_id == $adminRoleId &&
551 $this->ctrl->redirect($this,
'participants');
558 if (!isset(
$_POST[
'roles'][$admin_id])) {
562 if (in_array($adminRoleId,
$_POST[
'roles'][$admin_id])) {
568 if (!$has_admin && is_array(
$_POST[
'roles'])) {
569 foreach (
$_POST[
'roles'] as $usrId => $roleIdsToBeAssigned) {
570 if (in_array($adminRoleId, $roleIdsToBeAssigned)) {
578 ilUtil::sendFailure($this->lng->txt($this->getParentObject()->getType() .
'_min_one_admin'),
true);
579 $this->ctrl->redirect($this,
'participants');
582 foreach (
$_POST[
'participants'] as $usr_id) {
597 $this->
getMembersObject()->updatePassed($usr_id, in_array($usr_id, $passed),
true);
607 in_array($usr_id, $contact)
614 $this->updateLPFromStatus($usr_id, in_array($usr_id, $passed));
616 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
617 $this->ctrl->redirect($this,
"participants");
627 $ilAccess = $DIC[
'ilAccess'];
630 $participants = (array)
$_POST[
'participants'];
632 if (!count($participants)) {
634 $this->ctrl->redirect($this,
'participants');
639 ilUtil::sendFailure($this->lng->txt($this->getParentObject()->getType() .
'_at_least_one_admin'),
true);
640 $this->ctrl->redirect($this,
'participants');
645 $this->lng->loadLanguageModule(
'rbac');
652 !$ilAccess->checkAccess(
655 $this->getParentObject()->getRefId()
659 foreach ($participants as $usr_id) {
662 $this->ctrl->redirect($this,
'participants');
668 $this->repository_object->getRefId(),
671 return $this->showDeleteParticipantsConfirmationWithLinkedCourses($participants);
674 include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
676 $confirm->setFormAction($this->ctrl->getFormAction($this,
'confirmDeleteParticipants'));
677 $confirm->setHeaderText($this->lng->txt($this->getParentObject()->getType() .
'_header_delete_members'));
678 $confirm->setConfirm($this->lng->txt(
'confirm'),
'deleteParticipants');
679 $confirm->setCancel($this->lng->txt(
'cancel'),
'participants');
681 foreach ($participants as $usr_id) {
687 $name[
'lastname'] .
', ' .
$name[
'firstname'] .
' [' .
$name[
'login'] .
']',
692 $this->tpl->setContent($confirm->getHTML());
699 $rbacreview = $DIC[
'rbacreview'];
700 $rbacsystem = $DIC[
'rbacsystem'];
701 $ilAccess = $DIC[
'ilAccess'];
704 $participants = (array)
$_POST[
'participants'];
706 if (!is_array($participants) or !count($participants)) {
708 $this->ctrl->redirect($this,
'participants');
714 !$ilAccess->checkAccess(
'edit_permission',
'', $this->getParentObject()->getRefId()) &&
717 foreach ($participants as $part) {
720 $this->ctrl->redirect($this,
'participants');
727 $this->ctrl->redirect($this,
'participants');
729 foreach ((array)
$_POST[
"participants"] as $usr_id) {
737 include_once
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
747 ilUtil::sendSuccess($this->lng->txt($this->getParentObject()->getType() .
"_members_deleted"),
true);
748 $this->ctrl->redirect($this,
"participants");
759 if (
$_POST[
'participants']) {
760 $participants = (array)
$_POST[
'participants'];
761 } elseif (
$_GET[
'member_id']) {
762 $participants = array(
$_GET[
'member_id']);
763 } elseif (
$_POST[
'subscribers']) {
764 $participants = (array)
$_POST[
'subscribers'];
765 } elseif (
$_POST[
'waiting']) {
766 $participants = (array)
$_POST[
'waiting'];
769 if (!count($participants)) {
771 $this->ctrl->redirect($this,
'participants');
774 foreach ($participants as $usr_id) {
802 $context_options = [];
803 return $context_options;
815 $this->activateSubTab($this->
getParentObject()->getType() .
"_members_map");
816 include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
822 $map->setMapId(
"course_map")
828 ->setEnableTypeControl(
true)
829 ->setEnableNavigationControl(
true)
830 ->setEnableCentralMarker(
true);
832 include_once
'./Services/Membership/classes/class.ilParticipants.php';
834 foreach ((array) $members as $user_id) {
835 $map->addUserMarker($user_id);
838 $tpl->setContent($map->getHTML());
839 $tpl->setLeftContent($map->getUserListHTML());
850 $ilToolbar = $DIC[
'ilToolbar'];
865 $ilToolbar = $DIC[
'ilToolbar'];
868 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
873 'auto_complete_name' => $this->lng->txt(
'user'),
876 'submit_name' => $this->lng->txt(
'add')
881 $ilToolbar->addSeparator();
884 $ilToolbar->addButton(
885 $this->lng->txt($this->getParentObject()->getType() .
"_search_users"),
886 $this->ctrl->getLinkTargetByClass(
887 'ilRepositorySearchGUI',
893 $ilToolbar->addSeparator();
897 $ilToolbar->addButton(
898 $this->lng->txt($this->getParentObject()->getType() .
"_print_list"),
899 $this->ctrl->getLinkTarget($this,
'printMembers')
921 $this->ctrl->setParameter($this,
"back_cmd", $a_back_cmd);
924 $this->lng->txt($this->getParentObject()->getType() .
'_print_list'),
925 $this->ctrl->getLinkTarget($this,
'printForMembersOutput')
942 $rbacsystem = $DIC[
'rbacsystem'];
943 $ilAccess = $DIC[
'ilAccess'];
944 include_once
'Services/Mail/classes/class.ilMail.php';
950 $ilAccess->checkAccess(
'manage_members',
"", $this->
getParentObject()->getRefId()) &&
951 $rbacsystem->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())
959 $this->ctrl->setParameter($this,
"back_cmd", $a_back_cmd);
963 $this->lng->txt(
"mail_members"),
964 $this->ctrl->getLinkTargetByClass(
'ilMailMemberSearchGUI',
'')
989 if ($has_manage_members_permission) {
990 return 'participants';
994 return 'jump2UsersGallery';
996 return 'mailMembersBtn';
1008 $ilAccess = $DIC->access();
1011 if (!$ilAccess->checkAccess(
'read',
'', $this->getParentObject()->getRefId())) {
1016 include_once
'./Services/Mail/classes/class.ilMail.php';
1027 if ($has_manage_members_permission) {
1031 $this->ctrl->getLinkTarget($this,
'')
1034 (
bool) $this->
getParentObject()->getShowMembers() && $a_is_participant
1039 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilusersgallerygui'),
'view')
1043 $GLOBALS[
'DIC'][
'rbacsystem']->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId()) &&
1049 $this->ctrl->getLinkTarget($this,
"mailMembersBtn")
1060 return $this->lng->txt(
'members');
1070 $ilAccess = $DIC[
'ilAccess'];
1075 $this->ctrl->getLinkTarget($this,
'participants'),
1083 "crs_members_groups",
1084 $this->ctrl->getLinkTargetByClass(
"ilCourseParticipantsGroupsGUI",
"show"),
1086 "ilCourseParticipantsGroupsGUI" 1090 $tree = $DIC->repositoryTree();
1091 $children = (array) $tree->getSubTree($tree->getNodeData($this->getParentObject()->getRefId()),
false,
'sess');
1092 if (count($children)) {
1095 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilsessionoverviewgui'),
'listSessions'),
1097 'ilsessionoverviewgui' 1103 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilUsersGalleryGUI')),
1111 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilUsersGalleryGUI')),
1117 include_once
'./Services/Maps/classes/class.ilMapUtil.php';
1121 $this->ctrl->getLinkTarget($this,
'membersMap'),
1127 include_once
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
1131 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilmemberexportgui'),
'show'),
1145 return $this->
getParentGUI()->readMemberData($usr_ids, $columns);
1164 if (!count($filtered_subscribers)) {
1168 $subscriber->readSubscriberData(
1169 $filtered_subscribers
1179 $subscriber = new \ilSubscriberTableGUI($this, $this->
getParentObject(),
true,
true);
1180 $subscriber->setTitle($this->lng->txt(
'group_new_registrations'));
1190 if (!is_array(
$_POST[
"subscribers"])) {
1192 $this->ctrl->redirect($this,
'participants');
1195 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
1199 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"assignSubscribers"));
1200 $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
1201 $c_gui->setCancel($this->lng->txt(
"cancel"),
"participants");
1202 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"assignSubscribers");
1204 foreach (
$_POST[
"subscribers"] as $subscribers) {
1210 $name[
'lastname'] .
', ' .
$name[
'firstname'] .
' [' .
$name[
'login'] .
']',
1215 $this->tpl->setContent($c_gui->getHTML());
1225 if (!is_array(
$_POST[
"subscribers"])) {
1227 $this->ctrl->redirect($this,
'participants');
1230 $this->lng->loadLanguageModule(
'mmbr');
1232 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
1236 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"refuseSubscribers"));
1237 $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
1238 $c_gui->setCancel($this->lng->txt(
"cancel"),
"participants");
1239 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"refuseSubscribers");
1241 foreach (
$_POST[
"subscribers"] as $subscribers) {
1247 $name[
'lastname'] .
', ' .
$name[
'firstname'] .
' [' .
$name[
'login'] .
']',
1252 $this->tpl->setContent($c_gui->getHTML());
1265 $rbacsystem = $DIC[
'rbacsystem'];
1267 if (!
$_POST[
'subscribers']) {
1269 $this->ctrl->redirect($this,
'participants');
1274 $this->ctrl->redirect($this,
'participants');
1276 foreach (
$_POST[
'subscribers'] as $usr_id) {
1281 include_once
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
1290 $noti->setRecipients(array($usr_id));
1303 ilUtil::sendSuccess($this->lng->txt(
"crs_subscribers_deleted"),
true);
1304 $this->ctrl->redirect($this,
'participants');
1319 if (!is_array(
$_POST[
"subscribers"])) {
1321 $this->ctrl->redirect($this,
'participants');
1326 $this->ctrl->redirect($this,
'participants');
1328 foreach (
$_POST[
"subscribers"] as $usr_id) {
1334 include_once
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
1342 include_once
'./Modules/Session/classes/class.ilSessionMembershipMailNotification.php';
1345 $noti->setRecipients(array($usr_id));
1351 ilUtil::sendSuccess($this->lng->txt(
"crs_subscribers_assigned"),
true);
1352 $this->ctrl->redirect($this,
'participants');
1361 $wait = $this->initWaitingList();
1364 if (!count($wait_users)) {
1368 include_once
'./Services/Membership/classes/class.ilWaitingListTableGUI.php';
1370 $waiting_table->setUserIds(
1373 $waiting_table->readUserData();
1374 $waiting_table->setTitle($this->lng->txt(
'crs_waiting_list'));
1376 return $waiting_table;
1385 if (!is_array(
$_POST[
"waiting"])) {
1387 $this->ctrl->redirect($this,
'participants');
1391 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
1395 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"assignFromWaitingList"));
1396 $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
1397 $c_gui->setCancel($this->lng->txt(
"cancel"),
"participants");
1398 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"assignFromWaitingList");
1400 foreach (
$_POST[
"waiting"] as $waiting) {
1406 $name[
'lastname'] .
', ' .
$name[
'firstname'] .
' [' .
$name[
'login'] .
']',
1411 $this->tpl->setContent($c_gui->getHTML());
1422 if (!array_key_exists(
'waiting',
$_POST) || !count(
$_POST[
"waiting"])) {
1424 $this->ctrl->redirect($this,
'participants');
1427 $waiting_list = $this->initWaitingList();
1430 foreach (
$_POST[
"waiting"] as $user_id) {
1444 include_once
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
1456 $noti->setRecipients(array($user_id));
1461 $waiting_list->removeFromList($user_id);
1466 ilUtil::sendSuccess($this->lng->txt(
"crs_users_added"),
true);
1467 $this->ctrl->redirect($this,
'participants');
1470 $this->ctrl->redirect($this,
'participants');
1480 if (!is_array(
$_POST[
"waiting"])) {
1482 $this->ctrl->redirect($this,
'participants');
1485 $this->lng->loadLanguageModule(
'mmbr');
1487 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
1491 $c_gui->setFormAction($this->ctrl->getFormAction($this,
"refuseFromList"));
1492 $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
1493 $c_gui->setCancel($this->lng->txt(
"cancel"),
"participants");
1494 $c_gui->setConfirm($this->lng->txt(
"confirm"),
"refuseFromList");
1496 foreach (
$_POST[
"waiting"] as $waiting) {
1502 $name[
'lastname'] .
', ' .
$name[
'firstname'] .
' [' .
$name[
'login'] .
']',
1507 $this->tpl->setContent($c_gui->getHTML());
1519 if (!array_key_exists(
'waiting',
$_POST) || !count(
$_POST[
'waiting'])) {
1521 $this->ctrl->redirect($this,
'participants');
1524 $waiting_list = $this->initWaitingList();
1526 foreach (
$_POST[
"waiting"] as $user_id) {
1527 $waiting_list->removeFromList($user_id);
1533 include_once
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
1541 include_once
'./Modules/Session/classes/class.ilSessionMembershipMailNotification.php';
1544 $noti->setRecipients(array($user_id));
1549 ilUtil::sendSuccess($this->lng->txt(
'crs_users_removed_from_list'),
true);
1550 $this->ctrl->redirect($this,
'participants');
1560 if (isset(
$_POST[
'participants'])) {
1561 $users = (array)
$_POST[
'participants'];
1562 } elseif (isset(
$_POST[
'subscribers'])) {
1563 $users = (array)
$_POST[
'subscribers'];
1564 } elseif (isset(
$_POST[
'waiting'])) {
1565 $users = (array)
$_POST[
'waiting'];
1568 if (!count($users)) {
1570 $this->ctrl->redirect($this,
'participants');
1572 include_once
'./Services/User/classes/class.ilUserClipboard.php';
1577 $this->lng->loadLanguageModule(
'user');
1578 ilUtil::sendSuccess($this->lng->txt(
'clipboard_user_added'),
true);
1579 $this->ctrl->redirect($this,
'participants');
1593 protected function activateSubTab($a_sub_tab)
1599 $tabs->activateSubTab($a_sub_tab);
1613 $ilTabs = $DIC[
'ilTabs'];
1617 $ilTabs->clearTargets();
1619 $ilTabs->setBackTarget(
1620 $this->lng->txt(
'back'),
1621 $this->ctrl->getLinkTarget($this,
'participants')
1624 $list = $this->initAttendanceList();
1625 $form = $list->initForm(
'printMembersOutput');
1626 $this->tpl->setContent($form->getHTML());
1636 $tabs = $DIC->tabs();
1637 $tabs->clearTargets();
1638 $tabs->setBackTarget(
1639 $this->lng->txt(
'back'),
1640 $this->ctrl->getLinkTarget($this,
'participants')
1643 $list = $this->initAttendanceList();
1644 $list->initFromForm();
1645 $list->setCallback(array($this,
'getAttendanceListUserData'));
1646 $this->member_data = $this->getPrintMemberData(
1652 $list->getNonMemberUserData($this->member_data);
1653 $list->getFullscreenHTML();
1663 $tabs = $DIC->tabs();
1664 $tabs->clearTargets();
1665 $tabs->setBackTarget(
1666 $this->lng->txt(
'back'),
1667 $this->ctrl->getLinkTarget($this,
'jump2UsersGallery')
1670 $list = $this->initAttendanceList();
1671 $list->setTitle($this->lng->txt(
'obj_' . $this->getParentObject()->getType()) .
': ' . $this->
getParentObject()->getTitle());
1673 $form = $list->initForm(
'printForMembersOutput');
1674 $list->initFromForm();
1675 $list->setCallback(array($this,
'getAttendanceListUserData'));
1676 $this->member_data = $this->getPrintMemberData($this->
getMembersObject()->getParticipants());
1677 $list->getNonMemberUserData($this->member_data);
1679 $list->getFullscreenHTML();
1687 $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
1696 protected function initAttendanceList($a_for_members =
false)
1703 $waiting_list = $this->initWaitingList();
1706 $member_id = $DIC->repositoryTree()->checkForParentType(
1711 $member_id = $DIC->repositoryTree()->checkForParentType(
1717 $DIC->logger()->sess()->warning(
'Cannot find parent course or group for ref_id: ' . $this->
getParentObject()->getRefId());
1729 include_once
'Services/Membership/classes/class.ilAttendanceList.php';
1740 $this->lng->txt($this->getParentObject()->getType() .
'_members_print_title'),
1741 $this->lng->txt(
'obj_' . $this->getParentObject()->getType()) .
': ' . $this->
getParentObject()->getTitle()
1744 include_once
'./Services/Tracking/classes/class.ilObjUserTracking.php';
1747 if ($show_tracking) {
1748 include_once(
'./Services/Object/classes/class.ilObjectLP.php');
1750 $show_tracking = $olp->isActive();
1752 if ($show_tracking) {
1753 $list->addPreset(
'progress', $this->lng->txt(
'learning_progress'),
true);
1756 include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
1761 if ($privacy->enabledAccessTimesByType($this->getParentObject()->getType())) {
1762 $list->addPreset(
'access', $this->lng->txt(
'last_access'),
true);
1767 $list->addPreset(
'status', $this->lng->txt(
'crs_status'),
true);
1768 $list->addPreset(
'passed', $this->lng->txt(
'crs_passed'),
true);
1772 $list->addPreset(
'mark', $this->lng->txt(
'trac_mark'),
true);
1773 $list->addPreset(
'comment', $this->lng->txt(
'trac_comment'),
true);
1775 $list->addPreset(
'registered', $this->lng->txt(
'event_tbl_registered'),
true);
1777 $list->addPreset(
'participated', $this->lng->txt(
'event_tbl_participated'),
true);
1778 $list->addBlank($this->lng->txt(
'sess_signature'));
1780 $list->addUserFilter(
'registered', $this->lng->txt(
'event_list_registered_only'));
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
readMemberData(array $usr_ids, array $columns)
Required for member table guis.
Class ilCourseParticipantsGroupsGUI.
setSubTabs(ilTabsGUI $tabs)
Set sub tabs.
Base class for member tab content.
confirmDeleteParticipants()
Show confirmation screen for participants deletion.
addSubTabTarget( $a_text, $a_link, $a_cmd="", $a_cmdClass="", $a_frame="", $a_activate=false, $a_dir_text=false)
DEPRECATED.
const TYPE_DISMISS_MEMBER
static getInstance($a_usr_id)
Get singelton instance.
printMembersOutput()
print members output
addToClipboard()
Add selected users to user clipboard.
const TYPE_ACCEPTED_SUBSCRIPTION_MEMBER
printMembers()
Print members.
getMembersObject()
Get member object.
const TYPE_DISMISS_MEMBER
getMailContextOptions()
Get mail context options.
updateParticipants()
update members
assignFromWaitingList()
Assign from waiting list type $rbacsystem.
const TYPE_REFUSED_SUBSCRIPTION_MEMBER
checkPermissionBool($a_permission, $a_cmd='', $a_type='', $a_ref_id=0)
Check permission.
participantsResetFilter()
reset participants filter
ilUsersGalleryGUI: ilPublicUserProfileGUI ilUsersGalleryGUI: ilCourseMembershipGUI, ilGroupMembershipGUI
confirmAssignSubscribers()
Show subscription confirmation.
editMember()
Edit one participant.
__construct(ilObjectGUI $repository_gui, ilObject $repository_obj)
Constructor.
Class ilMailMemberSearchGUI.
printForMembersOutput()
print members output
checkPermission($a_permission, $a_cmd="")
Check permission If not granted redirect to parent gui.
parseWaitingListTable()
Parse table of subscription request.
static isReferenceMemberUpdateConfirmationRequired(int $course_ref_id, array $participants)
Base class for attendance lists.
getLocalRoles()
Get parent roles.
static getInstance($a_ref_id)
Get instance by ref_id.
refuseSubscribers()
Refuse subscribers type $rbacsystem.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
showMailToMemberToolbarButton(ilToolbarGUI $toolbar, $a_back_cmd=null, $a_separator=false)
Show mail to member toolbar button.
static _enabledUserRelatedData()
check wether user related tracking is enabled or not
static _enabledLearningProgress()
check wether learing progress is enabled or not
static getMapGUI()
Get an instance of the GUI class.
assignSubscribers()
Do assignment of subscription request type $rbacsystem type $ilErr.
GUI class for membership features.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
Class ilObjectGUI Basic methods of all Output classes.
checkRbacOrPermissionAccess($a_rbac_perm, $a_pos_perm)
check rbac or position access
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
GUI class for course/group subscriptions.
sendMailToSelectedUsers()
Send mail to selected users.
getParentGUI()
Get parent gui.
confirmAssignFromWaitingList()
Assign from waiting list (confirmatoin)
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
Class ilUsersGalleryParticipants.
const TYPE_REFUSED_SUBSCRIPTION_MEMBER
showParticipantsToolbar()
Show participants toolbar.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
GUI class for membership features.
showMemberExportToolbarButton(ilToolbarGUI $toolbar, $a_back_cmd=null, $a_separator=false)
Show member export button.
confirmRefuseSubscribers()
Refuse subscriber confirmation.
static isActivated()
Checks whether Map feature is activated.
parseSubscriberTable()
Parse table of subscription request.
const TYPE_REFUSED_SUBSCRIPTION_MEMBER
const TYPE_ACCEPTED_SUBSCRIPTION_MEMBER
mailMembersBtn()
Mail to members view type $ilToolbar.
getDefaultCommand()
Get default command.
GUI class for course/group waiting list.
addMemberTab(ilTabsGUI $tabs, $a_is_participant=false)
add member tab
participants()
Show participant table, subscriber table, wating list table;.
addTab($a_id, $a_text, $a_link, $a_frame="")
Add a Tab.
refuseFromList()
refuse from waiting list
static _getInstance()
Get instance of ilPrivacySettings.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
getParentObject()
Get parent object.
editParticipants($post_participants=array())
Edit participants.
confirmRefuseFromList()
Refuse from waiting list (confirmation)
getMemberTabName()
Get member tab name.
filterUserIdsByRbacOrPositionOfCurrentUser($a_user_ids)
Filter user ids by access.
static redirect($a_script)
static getInstance($a_obj_id)
canAddOrSearchUsers()
Check if current user is allowed to add / search users.
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
checkRbacOrPositionAccessBool($a_rbac_perm, $a_pos_perm, $a_ref_id=0)
Check if rbac or position access is granted.
GUI class for learning sequence membership features.
participantsApplyFilter()
Apply filter for participant table.
Confirmation screen class.