19 declare(strict_types=1);
37 bool $show_content =
true,
38 bool $show_subject =
true 44 $this->
lng->loadLanguageModule(
'grp');
45 $this->
lng->loadLanguageModule(
'crs');
51 $this->
addColumn($this->
lng->txt(
'name'),
'lastname',
'20%');
56 $all_cols[$col][
'txt'],
62 $this->
addColumn($this->
lng->txt(
'application_date'),
'sub_time');
63 $this->
addColumn($this->
lng->txt(
'message'),
'subject',
'40%');
65 $this->
addColumn($this->
lng->txt(
'application_date'),
'sub_time');
69 $this->
addMultiCommand(
'confirmAssignSubscribers', $this->
lng->txt(
'sess_accept_request'));
74 $this->
addMultiCommand(
'sendMailToSelectedUsers', $this->
lng->txt(
'crs_mem_send_mail'));
77 $this->
lng->loadLanguageModule(
'user');
83 $this->
setRowTemplate(
"tpl.show_subscribers_row.html",
"Services/Membership");
89 $this->
enable(
'select_all');
109 if (self::$all_columns) {
110 return self::$all_columns;
114 self::$all_columns[
'login'] = [
115 'txt' => $this->
lng->txt(
'login'),
118 return self::$all_columns;
125 is_array(self::$all_columns) &&
126 array_key_exists(
'consultation_hour', self::$all_columns)
128 unset(self::$all_columns[
'consultation_hour']);
130 return self::$all_columns;
133 protected function fillRow(array $a_set): void
138 $this->tpl->setVariable(
146 $this->tpl->setVariable(
'VAL_ID', $a_set[
'usr_id']);
147 $this->tpl->setVariable(
'VAL_NAME', $a_set[
'lastname'] .
', ' . $a_set[
'firstname']);
152 $a_set[
'gender'] = $a_set[
'gender'] ? $this->
lng->txt(
'gender_' . $a_set[
'gender']) :
'';
153 $this->tpl->setCurrentBlock(
'custom_fields');
154 $this->tpl->setVariable(
'VAL_CUST', $a_set[$field]);
155 $this->tpl->parseCurrentBlock();
162 )) : $this->
lng->txt(
'no_date');
163 $this->tpl->setCurrentBlock(
'custom_fields');
164 $this->tpl->setVariable(
'VAL_CUST', $a_set[$field]);
165 $this->tpl->parseCurrentBlock();
168 case 'odf_last_update':
169 $this->tpl->setVariable(
'VAL_CUST', (
string) ($a_set[
'odf_info_txt'] ??
''));
173 $this->tpl->setCurrentBlock(
'custom_fields');
174 $this->tpl->setVariable(
176 ilOrgUnitPathStorage::getTextRepresentationOfUsersOrgUnits((
int)$a_set[
'usr_id'])
178 $this->tpl->parseCurrentBlock();
182 $this->tpl->setCurrentBlock(
'custom_fields');
183 $this->tpl->setVariable(
'VAL_CUST', isset($a_set[$field]) ? (
string) $a_set[$field] :
'');
184 $this->tpl->parseCurrentBlock();
189 $this->tpl->setVariable(
195 if (strlen($a_set[
'subject'])) {
196 $this->tpl->setCurrentBlock(
'subject');
197 $this->tpl->setVariable(
'VAL_SUBJECT',
'"' . $a_set[
'subject'] .
'"');
198 $this->tpl->parseCurrentBlock();
200 $this->tpl->touchBlock(
'subject');
210 if (!self::$has_odf_definitions) {
211 $this->
ctrl->setParameterByClass(get_class($this->
getParentObject()),
'member_id', $a_set[
'usr_id']);
212 $link = $this->
ctrl->getLinkTargetByClass(get_class($this->
getParentObject()),
'sendMailToSelectedUsers');
213 $this->tpl->setVariable(
'MAIL_LINK', $link);
214 $this->tpl->setVariable(
'MAIL_TITLE', $this->
lng->txt(
'crs_mem_send_mail'));
220 $list->setSelectionHeaderClass(
'small');
221 $list->setItemLinkClass(
'small');
222 $list->setId(
'actl_' . $a_set[
'usr_id'] .
'_' . $this->
getId());
223 $list->setListTitle($this->
lng->txt(
'actions'));
225 $this->
ctrl->setParameterByClass(get_class($this->
getParentObject()),
'member_id', $a_set[
'usr_id']);
226 $this->
ctrl->setParameter($this->parent_obj,
'member_id', $a_set[
'usr_id']);
228 $link = $this->
ctrl->getLinkTargetByClass(get_class($this->
getParentObject()),
'sendMailToSelectedUsers');
229 $list->addItem($trans,
'', $link,
'sendMailToSelectedUsers');
231 $this->
ctrl->setParameterByClass(
'ilobjectcustomuserfieldsgui',
'member_id', $a_set[
'usr_id']);
233 $list->addItem($trans,
'', $this->
ctrl->getLinkTargetByClass(
'ilobjectcustomuserfieldsgui',
'editMember'));
235 $this->tpl->setVariable(
'ACTION_USER', $list->getHTML());
247 $sub_ids = $sub_data = [];
248 foreach ($a_subscriber_ids as $usr_id) {
249 $sub_ids[] = $usr_id;
250 $sub_data[$usr_id] = $subscriber_data[$usr_id];
257 $additional_fields[
"firstname"],
258 $additional_fields[
"lastname"],
259 $additional_fields[
"last_login"],
260 $additional_fields[
"access_until"],
261 $additional_fields[
'org_units']
264 $udf_ids = $usr_data_fields = $odf_ids = array();
265 foreach ($additional_fields as $field) {
266 if (strpos($field,
'udf') === 0) {
267 $udf_ids[] = substr($field, 4);
270 if (strpos($field,
'odf') === 0) {
271 $odf_ids[] = substr($field, 4);
275 $usr_data_fields[] = $field;
296 foreach ((array) $usr_data[
'set'] as $user) {
297 $usr_ids[] = $user[
'usr_id'];
301 $course_user_data = $this->
getParentObject()->readMemberData($usr_ids, array());
302 $a_user_data = array();
303 foreach ((array) $usr_data[
'set'] as $ud) {
304 $a_user_data[$ud[
'usr_id']] = array_merge($ud, (array) $course_user_data[$ud[
'usr_id']]);
308 if (is_array($udf_ids)) {
310 foreach (
$data as $usr_id => $fields) {
315 foreach ($fields as $field_id => $value) {
316 $a_user_data[$usr_id][
'udf_' . $field_id] = $value;
321 if (is_array($odf_ids)) {
323 foreach (
$data as $usr_id => $fields) {
325 if (!$this->
checkAcceptance($usr_id) || !in_array($usr_id, $usr_ids)) {
329 foreach ($fields as $field_id => $value) {
330 $a_user_data[$usr_id][
'odf_' . $field_id] = $value;
336 if (!isset($a_user_data[$usr_id])) {
340 if ($usr_id == $edit_info[
'update_user']) {
341 $a_user_data[$usr_id][
'odf_last_update'] =
'';
342 $a_user_data[$usr_id][
'odf_info_txt'] =
$GLOBALS[
'DIC'][
'lng']->txt(
'cdf_edited_by_self');
344 $a_user_data[$usr_id][
'odf_last_update'] .= (
'_' . $edit_info[
'editing_time']->get(
IL_CAL_UNIX));
348 $a_user_data[$usr_id][
'odf_last_update'] = $edit_info[
'update_user'];
349 $a_user_data[$usr_id][
'odf_last_update'] .= (
'_' . $edit_info[
'editing_time']->get(
IL_CAL_UNIX));
357 foreach ($usr_data[
'set'] as $user) {
363 foreach ($usr_data_fields as $field) {
364 $a_user_data[$user[
'usr_id']][$field] = $user[$field] ?:
'';
369 foreach ($sub_data as $usr_id => $usr_data) {
370 if (!in_array($usr_id, $usr_ids)) {
373 $a_user_data[$usr_id][
'sub_time'] = $usr_data[
'time'];
374 $a_user_data[$usr_id][
'subject'] = $usr_data[
'subject'];
388 $this->show_subject = $a_value;
static bool $has_odf_definitions
static lookupData(array $a_user_ids, array $a_field_ids)
Lookup data.
enable(string $a_module_name)
setFormAction(string $a_form_action, bool $a_multipart=false)
setSelectAllCheckbox(string $a_select_all_checkbox, bool $a_select_all_on_top=false)
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
static getAssignedObjects()
static _getValuesByObjId(int $a_obj_id)
static _checkGroupingDependencies(ilObject $container_obj, ?int $a_user_id=null)
static _lookupName(int $a_user_id)
lookup user name
setFormName(string $a_name="")
readSubscriberData(array $a_subscriber_ids)
read data protected
static lookupSubscribersData(int $a_obj_id)
__construct(object $a_parent_obj, ilObject $rep_object, bool $show_content=true, bool $show_subject=true)
static _lookupTitle(int $obj_id)
static array $all_columns
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
checkAcceptance(int $a_usr_id)
GUI class for course/group subscriptions.
static _getInstanceByType(string $a_type)
Get Singleton Instance.
__construct(Container $dic, ilPlugin $plugin)
showActionLinks(array $a_set)
Show action links (mail ; edit crs|grp data)
setShowSubject(bool $a_value)
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
static lookupEntriesByObjectId(int $a_obj_id)
disable(string $a_module_name)
static getUserListData(string $a_order_field, string $a_order_dir, int $a_offset, int $a_limit, string $a_string_filter="", string $a_activation_filter="", ?ilDateTime $a_last_login_filter=null, bool $a_limited_access_filter=false, bool $a_no_courses_filter=false, int $a_course_group_filter=0, int $a_role_filter=0, array $a_user_folder_filter=null, array $a_additional_fields=null, array $a_user_filter=null, string $a_first_letter="", string $a_authentication_filter="")
Get data for user administration list.
addMultiCommand(string $a_cmd, string $a_text)
static _hasFields(int $a_container_id)
Check if there are any define fields.
determineOffsetAndOrder(bool $a_omit_offset=false)
setMaxCount(int $a_max_count)
set max.
setExternalSegmentation(bool $a_val)
setPrefix(string $a_prefix)