5include_once 
'./Services/Membership/classes/class.ilParticipantsTableGUI.php';
 
   39        $a_show_learning_progress = 
false,
 
   40        $a_show_timings = 
false,
 
   41        $a_show_lp_status_sync = 
false,
 
   49        $this->show_learning_progress = $a_show_learning_progress;
 
   50        if ($this->show_learning_progress) {
 
   51            include_once 
'./Services/Tracking/classes/class.ilLPStatus.php';
 
   54        if (
null === $preloader) {
 
   57        $this->preLoader = $preloader;
 
   59        $this->show_timings = $a_show_timings;
 
   60        $this->show_lp_status_sync = $a_show_lp_status_sync;
 
   65        include_once(
"Services/Tracking/classes/class.ilObjUserTracking.php");
 
   67            $this->show_lp_status_sync = 
false;
 
   71        $this->lng->loadLanguageModule(
'crs');
 
   72        $this->lng->loadLanguageModule(
'trac');
 
   73        $this->lng->loadLanguageModule(
'rbac');
 
   74        $this->lng->loadLanguageModule(
'mmbr');
 
   75        $this->lng->loadLanguageModule(
'cert');
 
   79        include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
   82        include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
   88        parent::__construct($a_parent_obj, 
'participants');
 
   95        $this->
addColumn($this->lng->txt(
'name'), 
'name', 
'20%');
 
   99            $this->
addColumn($all_cols[$col][
'txt'], $col);
 
  102        if ($this->show_learning_progress) {
 
  103            $this->
addColumn($this->lng->txt(
'learning_progress'), 
'progress');
 
  106        if ($this->privacy->enabledCourseAccessTimes()) {
 
  107            $this->
addColumn($this->lng->txt(
'last_access'), 
'access_ut', 
'16em');
 
  110        $this->
addColumn($this->lng->txt(
'crs_member_passed'), 
'passed');
 
  111        if ($this->show_lp_status_sync) {
 
  112            $this->
addColumn($this->lng->txt(
'crs_member_passed_status_changed'), 
'passed_info');
 
  117        $this->
addColumn($this->lng->txt(
'crs_mem_contact'), 
'contact');
 
  118        $this->
addColumn($this->lng->txt(
'crs_blocked'), 
'blocked');
 
  119        $this->
addColumn($this->lng->txt(
'crs_notification_list_title'), 
'notification');
 
  121        $this->
addColumn($this->lng->txt(
''), 
'optional');
 
  123        $this->
setRowTemplate(
"tpl.show_participants_row.html", 
"Modules/Course");
 
  129        $this->
enable(
'select_all');
 
  144        $lng->loadLanguageModule(
'certificate');
 
  147        $this->
addMultiCommand(
'confirmDeleteParticipants', $this->lng->txt(
'remove'));
 
  148        $this->
addMultiCommand(
'sendMailToSelectedUsers', $this->lng->txt(
'mmbr_btn_mail_selected_users'));
 
  149        $this->lng->loadLanguageModule(
'user');
 
  150        $this->
addMultiCommand(
'addToClipboard', $this->lng->txt(
'clipboard_add_btn'));
 
  152        $this->
addCommandButton(
'updateParticipantsStatus', $this->lng->txt(
'save'));
 
  173        $ilAccess = 
$DIC[
'ilAccess'];
 
  175        $this->tpl->setVariable(
'VAL_ID', $a_set[
'usr_id']);
 
  176        $this->tpl->setVariable(
'VAL_NAME', $a_set[
'lastname'] . 
', ' . $a_set[
'firstname']);
 
  178        if (!$ilAccess->checkAccessOfUser($a_set[
'usr_id'], 
'read', 
'', $this->getRepositoryObject()->getRefId()) and
 
  179            is_array(
$info = $ilAccess->getInfo())) {
 
  180            $this->tpl->setCurrentBlock(
'access_warning');
 
  181            $this->tpl->setVariable(
'PARENT_ACCESS', 
$info[0][
'text']);
 
  182            $this->tpl->parseCurrentBlock();
 
  186            $this->tpl->setCurrentBlock(
'access_warning');
 
  187            $this->tpl->setVariable(
'PARENT_ACCESS', $this->lng->txt(
'usr_account_inactive'));
 
  188            $this->tpl->parseCurrentBlock();
 
  194                    $a_set[
'gender'] = $a_set[
'gender'] ? $this->lng->txt(
'gender_' . $a_set[
'gender']) : 
'';
 
  195                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  196                    $this->tpl->setVariable(
'VAL_CUST', $a_set[$field]);
 
  197                    $this->tpl->parseCurrentBlock();
 
  202                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  203                    $this->tpl->setVariable(
'VAL_CUST', $a_set[$field]);
 
  204                    $this->tpl->parseCurrentBlock();
 
  207                case 'consultation_hour':
 
  208                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  210                    foreach ((array) $a_set[
'consultation_hours'] as $ch) {
 
  215                        if ($ch[
'explanation']) {
 
  216                            $tmp .= 
' ' . $ch[
'explanation'];
 
  220                    $dt_string = implode(
'<br />', $dts);
 
  221                    $this->tpl->setVariable(
'VAL_CUST', $dt_string);
 
  222                    $this->tpl->parseCurrentBlock();
 
  227                    if (is_array($a_set[
'prtf'])) {
 
  228                        foreach ($a_set[
'prtf'] as $prtf_url => $prtf_txt) {
 
  229                            $tmp[] = 
'<a href="' . $prtf_url . 
'">' . $prtf_txt . 
'</a>';
 
  232                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  233                    $this->tpl->setVariable(
'VAL_CUST', (
string) implode(
'<br />', $tmp)) ;
 
  234                    $this->tpl->parseCurrentBlock();
 
  238                case 'odf_last_update':
 
  239                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  240                    $this->tpl->setVariable(
'VAL_CUST', (
string) $a_set[
'odf_info_txt']);
 
  241                    $this->tpl->parseCurrentBlock();
 
  245                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  246                    $this->tpl->setVariable(
'VAL_CUST', (
string) $a_set[
'roles_label']);
 
  247                    $this->tpl->parseCurrentBlock();
 
  251                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  252                    include_once 
'./Modules/OrgUnit/classes/PathStorage/class.ilOrgUnitPathStorage.php';
 
  253                    $this->tpl->setVariable(
'VAL_CUST', (
string) ilOrgUnitPathStorage::getTextRepresentationOfUsersOrgUnits($a_set[
'usr_id']));
 
  254                    $this->tpl->parseCurrentBlock();
 
  258                    $this->tpl->setCurrentBlock(
'custom_fields');
 
  259                    $this->tpl->setVariable(
'VAL_CUST', isset($a_set[$field]) ? (
string) $a_set[$field] : 
'');
 
  260                    $this->tpl->parseCurrentBlock();
 
  265        if ($this->privacy->enabledCourseAccessTimes()) {
 
  266            $this->tpl->setVariable(
'VAL_ACCESS', $a_set[
'access_time']);
 
  268        if ($this->show_learning_progress) {
 
  269            $this->tpl->setCurrentBlock(
'lp');
 
  270            switch ($a_set[
'progress']) {
 
  272                    $this->tpl->setVariable(
'LP_STATUS_ALT', $this->lng->txt($a_set[
'progress']));
 
  277                    $this->tpl->setVariable(
'LP_STATUS_ALT', $this->lng->txt($a_set[
'progress']));
 
  282                    $this->tpl->setVariable(
'LP_STATUS_ALT', $this->lng->txt($a_set[
'progress']));
 
  287                    $this->tpl->setVariable(
'LP_STATUS_ALT', $this->lng->txt($a_set[
'progress']));
 
  291            $this->tpl->parseCurrentBlock();
 
  294        $this->tpl->setVariable(
'VAL_POSTNAME', 
'participants');
 
  296        if ($ilAccess->checkAccess(
"grade", 
"", $this->rep_object->getRefId())) {
 
  297            $this->tpl->setCurrentBlock(
'grade');
 
  298            $this->tpl->setVariable(
'VAL_PASSED_ID', $a_set[
'usr_id']);
 
  299            $this->tpl->setVariable(
'VAL_PASSED_CHECKED', ($a_set[
'passed'] ? 
'checked="checked"' : 
''));
 
  300            $this->tpl->parseCurrentBlock();
 
  302            $this->tpl->setVariable(
'VAL_PASSED_TXT', ($a_set[
'passed']
 
  303                ? $this->lng->txt(
"yes")
 
  304                : $this->lng->txt(
"no")));
 
  312            $this->tpl->setCurrentBlock(
'with_contact');
 
  313            $this->tpl->setVariable(
'VAL_CONTACT_ID', $a_set[
'usr_id']);
 
  314            $this->tpl->setVariable(
'VAL_CONTACT_CHECKED', $a_set[
'contact'] ? 
'checked="checked"' : 
'');
 
  315            $this->tpl->parseCurrentBlock();
 
  318            $this->tpl->setCurrentBlock(
'with_notification');
 
  319            $this->tpl->setVariable(
'VAL_NOTIFICATION_ID', $a_set[
'usr_id']);
 
  320            $this->tpl->setVariable(
'VAL_NOTIFICATION_CHECKED', ($a_set[
'notification'] ? 
'checked="checked"' : 
''));
 
  321            $this->tpl->parseCurrentBlock();
 
  329            $this->tpl->setCurrentBlock(
'with_blocked');
 
  330            $this->tpl->setVariable(
'VAL_BLOCKED_ID', $a_set[
'usr_id']);
 
  331            $this->tpl->setVariable(
'VAL_BLOCKED_CHECKED', ($a_set[
'blocked'] ? 
'checked="checked"' : 
''));
 
  332            $this->tpl->parseCurrentBlock();
 
  336        if ($this->show_lp_status_sync) {
 
  337            $this->tpl->setVariable(
'PASSED_INFO', $a_set[
"passed_info"]);
 
  343        if (
true === $isPreloaded) {
 
  344            $this->tpl->setCurrentBlock(
'link');
 
  345            $this->tpl->setVariable(
'LINK_NAME', $this->ctrl->getLinkTarget($this->parent_obj, 
'deliverCertificate'));
 
  346            $this->tpl->setVariable(
'LINK_TXT', $this->lng->txt(
'download_certificate'));
 
  347            $this->tpl->parseCurrentBlock();
 
  349        $this->ctrl->clearParameters($this->parent_obj);
 
  351        if ($this->show_timings) {
 
  352            $this->ctrl->setParameterByClass(
'ilcoursecontentgui', 
'member_id', $a_set[
'usr_id']);
 
  353            $this->tpl->setCurrentBlock(
'link');
 
  354            $this->tpl->setVariable(
'LINK_NAME', $this->ctrl->getLinkTargetByClass(
'ilcoursecontentgui', 
'showUserTimings'));
 
  355            $this->tpl->setVariable(
'LINK_TXT', $this->lng->txt(
'timings_timings'));
 
  356            $this->tpl->parseCurrentBlock();
 
  370        $rbacreview = 
$DIC[
'rbacreview'];
 
  374        include_once 
'./Services/User/classes/class.ilUserQuery.php';
 
  377        unset($additional_fields[
"firstname"]);
 
  378        unset($additional_fields[
"lastname"]);
 
  379        unset($additional_fields[
"last_login"]);
 
  380        unset($additional_fields[
"access_until"]);
 
  381        unset($additional_fields[
'consultation_hour']);
 
  382        unset($additional_fields[
'prtf']);
 
  383        unset($additional_fields[
'roles']);
 
  384        unset($additional_fields[
'org_units']);
 
  386        $part = $this->participants->getParticipants();
 
  388        $part = 
$GLOBALS[
'DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
 
  401        $udf_ids = $usr_data_fields = $odf_ids = array();
 
  402        foreach ($additional_fields as $field) {
 
  403            if (substr($field, 0, 3) == 
'udf') {
 
  404                $udf_ids[] = substr($field, 4);
 
  407            if (substr($field, 0, 3) == 
'odf') {
 
  408                $odf_ids[] = substr($field, 4);
 
  412            $usr_data_fields[] = $field;
 
  420            $this->current_filter[
'login'],
 
  434        foreach ((array) $usr_data[
'set'] as 
$user) {
 
  435            if ($this->current_filter[
'roles']) {
 
  436                if (!
$GLOBALS[
'DIC'][
'rbacreview']->isAssigned(
$user[
'usr_id'], $this->current_filter[
'roles'])) {
 
  440            if ($this->current_filter[
'org_units']) {
 
  441                $org_unit = $this->current_filter[
'org_units'];
 
  443                include_once 
'./Modules/OrgUnit/classes/class.ilObjOrgUnitTree.php';
 
  445                if (!in_array($org_unit, $assigned)) {
 
  451            $usr_ids[] = 
$user[
'usr_id'];
 
  459        $a_user_data = array();
 
  460        foreach ((array) $usr_data[
'set'] as $ud) {
 
  461            $user_id = $ud[
'usr_id'];
 
  463            if (!in_array($user_id, $usr_ids)) {
 
  471            $a_user_data[$user_id] = array_merge($ud, $course_user_data[$user_id]);
 
  475            foreach ($local_roles as $role_id => $role_name) {
 
  477                if (
$GLOBALS[
'DIC'][
'rbacreview']->isAssigned($user_id, $role_id)) {
 
  478                    $roles[] = $role_name;
 
  482            $a_user_data[$user_id][
'name'] = ($a_user_data[$user_id][
'lastname'] . 
', ' . $a_user_data[$user_id][
'firstname']);
 
  483            $a_user_data[$user_id][
'roles_label'] = implode(
'<br />', $roles);
 
  484            $a_user_data[$user_id][
'roles'] = $this->participants->setRoleOrderPosition($user_id);
 
  487            if ($this->show_lp_status_sync) {
 
  490                if ($a_user_data[$user_id][
"passed_info"]) {
 
  491                    $pinfo = $a_user_data[$user_id][
"passed_info"];
 
  492                    if ($pinfo[
"user_id"]) {
 
  493                        if ($pinfo[
"user_id"] < 0) {
 
  494                            $passed_info = $this->lng->txt(
"crs_passed_status_system");
 
  495                        } elseif ($pinfo[
"user_id"] > 0) {
 
  497                            $passed_info = $this->lng->txt(
"crs_passed_status_manual_by") . 
": " . 
$name[
"login"];
 
  500                    if ($pinfo[
"timestamp"]) {
 
  504                $a_user_data[$user_id][
"passed_info"] = $passed_info;
 
  510            include_once 
'./Services/User/classes/class.ilUserDefinedData.php';
 
  512            foreach (
$data as $usr_id => $fields) {
 
  517                foreach ($fields as $field_id => $value) {
 
  518                    $a_user_data[$usr_id][
'udf_' . $field_id] = $value;
 
  524            include_once 
'./Modules/Course/classes/Export/class.ilCourseUserData.php';
 
  526            foreach (
$data as $usr_id => $fields) {
 
  528                if (!$this->
checkAcceptance($usr_id) || !in_array($usr_id, $usr_ids)) {
 
  532                foreach ($fields as $field_id => $value) {
 
  533                    $a_user_data[$usr_id][
'odf_' . $field_id] = $value;
 
  539            include_once 
'./Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
 
  541                if (!isset($a_user_data[$usr_id])) {
 
  545                include_once 
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
 
  546                if ($usr_id == $edit_info[
'update_user']) {
 
  547                    $a_user_data[$usr_id][
'odf_last_update'] = 
'';
 
  548                    $a_user_data[$usr_id][
'odf_info_txt'] = 
$GLOBALS[
'DIC'][
'lng']->txt(
'cdf_edited_by_self');
 
  550                        $a_user_data[$usr_id][
'odf_last_update'] .= (
'_' . $edit_info[
'editing_time']->get(
IL_CAL_UNIX));
 
  554                    $a_user_data[$usr_id][
'odf_last_update'] = $edit_info[
'update_user'];
 
  555                    $a_user_data[$usr_id][
'odf_last_update'] .= (
'_' . $edit_info[
'editing_time']->get(
IL_CAL_UNIX));
 
  565            include_once 
'./Services/Booking/classes/class.ilBookingEntry.php';
 
  567                if (isset($a_user_data[$buser])) {
 
  568                    $a_user_data[$buser][
'consultation_hour'] = $booking[0][
'dt'];
 
  569                    $a_user_data[$buser][
'consultation_hour_end'] = $booking[0][
'dtend'];
 
  570                    $a_user_data[$buser][
'consultation_hours'] = $booking;
 
  582        return $this->
setData($a_user_data);
 
An exception for terminatinating execution or to throw for unit testing.
static lookupManagedBookingsForObject($a_obj_id, $a_usr_id)
Lookup bookings for own and managed consultation hours of an object.
__construct( $a_parent_obj, ilObject $rep_object, $a_show_learning_progress=false, $a_show_timings=false, $a_show_lp_status_sync=false, ilCertificateUserForObjectPreloader $preloader=null)
Constructor.
static _getValuesByObjId($a_obj_id)
Get values by obj_id (for all users)
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
@classDescription Date and time handling
const LP_STATUS_COMPLETED
const LP_STATUS_NOT_ATTEMPTED
const LP_STATUS_IN_PROGRESS
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _lookupName($a_user_id)
lookup user name
static _lookupActive($a_usr_id)
Check user account active.
static lookupEntriesByObjectId($a_obj_id)
Get entries by obj_id @global type $ilDB.
Class ilObject Basic functions for all objects.
getSelectableColumns()
Get selectable columns.
getParticipants()
Get participants.
initSettings()
Init acceptance.
showActionLinks($a_set)
show edit links
checkAcceptance($a_usr_id)
Check acceptance.
initFilter()
Init table filter.
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
static _getInstance()
Get instance of ilPrivacySettings.
getSelectedColumns()
Get selected columns.
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
setEnableHeader($a_enableheader)
Set Enable Header.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
getParentObject()
Get parent object.
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
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
setEnableTitle($a_enabletitle)
Set Enable Title.
setEnableNumInfo($a_val)
Set enable num info.
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.
setExternalSegmentation($a_val)
Set external segmentation.
setFormName($a_formname="")
Set Form name.
isColumnSelected($a_col)
Is given column selected?
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
getOrderDirection()
Get order direction.
enable($a_module_name)
enables particular modules of table
static lookupData($a_user_ids, $a_field_ids)
Lookup data.
static getUserListData( $a_order_field, $a_order_dir, $a_offset, $a_limit, $a_string_filter="", $a_activation_filter="", $a_last_login_filter=null, $a_limited_access_filter=false, $a_no_courses_filter=false, $a_course_group_filter=0, $a_role_filter=0, $a_user_folder_filter=null, $a_additional_fields='', $a_user_filter=null, $a_first_letter="", $a_authentication_filter=null)
Get data for user administration list.
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.