5include_once 
'./Services/Table/classes/class.ilTable2GUI.php';
 
   57        $this->logger = 
$GLOBALS[
'DIC']->logger()->sess();
 
   59        $this->rep_object = $a_parent_obj;
 
   61        include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
   67        $this->parent_ref_id = 
$GLOBALS[
'DIC']->repositoryTree()->getParentId(
 
   71        $tree = 
$GLOBALS[
'DIC']->repositoryTree();
 
   72        if ($member_ref = $tree->checkForParentType($this->parent_ref_id, 
'grp')) {
 
   73            $this->member_ref_id = $member_ref;
 
   74        } elseif ($member_ref = $tree->checkForParentType($this->parent_ref_id, 
'crs')) {
 
   75            $this->member_ref_id = $member_ref;
 
   77            throw new \InvalidArgumentException(
"Error in tree structure. Session has no parent course/group ref_id: " . $this->
getRepositoryObject()->getRefId());
 
  115        $this->lng->loadLanguageModule(
'sess');
 
  116        $this->lng->loadLanguageModule(
'crs');
 
  117        $this->lng->loadLanguageModule(
'trac');
 
  118        $this->lng->loadLanguageModule(
'mmbr');
 
  131        $this->
enable(
'select_all');
 
  134        $this->
setFormAction($this->ctrl->getFormAction($this->getParentObject(), $this->getParentCmd()));
 
  136        $this->
setRowTemplate(
"tpl.sess_members_row.html", 
"Modules/Session");
 
  139        $this->
addColumn($this->lng->txt(
'name'), 
'name', 
'20%');
 
  140        $this->
addColumn($this->lng->txt(
'login'), 
'login', 
'10%');
 
  144            $this->
addColumn($all_cols[$col][
'txt'], $col);
 
  149            $this->
addColumn($this->lng->txt(
'event_tbl_registered'), 
'registered');
 
  156        $this->
addColumn($this->lng->txt(
'event_tbl_participated'), 
'participated');
 
  159            $this->
addColumn($this->lng->txt(
'sess_part_table_excused'), 
'excused');
 
  162        $this->
addColumn($this->lng->txt(
'sess_contact'), 
'contact');
 
  164            $this->
addColumn($this->lng->txt(
'notification'), 
'notification_checked');
 
  167        $this->
addColumn($this->lng->txt(
'trac_mark'), 
'mark');
 
  168        $this->
addColumn($this->lng->txt(
'trac_comment'), 
'comment');
 
  171        $this->
addMultiCommand(
'sendMailToSelectedUsers', $this->lng->txt(
'mmbr_btn_mail_selected_users'));
 
  172        $this->lng->loadLanguageModule(
'user');
 
  173        $this->
addMultiCommand(
'addToClipboard', $this->lng->txt(
'clipboard_add_btn'));
 
  185            $this->lng->txt(
'name')
 
  187        $this->current_filter[
'login'] = 
$login->getValue();
 
  199            $options[0] = $this->lng->txt(
'all_roles');
 
  201            $this->current_filter[
'roles'] = $role->getValue();
 
  206                'filter_registration',
 
  209                $this->lng->txt(
'sess_part_filter_registered')
 
  211            $this->current_filter[
'filter_registration'] = (bool) $reg->getChecked();
 
  214            'filter_participated',
 
  217            $this->lng->txt(
'sess_part_filter_participated')
 
  219        $this->current_filter[
'filter_participated'] = (bool) $participated->getChecked();
 
  233        self::$all_columns[
'roles'] = array(
 
  234            'txt' => $this->lng->txt(
'objs_role'),
 
  250        $all_participants = [];
 
  252        if ($all_possible_participants) {
 
  255            $user_query->setLimit(50000);
 
  256            $user_query->setUserFilter($all_possible_participants);
 
  257            $user_query->setTextFilter((
string) $this->current_filter[
'login']);
 
  258            $res = $user_query->query();
 
  259            $all_participants = 
$res[
'set'];
 
  263        foreach ($all_participants as $counter => $participant) {
 
  264            $usr_data = $this->
getParticipants()->getEventParticipants()->getUser($participant[
'usr_id']);
 
  267            $tmp_data[
'id'] = $participant[
'usr_id'];
 
  269            $tmp_data[
'name'] = $participant[
'lastname'];
 
  270            $tmp_data[
'lastname'] = $participant[
'lastname'];
 
  271            $tmp_data[
'firstname'] = $participant[
'firstname'];
 
  272            $tmp_data[
'login'] = $participant[
'login'];
 
  273            $tmp_data[
'mark'] = $usr_data[
'mark'];
 
  274            $tmp_data[
'comment'] = $usr_data[
'comment'];
 
  275            $tmp_data[
'participated'] = $this->
getParticipants()->getEventParticipants()->hasParticipated($participant[
'usr_id']);
 
  276            $tmp_data[
'registered'] = $this->
getParticipants()->getEventParticipants()->isRegistered($participant[
'usr_id']);
 
  277            $tmp_data[
'excused'] = $this->
getParticipants()->getEventParticipants()->isExcused((
int) $participant[
'usr_id']);
 
  278            $tmp_data[
'contact'] = $this->
getParticipants()->isContact($participant[
'usr_id']);
 
  280            $notificationShown = 
false;
 
  282                $notificationShown = 
true;
 
  284                $notificationCheckboxEnabled = 
true;
 
  286                    $notificationCheckboxEnabled = 
false;
 
  288                $tmp_data[
'notification_checkbox_enabled'] = $notificationCheckboxEnabled;
 
  289                $tmp_data[
'notification_checked'] = $usr_data[
'notification_enabled'];
 
  291            $tmp_data[
'show_notification'] = $notificationShown;
 
  295            foreach ($local_roles as $role_id => $role_name) {
 
  297                if (
$GLOBALS[
'DIC'][
'rbacreview']->isAssigned($participant[
'usr_id'], $role_id)) {
 
  298                    $tmp_data[
'role_ids'][] = $role_id;
 
  299                    $roles[] = $role_name;
 
  302            $tmp_data[
'roles'] = implode(
'<br />', $roles);
 
  321        return $part->getParticipants();
 
  331        foreach ($this->current_filter as $filter => $filter_value) {
 
  332            if (!$filter_value) {
 
  337                    if (!in_array($filter_value, $a_user_info[
'role_ids'])) {
 
  342                case 'filter_participated':
 
  343                    if (!$a_user_info[
'participated']) {
 
  348                case 'filter_registration':
 
  349                    if (!$a_user_info[
'registered']) {
 
  356            $this->logger->info(
'Filter: ' . $filter . 
' -> ' . $filter_value);
 
  370        $this->tpl->setVariable(
'VAL_POSTNAME', 
'participants');
 
  373            $this->tpl->setCurrentBlock(
'registered_col');
 
  374            $this->tpl->setVariable(
'VAL_ID', $a_set[
'id']);
 
  375            $this->tpl->setVariable(
'REG_CHECKED', $a_set[
'registered'] ? 
'checked="checked"' : 
'');
 
  376            $this->tpl->parseCurrentBlock();
 
  382                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  383                    $this->tpl->setVariable(
'VAL_CUST', (
string) $a_set[
'roles']);
 
  384                    $this->tpl->parseCurrentBlock();
 
  390        if (
true === $a_set[
'show_notification']) {
 
  391            $this->tpl->setCurrentBlock(
'notification_column');
 
  392            $this->tpl->setVariable(
'VAL_ID', $a_set[
'id']);
 
  393            $this->tpl->setVariable(
'NOTIFICATION_CHECKED', $a_set[
'notification_checked'] ? 
'checked="checked"' : 
'');
 
  395            $enableCheckbox = $a_set[
'notification_checkbox_enabled'];
 
  397            $this->tpl->setVariable(
'NOTIFICATION_ENABLED', $enableCheckbox ? 
'' : 
'disabled');
 
  398            $this->tpl->parseCurrentBlock();
 
  401        $this->tpl->setVariable(
'VAL_ID', $a_set[
'id']);
 
  402        $this->tpl->setVariable(
'LASTNAME', $a_set[
'lastname']);
 
  403        $this->tpl->setVariable(
'FIRSTNAME', $a_set[
'firstname']);
 
  404        $this->tpl->setVariable(
'LOGIN', $a_set[
'login']);
 
  405        $this->tpl->setVariable(
'MARK', $a_set[
'mark']);
 
  406        $this->tpl->setVariable(
'COMMENT', $a_set[
'comment']);
 
  407        $this->tpl->setVariable(
'PART_CHECKED', $a_set[
'participated'] ? 
'checked="checked"' : 
'');
 
  408        $this->tpl->setVariable(
'CONTACT_CHECKED', $a_set[
'contact'] ? 
'checked="checked"' : 
'');
 
  409        $this->tpl->setVariable(
'PART_CHECKED', $a_set[
'participated'] ? 
'checked="checked"' : 
'');
 
  411            $this->tpl->setVariable(
'EXCUSED_CHECKED', $a_set[
'excused'] ? 
'checked="checked"' : 
'');
 
  434        $review = 
$GLOBALS[
'DIC']->rbac()->review();
 
  436        $local_parent_roles = $review->getLocalRoles($this->member_ref_id);
 
  437        $this->logger->dump($local_parent_roles);
 
  439        $local_roles_info = [];
 
  440        foreach ($local_parent_roles as 
$index => $role_id) {
 
  445        return $local_roles_info;
 
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
An exception for terminatinating execution or to throw for unit testing.
static _getTranslation($a_role_title)
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static _lookupType($a_id, $a_reference=false)
lookup object type
static getInstance($a_ref_id)
Get instance by ref_id.
const NOTIFICATION_INHERIT_OPTION
Description of class class.
getSelectableColumns()
Get selectable columns.
collectParticipants()
Collect participants.
getParentLocalRoles()
Get local roles of parent object.
getParticipants()
Get participants.
__construct($a_parent_gui, ilObjSession $a_parent_obj, $a_parent_cmd)
isRegistrationEnabled()
Check if registration is enabled.
matchesFilterCriteria($a_user_info)
Check if user is filtered.
getSelectedColumns()
Get selected columns.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
setSelectAllCheckbox($a_select_all_checkbox, $a_select_all_on_top=false)
Set the name of the checkbox that should be toggled with a select all button.
setData($a_data)
set table data @access public
setRowTemplate($a_template, $a_template_dir="")
Set row template.
addMultiCommand($a_cmd, $a_text)
Add Command button.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
addFilterItemByMetaType($id, $type=self::FILTER_TEXT, $a_optional=false, $caption=null)
Add filter by standard type.
setFormName($a_formname="")
Set Form name.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
isColumnSelected($a_col)
Is given column selected?
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
enable($a_module_name)
enables particular modules of table
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
foreach($_POST as $key=> $value) $res