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);
 
  285                $blank->setMulti(
true);         
 
  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");
 
Base class for attendance lists.
setCallback($a_callback)
Set participant detail callback.
getHTML()
render attendance list
initForm($a_cmd="")
Init form.
addRole($a_id, $a_caption, $a_type)
Add role.
addPreset($a_id, $a_caption, $a_selected=false)
Add user field.
setRoleSelection($a_role_ids)
Set role selection.
addBlank($a_caption)
Add blank column preset.
setTitle($a_title, $a_description=null)
Set titles.
getFullscreenHTML()
render list in fullscreen mode
getNonMemberUserData(array &$a_res)
Get user data for subscribers and waiting list.
__construct($a_parent_obj, ilParticipants $a_participants_object=null, ilWaitingList $a_waiting_list=null)
Constructor.
addUserFilter($a_id, $a_caption, $a_checked=false)
Add user filter.
setBlankColumns(array $a_values)
Add blank columns.
setId($a_value)
Set id (used for user form settings)
initFromForm()
Set list attributes from post values.
This class represents an option in a checkbox group.
_lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
_lookupEmail($a_user_id)
Lookup email.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static _lookupTitle($a_id)
lookup object title
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
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,...
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
Base class for course and group waiting lists.