ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilSessionMembershipGUI.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5include_once './Services/Membership/classes/class.ilMembershipGUI.php';
6
18{
22 protected function getMailMemberRoles()
23 {
24 return new ilMailMemberSessionRoles();
25 }
26
27
35 protected function checkRbacOrPositionAccessBool($a_rbac_perm, $a_pos_perm, $a_ref_id = 0)
36 {
37 if (!$a_ref_id) {
38 $a_ref_id = $this->getParentObject()->getRefId();
39 }
40 return $this->checkPermissionBool($a_rbac_perm, $a_ref_id);
41 }
42
43
44
48 protected function initParticipantTemplate()
49 {
50 $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.sess_edit_members.html', 'Modules/Session');
51 }
52
57 protected function initWaitingList()
58 {
59 include_once './Modules/Session/classes/class.ilSessionWaitingList.php';
60 $wait = new ilSessionWaitingList($this->getParentObject()->getId());
61 return $wait;
62 }
63
67 protected function initParticipantTableGUI()
68 {
70 $this,
71 $this->getParentObject(),
72 'participants'
73 );
74 $table->init();
75 return $table;
76 }
77
81 protected function initSubscriberTable()
82 {
83 $subscriber = new ilSubscriberTableGUI($this, $this->getParentObject(), true, false);
84 $subscriber->setTitle($this->lng->txt('group_new_registrations'));
85 return $subscriber;
86 }
87
88
92 protected function updateMembers()
93 {
94 $this->checkPermission('manage_members');
95
96 $part = ilParticipants::getInstance($this->getParentObject()->getRefId());
97
98
99 $wait = new ilSessionWaitingList($this->getParentObject()->getId());
100 $waiting = $wait->getUserIds();
101
102 foreach ((array) $_REQUEST['visible_participants'] as $part_id) {
103 if (in_array($part_id, $waiting)) {
104 // so not update users on waiting list
105 continue;
106 }
107
108 $participated = (bool) $_POST['participated'][$part_id];
109 $registered = (bool) $_POST['registered'][$part_id];
110 $contact = (bool) $_POST['contact'][$part_id];
111 $excused = (bool) $_POST['excused'][$part_id];
112
113 if ($part->isAssigned($part_id)) {
114 if (!$participated && !$registered && !$contact) {
115 $part->delete($part_id);
116 }
117 } else {
118 if ($participated || $registered || $contact) {
119 $part->add($part_id, IL_SESS_MEMBER);
120 }
121 }
122 $event_part = new ilEventParticipants($this->getParentObject()->getId());
123 $event_part->setUserId($part_id);
124 $event_part->setMark(ilUtil::stripSlashes($_POST['mark'][$part_id]));
125 $event_part->setComment(ilUtil::stripSlashes($_POST['comment'][$part_id]));
126 $event_part->setNotificationEnabled($_POST['notification'][$part_id]);
127 $event_part->setParticipated($participated);
128 $event_part->setRegistered($registered);
129 $event_part->setContact($contact);
130 $event_part->setExcused($excused);
131 $event_part->updateUser();
132 }
133
134 ilUtil::sendSuccess($this->getLanguage()->txt('settings_saved'), true);
135 $this->getCtrl()->redirect($this, 'participants');
136 }
137
138
142 protected function confirmDeleteParticipants()
143 {
144 $participants = (array) $_POST['participants'];
145
146 if (!count($participants)) {
147 ilUtil::sendFailure($this->lng->txt('no_checkbox'), true);
148 $this->ctrl->redirect($this, 'participants');
149 }
150
151 include_once('./Services/Utilities/classes/class.ilConfirmationGUI.php');
152 $confirm = new ilConfirmationGUI();
153 $confirm->setFormAction($this->ctrl->getFormAction($this, 'confirmDeleteParticipants'));
154 $confirm->setHeaderText($this->lng->txt($this->getParentObject()->getType() . '_header_delete_members'));
155 $confirm->setConfirm($this->lng->txt('confirm'), 'deleteParticipants');
156 $confirm->setCancel($this->lng->txt('cancel'), 'participants');
157
158 foreach ($participants as $usr_id) {
159 $name = ilObjUser::_lookupName($usr_id);
160
161 $confirm->addItem(
162 'participants[]',
163 $name['user_id'],
164 $name['lastname'] . ', ' . $name['firstname'] . ' [' . $name['login'] . ']',
165 ilUtil::getImagePath('icon_usr.svg')
166 );
167 }
168
169 $this->tpl->setContent($confirm->getHTML());
170 }
171
180 protected function deleteParticipants()
181 {
182 $this->checkPermission('manage_members');
183
184 $participants = (array) $_POST['participants'];
185
186 if (!is_array($participants) or !count($participants)) {
187 ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
188 $this->ctrl->redirect($this, 'participants');
189 }
190
191 foreach ($participants as $part_id) {
192 // delete role assignment
193 $this->getMembersObject()->delete($part_id);
194 // delete further settings
195 $event_part = new ilEventParticipants($this->getParentObject()->getId());
196 $event_part->setUserId($part_id);
197 $event_part->setParticipated(false);
198 $event_part->setRegistered(false);
199 $event_part->setMark('');
200 $event_part->setComment('');
201 $event_part->updateUser();
202 }
203
204 ilUtil::sendSuccess($this->lng->txt($this->getParentObject()->getType() . "_members_deleted"), true);
205 $this->ctrl->redirect($this, "participants");
206
207 return true;
208 }
209
210
211
216 public function getPrintMemberData($a_members)
217 {
218 return $a_members;
219 }
220
221
225 protected function canAddOrSearchUsers()
226 {
227 return false;
228 }
229
230
231
237 public function getAttendanceListUserData($a_user_id, $a_filters)
238 {
239 $data = $this->getMembersObject()->getEventParticipants()->getUser($a_user_id);
240
241 if ($a_filters && $a_filters["registered"] && !$data["registered"]) {
242 return;
243 }
244
245 $data['registered'] = $data['registered'] ?
246 $this->lng->txt('yes') :
247 $this->lng->txt('no');
248 $data['participated'] = $data['participated'] ?
249 $this->lng->txt('yes') :
250 $this->lng->txt('no');
251
252 return $data;
253 }
254
259 protected function getMemberTabName()
260 {
261 return $this->lng->txt($this->getParentObject()->getType() . '_members');
262 }
263
264
265
269 protected function getMailContextOptions() : array
270 {
271 $context_options = [
273 'ref_id' => $this->getParentObject()->getRefId(),
274 'ts' => time()
275 ];
276
277 return $context_options;
278 }
279}
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
const IL_SESS_MEMBER
Confirmation screen class.
const CONTEXT_KEY
Session parameter for the context.
Class ilMailMemberSessionRoles.
Base class for member tab content.
checkPermissionBool($a_permission, $a_cmd='', $a_type='', $a_ref_id=0)
Check permission.
checkPermission($a_permission, $a_cmd="")
Check permission If not granted redirect to parent gui.
getParentObject()
Get parent object.
getMembersObject()
Get member object.
static _lookupName($a_user_id)
lookup user name
static getInstance($a_ref_id)
Get instance by ref_id.
GUI class for membership features.
getMemberTabName()
Get member tab name.
getAttendanceListUserData($a_user_id, $a_filters)
Callback from attendance list.
updateMembers()
update entries from member table
checkRbacOrPositionAccessBool($a_rbac_perm, $a_pos_perm, $a_ref_id=0)
No support for positions in sessions Check if rbac or position access is granted.
confirmDeleteParticipants()
Show confirmation screen for participants deletion.
initParticipantTemplate()
Init participant view template.
deleteParticipants()
Delete participants @global type $rbacreview @global type $rbacsystem @global type $ilAccess @global ...
canAddOrSearchUsers()
Check if current user is allowed to add / search users.bool
GUI class for course/group subscriptions.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
if($format !==null) $name
Definition: metadata.php:230
$data
Definition: storeScorm.php:23