43 $this->parent_obj = $a_parent_obj;
44 $this->participants = $a_participants_object;
45 $this->waiting_list = $a_waiting_list;
48 $this->presets[
'name'] = array($lng->txt(
'name'),
true);
49 $this->presets[
'login'] = array($lng->txt(
'login'),
true);
50 $this->presets[
'email'] = array($lng->txt(
'email'));
52 $lng->loadLanguageModule(
'crs');
55 $roles = $this->participants->getRoles();
56 foreach(
$roles as $role_id)
59 switch(substr(
$title, 0, 8))
63 $this->
addRole($role_id, $lng->txt(
'event_tbl_admins'),
'admin');
67 $this->
addRole($role_id, $lng->txt(
'event_tbl_tutors'),
'tutor');
72 $this->
addRole($role_id, $lng->txt(
'event_tbl_members'),
'member');
77 $this->has_local_role =
true;
91 function addPreset($a_id, $a_caption, $a_selected =
false)
93 $this->presets[$a_id] = array($a_caption, $a_selected);
103 $this->pre_blanks[] = $a_caption;
114 $this->title = $a_title;
115 $this->description = $a_description;
125 protected function addRole($a_id, $a_caption, $a_type)
127 $this->role_data[$a_id] = array($a_caption, $a_type);
137 $this->roles = $a_role_ids;
149 $this->user_filters[$a_id] = array($a_caption, $a_checked);
161 $subscriber_ids = $this->participants->getSubscribers();
163 $user_ids = $subscriber_ids;
165 if($this->waiting_list)
167 $user_ids = array_merge($user_ids, $this->waiting_list->getUserIds());
170 if(
sizeof($user_ids))
172 foreach(array_unique($user_ids) as $user_id)
174 if(!isset($a_res[$user_id]))
178 $a_res[$user_id][
'login'] = $tmp_obj->getLogin();
179 $a_res[$user_id][
'name'] = $tmp_obj->getLastname().
', '.$tmp_obj->getFirstname();
180 $a_res[$user_id][
'email'] = $tmp_obj->getEmail();
182 if(in_array($user_id, $subscriber_ids))
184 $a_res[$user_id][
'status'] = $lng->txt(
'crs_subscriber');
188 $a_res[$user_id][
'status'] = $lng->txt(
'crs_waiting_list');
203 if(!implode(
"", $a_values))
209 foreach($a_values as $idx => $value)
211 $a_values[$idx] = trim($value);
212 if($a_values[$idx] ==
"")
214 unset($a_values[$idx]);
218 $this->blank_columns = $a_values;
228 $this->callback = $a_callback;
238 $this->
id = (string)$a_value;
251 $lng->loadLanguageModule(
'crs');
253 include_once(
'./Services/Form/classes/class.ilPropertyFormGUI.php');
255 $form->setFormAction($ilCtrl->getFormAction($this->parent_obj,$a_cmd));
256 $form->setTarget(
'_blank');
257 $form->setPreventDoubleSubmission(
false);
258 $form->setTitle($lng->txt(
'sess_gen_attendance_list'));
261 $title->setValue($this->title);
265 $desc->
setValue($this->description);
266 $form->addItem($desc);
268 if(
sizeof($this->presets))
271 $preset_value = array();
272 foreach($this->presets as
$id => $item)
277 $preset_value[] =
$id;
280 $preset->setValue($preset_value);
281 $form->addItem($preset);
284 $blank =
new ilTextInputGUI($lng->txt(
'event_blank_columns'),
'blank');
286 $form->addItem($blank);
288 if($this->pre_blanks)
290 $blank->setValue($this->pre_blanks);
294 $part->setTitle($lng->txt(
'event_participant_selection'));
295 $form->addItem($part);
298 foreach($this->role_data as $role_id =>
$role_data)
303 $form->addItem($chk);
307 if($this->waiting_list)
311 $form->addItem($chk);
315 $form->addItem($chk);
318 if($this->user_filters)
320 foreach($this->user_filters as $sub_id => $sub_item)
325 $sub->setChecked(
true);
327 $form->addItem($sub);
331 $form->addCommandButton($a_cmd,$lng->txt(
'sess_print_attendance_list'));
333 if($this->
id && $a_cmd)
335 include_once
"Services/User/classes/class.ilUserFormSettings.php";
337 $settings->deleteValue(
'desc');
338 $settings->exportToForm($form);
350 if($form->checkInput())
352 foreach(array_keys($this->presets) as
$id)
354 $this->presets[
$id][1] =
false;
356 foreach($form->getInput(
'preset') as $value)
358 if(isset($this->presets[$value]))
360 $this->presets[$value][1] =
true;
368 $this->
setTitle($form->getInput(
'title'), $form->getInput(
'desc'));
372 foreach(array_keys($this->role_data) as $role_id)
374 if($form->getInput(
'role_'.$role_id))
382 if($this->waiting_list)
384 $this->include_subscribers = (bool)$form->getInput(
'subscr');
385 $this->include_waiting_list = (bool)$form->getInput(
'wlist');
388 if($this->user_filters)
390 foreach(array_keys($this->user_filters) as $msub_id)
392 $this->user_filters[$msub_id][2] = $form->getInput(
"members_".$msub_id);
398 $form->setValuesByPost();
400 include_once
"Services/User/classes/class.ilUserFormSettings.php";
402 $settings->deleteValue(
'desc');
403 $settings->importFromForm($form);
418 $tpl->setBodyClass(
"ilBodyPrint");
422 $tpl->setVariable(
"LOCATION_STYLESHEET",$location_stylesheet);
424 $tpl->setVariable(
"BODY_ATTRIBUTES",
'onload="window.print()"');
437 $tpl =
new ilTemplate(
'tpl.attendance_list_print.html',
true,
true,
'Services/Membership');
444 $tpl->setVariable(
'TXT_TITLE', $this->title);
445 if($this->description)
447 $tpl->setVariable(
'TXT_DESCRIPTION', $this->description.
" (".$time.
")");
451 $tpl->setVariable(
'TXT_DESCRIPTION', $time);
457 $tpl->setCurrentBlock(
'head_item');
458 foreach($this->presets as
$id => $item)
462 $tpl->setVariable(
'TXT_HEAD', $item[0]);
463 $tpl->parseCurrentBlock();
467 if($this->blank_columns)
469 foreach($this->blank_columns as $blank)
471 $tpl->setVariable(
'TXT_HEAD', $blank);
472 $tpl->parseCurrentBlock();
479 $valid_user_ids = $filters = array();
483 if($this->has_local_role)
486 foreach($this->participants->getMembers() as $member_id)
488 foreach($this->participants->getAssignedRoles($member_id) as $role_id)
490 $members[$role_id][] = $member_id;
496 $members = $this->participants->getMembers();
499 foreach($this->roles as $role_id)
501 switch($this->role_data[$role_id][1])
504 $valid_user_ids = array_merge($valid_user_ids, $this->participants->getAdmins());
508 $valid_user_ids = array_merge($valid_user_ids, $this->participants->getTutors());
513 if(!$this->has_local_role)
515 $valid_user_ids = array_merge($valid_user_ids, (array)$members);
519 $valid_user_ids = array_merge($valid_user_ids, (array)$members[$role_id]);
526 if($this->include_subscribers)
528 $valid_user_ids = array_merge($valid_user_ids, $this->participants->getSubscribers());
531 if($this->include_waiting_list)
533 $valid_user_ids = array_merge($valid_user_ids, $this->waiting_list->getUserIds());
536 if($this->user_filters)
538 foreach($this->user_filters as $sub_id => $sub_item)
540 $filters[$sub_id] = (bool)$sub_item[2];
544 $valid_user_ids =
ilUtil::_sortIds(array_unique($valid_user_ids),
'usr_data',
'lastname',
'usr_id');
549 foreach($valid_user_ids as $user_id)
553 $user_data = call_user_func_array($this->callback, array($user_id, $filters));
559 $tpl->setCurrentBlock(
"row_preset");
560 foreach($this->presets as
$id => $item)
570 $value = $name[
"lastname"].
", ".$name[
"firstname"];
591 $value = (string)$user_data[$id];
594 $tpl->setVariable(
"TXT_PRESET", $value);
595 $tpl->parseCurrentBlock();
600 if($this->blank_columns)
604 $tpl->touchBlock(
'row_blank');
608 $tpl->touchBlock(
"member_row");
static _lookupName($a_user_id)
lookup user name
This class represents an option in a checkbox group.
Base class for course and group waiting lists.
setId($a_value)
Set id (used for user form settings)
__construct($a_parent_obj, ilParticipants $a_participants_object=null, ilWaitingList $a_waiting_list=null)
Constructor.
setTitle($a_title, $a_description=null)
Set titles.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
getFullscreenHTML()
render list in fullscreen mode
static _lookupTitle($a_id)
lookup object title
getNonMemberUserData(array &$a_res)
Get user data for subscribers and waiting list.
addBlank($a_caption)
Add blank column preset.
initForm($a_cmd="")
Init form.
Base class for attendance lists.
addPreset($a_id, $a_caption, $a_selected=false)
Add user field.
static _sortIds($a_ids, $a_table, $a_field, $a_id_name)
Function that sorts ids by a given table field using WHERE IN E.g: __sort(array(6,7),'usr_data','lastname','usr_id') => sorts by lastname.
setBlankColumns(array $a_values)
Add blank columns.
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
addRole($a_id, $a_caption, $a_type)
Add role.
_lookupLogin($a_user_id)
lookup login
_lookupEmail($a_user_id)
Lookup email.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
setCallback($a_callback)
Set participant detail callback.
setRoleSelection($a_role_ids)
Set role selection.
setValue($a_value)
Set Value.
getHTML()
render attendance list
addUserFilter($a_id, $a_caption, $a_checked=false)
Add user filter.
initFromForm()
Set list attributes from post values.