ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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()
270 {
271 $context_options = [];
272
273 $context_options =
274 [
276 'ref_id' => $this->getParentObject()->getRefId(),
277 'ts' => time()
278 ];
279 return $context_options;
280 }
281}
$_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.
getMailContextOptions()
Get mail context options.array
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