ILIAS  trunk Revision v11.0_alpha-1761-g6dbbfa7b760
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilForumSettingsGUI Class Reference

Class ilForumSettingsGUI. More...

+ Inheritance diagram for ilForumSettingsGUI:
+ Collaboration diagram for ilForumSettingsGUI:

Public Member Functions

 __construct (private readonly ilObjForumGUI $parent_obj)
 
 getRefId ()
 
 executeCommand ()
 
 getCustomForm (ilPropertyFormGUI $a_form)
 
 settingsTabs ()
 
 getCustomValues (array &$a_values)
 
 updateCustomValues (ilPropertyFormGUI $a_form)
 
 showMembers ()
 
 saveEventsForUser ()
 
 enableAdminForceNoti ()
 
 disableAdminForceNoti ()
 
 enableHideUserToggleNoti ()
 
 disableHideUserToggleNoti ()
 
 getParticipants ()
 
 updateNotificationSettings ()
 

Private Member Functions

 initForcedForumNotification ()
 
 addAvailabilitySection (ilPropertyFormGUI $form)
 
 getUserNotificationTableData (array $user_ids)
 
 showMembersTable (array $moderators, array $admins, array $members, array $tutors)
 
 updateUserNotifications (bool $update_all_users=false)
 
 initNotificationSettingsForm ()
 

Private Attributes

readonly ilCtrlInterface $ctrl
 
readonly ilGlobalTemplateInterface $tpl
 
readonly ilLanguage $lng
 
readonly ilSetting $settings
 
readonly ilTabsGUI $tabs
 
readonly ilAccessHandler $access
 
readonly ilTree $tree
 
readonly ILIAS HTTP GlobalHttpState $http
 
ilForumNotification $forumNotificationObj
 
ilPropertyFormGUI $notificationSettingsForm = null
 
readonly int $ref_id
 
readonly ilObjectService $obj_service
 
readonly ILIAS DI Container $dic
 
readonly ilErrorHandling $error
 
readonly ILIAS UI Factory $ui_factory
 

Additional Inherited Members

- Data Fields inherited from ilForumObjectConstants
const OBJ_TYPE = 'frm'
 
const UI_TAB_ID_INFO = 'info_short'
 
const UI_TAB_ID_SETTINGS = 'settings'
 
const UI_TAB_ID_MODERATORS = 'frm_moderators'
 
const UI_TAB_ID_THREADS = 'forums_threads'
 
const UI_TAB_ID_STATS = 'frm_statistics'
 
const UI_TAB_ID_EXPORT = 'export'
 
const UI_TAB_ID_PERMISSIONS = 'perm_settings'
 
const UI_SUB_TAB_ID_BASIC_SETTINGS = 'general'
 
const UI_SUB_TAB_ID_NOTIFICATIONS = 'notifications'
 
const UI_SUB_TAB_ID_NEWS = 'cont_news_settings'
 
const UI_SUB_TAB_ID_STYLE = 'cont_style'
 
const UI_CMD_COPAGE_DOWNLOAD_FILE = 'downloadFile'
 
const UI_CMD_COPAGE_DISPLAY_FULLSCREEN = 'displayMediaFullscreen'
 
const UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH = 'download_paragraph'
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilForumSettingsGUI::__construct ( private readonly ilObjForumGUI  $parent_obj)

Definition at line 44 of file class.ilForumSettingsGUI.php.

References $DIC, ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), ILIAS\Repository\settings(), and ILIAS\Repository\tabs().

45  {
46  global $DIC;
47 
48  $this->dic = $DIC;
49 
50  $this->ctrl = $DIC->ctrl();
51  $this->tpl = $DIC->ui()->mainTemplate();
52  $this->lng = $DIC->language();
53  $this->settings = $DIC->settings();
54  $this->tabs = $DIC->tabs();
55  $this->access = $DIC->access();
56  $this->tree = $DIC->repositoryTree();
57  $this->obj_service = $this->dic->object();
58  $this->ref_id = $this->parent_obj->getObject()->getRefId();
59  $this->http = $DIC->http();
60  $this->ui_factory = $DIC->ui()->factory();
61  $this->error = $DIC['ilErr'];
62 
63  $this->lng->loadLanguageModule('style');
64  $this->lng->loadLanguageModule('cont');
65  }
static http()
Fetches the global http state from ILIAS.
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

Member Function Documentation

◆ addAvailabilitySection()

ilForumSettingsGUI::addAvailabilitySection ( ilPropertyFormGUI  $form)
private

Definition at line 93 of file class.ilForumSettingsGUI.php.

References ilPropertyFormGUI\addItem(), and ILIAS\Repository\lng().

Referenced by getCustomForm().

93  : void
94  {
95  $section = new ilFormSectionHeaderGUI();
96  $section->setTitle($this->lng->txt('rep_activation_availability'));
97  $form->addItem($section);
98 
99  $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'), 'activation_online');
100  $online->setInfo($this->lng->txt('frm_activation_online_info'));
101  $form->addItem($online);
102  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ disableAdminForceNoti()

ilForumSettingsGUI::disableAdminForceNoti ( )

Definition at line 554 of file class.ilForumSettingsGUI.php.

References $user_id, ILIAS\Repository\access(), ILIAS\Repository\lng(), ilForumNotification\setUserId(), and showMembers().

554  : void
555  {
556  if (!$this->access->checkAccess('write', '', $this->parent_obj->getRefId())) {
557  $this->error->raiseError(
558  $this->lng->txt('msg_no_perm_read'),
559  $this->error->MESSAGE
560  );
561  }
562 
563  $user_ids = [];
564  if ($this->dic->http()->wrapper()->post()->has('user_id')) {
565  $user_ids = $this->dic->http()->wrapper()->post()->retrieve(
566  'user_id',
567  $this->dic->refinery()->kindlyTo()->listOf($this->dic->refinery()->kindlyTo()->int())
568  );
569  }
570 
571  if (count($user_ids) === 0) {
572  $this->tpl->setOnScreenMessage('info', $this->lng->txt('time_limit_no_users_selected'));
573  } else {
574  $frm_noti = new ilForumNotification($this->parent_obj->getObject()->getRefId());
575 
576  foreach ($user_ids as $user_id) {
577  $frm_noti->setUserId((int) $user_id);
578  $is_enabled = $frm_noti->isAdminForceNotification();
579 
580  if ($is_enabled) {
581  $frm_noti->deleteAdminForce();
582  }
583  }
584 
585  $this->tpl->setOnScreenMessage('success', $this->lng->txt('saved_successfully'));
586  }
587 
588  $this->showMembers();
589  }
Class ilForumNotification.
+ Here is the call graph for this function:

◆ disableHideUserToggleNoti()

ilForumSettingsGUI::disableHideUserToggleNoti ( )

Definition at line 632 of file class.ilForumSettingsGUI.php.

References $user_id, ILIAS\Repository\access(), ILIAS\Repository\lng(), ilForumNotification\setUserId(), and showMembers().

632  : void
633  {
634  if (!$this->access->checkAccess('write', '', $this->parent_obj->getRefId())) {
635  $this->error->raiseError(
636  $this->lng->txt('msg_no_perm_read'),
637  $this->error->MESSAGE
638  );
639  }
640 
641  $user_ids = [];
642  if ($this->dic->http()->wrapper()->post()->has('user_id')) {
643  $user_ids = $this->dic->http()->wrapper()->post()->retrieve(
644  'user_id',
645  $this->dic->refinery()->kindlyTo()->listOf($this->dic->refinery()->kindlyTo()->int())
646  );
647  }
648 
649  if (count($user_ids) === 0) {
650  $this->tpl->setOnScreenMessage('info', $this->lng->txt('time_limit_no_users_selected'));
651  } else {
652  $frm_noti = new ilForumNotification($this->parent_obj->getObject()->getRefId());
653 
654  foreach ($user_ids as $user_id) {
655  $frm_noti->setUserId((int) $user_id);
656  $frm_noti->setUserToggle(false);
657  $is_enabled = $frm_noti->isAdminForceNotification();
658  if ($is_enabled) {
659  $frm_noti->updateUserToggle();
660  } else {
661  $frm_noti->setAdminForce(true);
662  $frm_noti->insertAdminForce();
663  }
664  }
665 
666  $this->tpl->setOnScreenMessage('success', $this->lng->txt('saved_successfully'));
667  }
668 
669  $this->showMembers();
670  }
Class ilForumNotification.
+ Here is the call graph for this function:

◆ enableAdminForceNoti()

ilForumSettingsGUI::enableAdminForceNoti ( )

Definition at line 515 of file class.ilForumSettingsGUI.php.

References $user_id, ILIAS\Repository\access(), ILIAS\Repository\lng(), ilForumNotification\setUserId(), and showMembers().

515  : void
516  {
517  if (!$this->access->checkAccess('write', '', $this->parent_obj->getRefId())) {
518  $this->error->raiseError(
519  $this->lng->txt('msg_no_perm_read'),
520  $this->error->MESSAGE
521  );
522  }
523 
524  $user_ids = [];
525  if ($this->dic->http()->wrapper()->post()->has('user_id')) {
526  $user_ids = $this->dic->http()->wrapper()->post()->retrieve(
527  'user_id',
528  $this->dic->refinery()->kindlyTo()->listOf($this->dic->refinery()->kindlyTo()->int())
529  );
530  }
531 
532  if (count($user_ids) === 0) {
533  $this->tpl->setOnScreenMessage('info', $this->lng->txt('time_limit_no_users_selected'), true);
534  } else {
535  $frm_noti = new ilForumNotification($this->parent_obj->getObject()->getRefId());
536 
537  foreach ($user_ids as $user_id) {
538  $frm_noti->setUserId((int) $user_id);
539  $frm_noti->setUserToggle(false);
540  $is_enabled = $frm_noti->isAdminForceNotification();
541 
542  if (!$is_enabled) {
543  $frm_noti->setAdminForce(true);
544  $frm_noti->insertAdminForce();
545  }
546  }
547 
548  $this->tpl->setOnScreenMessage('success', $this->lng->txt('saved_successfully'));
549  }
550 
551  $this->showMembers();
552  }
Class ilForumNotification.
+ Here is the call graph for this function:

◆ enableHideUserToggleNoti()

ilForumSettingsGUI::enableHideUserToggleNoti ( )

Definition at line 591 of file class.ilForumSettingsGUI.php.

References $user_id, ILIAS\Repository\access(), ILIAS\Repository\lng(), ilForumNotification\setUserId(), and showMembers().

591  : void
592  {
593  if (!$this->access->checkAccess('write', '', $this->parent_obj->getRefId())) {
594  $this->error->raiseError(
595  $this->lng->txt('msg_no_perm_read'),
596  $this->error->MESSAGE
597  );
598  }
599 
600  $user_ids = [];
601  if ($this->dic->http()->wrapper()->post()->has('user_id')) {
602  $user_ids = $this->dic->http()->wrapper()->post()->retrieve(
603  'user_id',
604  $this->dic->refinery()->kindlyTo()->listOf($this->dic->refinery()->kindlyTo()->int())
605  );
606  }
607 
608  if (count($user_ids) === 0) {
609  $this->tpl->setOnScreenMessage('info', $this->lng->txt('time_limit_no_users_selected'));
610  } else {
611  $frm_noti = new ilForumNotification($this->parent_obj->getObject()->getRefId());
612 
613  foreach ($user_ids as $user_id) {
614  $frm_noti->setUserId((int) $user_id);
615  $frm_noti->setUserToggle(true);
616  $is_enabled = $frm_noti->isAdminForceNotification();
617 
618  if (!$is_enabled) {
619  $frm_noti->setAdminForce(true);
620  $frm_noti->insertAdminForce();
621  } else {
622  $frm_noti->updateUserToggle();
623  }
624  }
625 
626  $this->tpl->setOnScreenMessage('success', $this->lng->txt('saved_successfully'));
627  }
628 
629  $this->showMembers();
630  }
Class ilForumNotification.
+ Here is the call graph for this function:

◆ executeCommand()

ilForumSettingsGUI::executeCommand ( )

Definition at line 78 of file class.ilForumSettingsGUI.php.

References ILIAS\Repository\ctrl(), and settingsTabs().

78  : void
79  {
80  $cmd = $this->ctrl->getCmd();
81 
82  switch (true) {
83  case method_exists($this, $cmd):
84  $this->settingsTabs();
85  $this->{$cmd}();
86  break;
87 
88  default:
89  $this->ctrl->redirect($this->parent_obj);
90  }
91  }
+ Here is the call graph for this function:

◆ getCustomForm()

ilForumSettingsGUI::getCustomForm ( ilPropertyFormGUI  $a_form)

Definition at line 104 of file class.ilForumSettingsGUI.php.

References addAvailabilitySection(), ilPropertyFormGUI\addItem(), ilRadioGroupInputGUI\addOption(), ilForumProperties\isFileUploadGloballyAllowed(), ILIAS\Repository\lng(), ilFormPropertyGUI\setInfo(), ILIAS\Repository\settings(), settingsTabs(), ilPropertyFormGUI\setTitle(), ILIAS\Repository\tabs(), ilForumProperties\VIEW_DATE, ilForumProperties\VIEW_DATE_ASC, ilForumProperties\VIEW_DATE_DESC, and ilForumProperties\VIEW_TREE.

104  : void
105  {
106  $this->settingsTabs();
107  $this->tabs->activateSubTab(self::UI_SUB_TAB_ID_BASIC_SETTINGS);
108  $a_form->setTitle($this->lng->txt('frm_settings_form_header'));
109 
110  $this->addAvailabilitySection($a_form);
111 
112  $presentationHeader = new ilFormSectionHeaderGUI();
113  $presentationHeader->setTitle($this->lng->txt('settings_presentation_header'));
114  $a_form->addItem($presentationHeader);
115 
116  $this->obj_service->commonSettings()->legacyForm($a_form, $this->parent_obj->getObject())->addTileImage();
117 
118  $rg_pro = new ilRadioGroupInputGUI($this->lng->txt('frm_default_view'), 'default_view');
119  $option_view_by_posts = new ilRadioOption($this->lng->txt('sort_by_posts'), (string) ilForumProperties::VIEW_TREE);
120  $option_view_by_posts->setInfo($this->lng->txt('sort_by_posts_desc'));
121  $rg_pro->addOption($option_view_by_posts);
122  $option_view_by_date = new ilRadioOption($this->lng->txt('sort_by_date'), (string) ilForumProperties::VIEW_DATE);
123  $option_view_by_date->setInfo($this->lng->txt('sort_by_date_desc'));
124  $sub_group = new ilRadioGroupInputGUI('', 'default_view_by_date');
125  $sub_group->addOption(new ilRadioOption($this->lng->txt('ascending_order'), (string) ilForumProperties::VIEW_DATE_ASC));
126  $sub_group->addOption(new ilRadioOption($this->lng->txt('descending_order'), (string) ilForumProperties::VIEW_DATE_DESC));
127 
128  $option_view_by_date->addSubItem($sub_group);
129  $rg_pro->addOption($option_view_by_date);
130  $a_form->addItem($rg_pro);
131 
132  $userFunctionsHeader = new ilFormSectionHeaderGUI();
133  $userFunctionsHeader->setTitle($this->lng->txt('frm_settings_user_functions_header'));
134  $a_form->addItem($userFunctionsHeader);
135 
136  $frm_subject = new ilRadioGroupInputGUI($this->lng->txt('frm_subject_setting'), 'subject_setting');
137  $frm_subject->addOption(new ilRadioOption($this->lng->txt('preset_subject'), 'preset_subject'));
138  $frm_subject->addOption(new ilRadioOption($this->lng->txt('add_re_to_subject'), 'add_re_to_subject'));
139  $frm_subject->addOption(new ilRadioOption($this->lng->txt('empty_subject'), 'empty_subject'));
140  $a_form->addItem($frm_subject);
141 
142  $cb_prop = new ilCheckboxInputGUI($this->lng->txt('enable_thread_ratings'), 'thread_rating');
143  $cb_prop->setValue('1');
144  $cb_prop->setInfo($this->lng->txt('enable_thread_ratings_info'));
145  $a_form->addItem($cb_prop);
146 
148  $frm_upload = new ilCheckboxInputGUI($this->lng->txt('file_upload_allowed'), 'file_upload_allowed');
149  $frm_upload->setValue('1');
150  $frm_upload->setInfo($this->lng->txt('allow_file_upload_desc'));
151  $a_form->addItem($frm_upload);
152  }
153 
154  $moderatorFunctionsHeader = new ilFormSectionHeaderGUI();
155  $moderatorFunctionsHeader->setTitle($this->lng->txt('frm_settings_mod_functions_header'));
156  $a_form->addItem($moderatorFunctionsHeader);
157 
158  $cb_prop = new ilCheckboxInputGUI($this->lng->txt('activate_new_posts'), 'post_activation');
159  $cb_prop->setValue('1');
160  $cb_prop->setInfo($this->lng->txt('post_activation_desc'));
161  $a_form->addItem($cb_prop);
162 
163  $cb_prop = new ilCheckboxInputGUI($this->lng->txt('mark_moderator_posts'), 'mark_mod_posts');
164  $cb_prop->setValue('1');
165  $cb_prop->setInfo($this->lng->txt('mark_moderator_posts_desc'));
166  $a_form->addItem($cb_prop);
167 
168  if ($this->settings->get('enable_anonymous_fora') || $this->settings->get('enable_fora_statistics')) {
169  $privacyHeader = new ilFormSectionHeaderGUI();
170  $privacyHeader->setTitle($this->lng->txt('frm_settings_privacy_header'));
171  $a_form->addItem($privacyHeader);
172  }
173 
174  if ($this->settings->get('enable_fora_statistics')) {
175  $cb_prop = new ilCheckboxInputGUI($this->lng->txt('frm_statistics_enabled'), 'statistics_enabled');
176  $cb_prop->setValue('1');
177  $cb_prop->setInfo($this->lng->txt('frm_statistics_enabled_desc'));
178  $a_form->addItem($cb_prop);
179  }
180 
181  if ($this->settings->get('enable_anonymous_fora') || $this->parent_obj->objProperties->isAnonymized()) {
182  $cb_prop = new ilCheckboxInputGUI($this->lng->txt('frm_anonymous_posting'), 'anonymized');
183  $cb_prop->setValue('1');
184  $cb_prop->setInfo($this->lng->txt('frm_anonymous_posting_desc'));
185  $a_form->addItem($cb_prop);
186  }
187  }
This class represents an option in a radio group.
addOption(ilRadioOption $a_option)
addAvailabilitySection(ilPropertyFormGUI $form)
This class represents a property in a property form.
+ Here is the call graph for this function:

◆ getCustomValues()

ilForumSettingsGUI::getCustomValues ( array &  $a_values)

Definition at line 251 of file class.ilForumSettingsGUI.php.

References ilForumProperties\VIEW_DATE, ilForumProperties\VIEW_DATE_ASC, ilForumProperties\VIEW_DATE_DESC, and ilForumProperties\VIEW_TREE.

251  : void
252  {
253  $a_values['anonymized'] = $this->parent_obj->objProperties->isAnonymized();
254  $a_values['statistics_enabled'] = $this->parent_obj->objProperties->isStatisticEnabled();
255  $a_values['post_activation'] = $this->parent_obj->objProperties->isPostActivationEnabled();
256  $a_values['subject_setting'] = $this->parent_obj->objProperties->getSubjectSetting();
257  $a_values['mark_mod_posts'] = $this->parent_obj->objProperties->getMarkModeratorPosts();
258  $a_values['thread_rating'] = $this->parent_obj->objProperties->isIsThreadRatingEnabled();
259 
260  $default_view_value = $this->parent_obj->objProperties->getDefaultView();
261  if (in_array($default_view_value, [
266  ], true)) {
267  if (in_array($default_view_value, [
270  ], true)) {
271  $default_view_by_date = $default_view_value;
272  $default_view = ilForumProperties::VIEW_DATE;
273  } else {
274  $default_view = $default_view_value;
275  }
276  } else {
277  $default_view = ilForumProperties::VIEW_TREE;
278  }
279 
280  $a_values['default_view'] = $default_view;
281  if (isset($default_view_by_date)) {
282  $a_values['default_view_by_date'] = $default_view_by_date;
283  }
284  $a_values['file_upload_allowed'] = $this->parent_obj->objProperties->getFileUploadAllowed();
285 
286  $object = $this->parent_obj->getObject();
287  $a_values['activation_online'] = !$object->getOfflineStatus();
288  }

◆ getParticipants()

ilForumSettingsGUI::getParticipants ( )

Definition at line 672 of file class.ilForumSettingsGUI.php.

References ilCourseParticipants\_getInstanceByObjId(), ilGroupParticipants\_getInstanceByObjId(), ilObjectFactory\getInstanceByRefId(), and ILIAS\Repository\lng().

Referenced by saveEventsForUser(), showMembers(), and updateUserNotifications().

673  {
674  if (!$this->parent_obj->isParentObjectCrsOrGrp()) {
675  $this->error->raiseError(
676  $this->lng->txt('msg_no_perm_read'),
677  $this->error->MESSAGE
678  );
679  }
680 
681  $grp_ref_id = $this->tree->checkForParentType($this->parent_obj->getObject()->getRefId(), 'grp');
682  if ($grp_ref_id > 0) {
683  $parent_obj = ilObjectFactory::getInstanceByRefId($grp_ref_id);
684  return ilGroupParticipants::_getInstanceByObjId($parent_obj->getId());
685  }
686 
687  $crs_ref_id = $this->tree->checkForParentType($this->parent_obj->getObject()->getRefId(), 'crs');
688  $parent_obj = ilObjectFactory::getInstanceByRefId($crs_ref_id);
689 
690  return ilCourseParticipants::_getInstanceByObjId($parent_obj->getId());
691  }
static _getInstanceByObjId(int $a_obj_id)
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
Base class for course and group participants.
static _getInstanceByObjId(int $a_obj_id)
Get singleton instance.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRefId()

ilForumSettingsGUI::getRefId ( )

Definition at line 67 of file class.ilForumSettingsGUI.php.

References $ref_id.

Referenced by ilForumNotificationTableGUI\__construct().

67  : int
68  {
69  return $this->ref_id;
70  }
+ Here is the caller graph for this function:

◆ getUserNotificationTableData()

ilForumSettingsGUI::getUserNotificationTableData ( array  $user_ids)
private
Parameters
int[]$user_ids
Returns
array

Definition at line 422 of file class.ilForumSettingsGUI.php.

References $user_id, ilObjUser\_lookupLogin(), ilObjUser\_lookupName(), and ilLegacyFormElementsUtil\formCheckbox().

Referenced by showMembers().

422  : array
423  {
424  $counter = 0;
425  $users = [];
426  foreach ($user_ids as $user_id) {
427  $forced_events = $this->forumNotificationObj->getForcedEventsObjectByUserId($user_id);
428 
429  $users[$counter]['user_id'] = ilLegacyFormElementsUtil::formCheckbox(false, 'user_id[]', (string) $user_id);
430  $users[$counter]['login'] = ilObjUser::_lookupLogin($user_id);
431  $name = ilObjUser::_lookupName($user_id);
432  $users[$counter]['firstname'] = $name['firstname'];
433  $users[$counter]['lastname'] = $name['lastname'];
434  $users[$counter]['user_toggle_noti'] = $forced_events->getUserToggle();
435  $users[$counter]['notification_id'] = $forced_events->getNotificationId();
436  $users[$counter]['interested_events'] = $forced_events->getInterestedEvents();
437  $users[$counter]['usr_id_events'] = $user_id;
438  $users[$counter]['forum_id'] = $forced_events->getForumId();
439 
440  $counter++;
441  }
442  return $users;
443  }
static _lookupName(int $a_user_id)
lookup user name
static formCheckbox(bool $checked, string $varname, string $value, bool $disabled=false)
static _lookupLogin(int $a_user_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initForcedForumNotification()

ilForumSettingsGUI::initForcedForumNotification ( )
private

Definition at line 72 of file class.ilForumSettingsGUI.php.

References ilForumNotification\readAllForcedEvents().

Referenced by showMembers().

72  : void
73  {
74  $this->forumNotificationObj = new ilForumNotification($this->parent_obj->getObject()->getRefId());
75  $this->forumNotificationObj->readAllForcedEvents();
76  }
Class ilForumNotification.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initNotificationSettingsForm()

ilForumSettingsGUI::initNotificationSettingsForm ( )
private

Definition at line 724 of file class.ilForumSettingsGUI.php.

References ilRadioOption\addSubItem(), ilForumNotificationEvents\CENSORED, ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), null, ilForumNotificationEvents\POST_DELETED, ilForumNotificationEvents\THREAD_DELETED, ilForumNotificationEvents\UNCENSORED, and ilForumNotificationEvents\UPDATED.

Referenced by showMembers(), and updateNotificationSettings().

724  : bool
725  {
726  if (null === $this->notificationSettingsForm) {
727  $form = new ilPropertyFormGUI();
728  $form->setFormAction($this->ctrl->getFormAction($this, 'updateNotificationSettings'));
729  $form->setTitle($this->lng->txt('forums_notification_settings'));
730 
731  $radio_grp = new ilRadioGroupInputGUI('', 'notification_type');
732  $radio_grp->setValue('default');
733 
734  $opt_default = new ilRadioOption($this->lng->txt("user_decides_notification"), 'default');
735  $opt_0 = new ilRadioOption($this->lng->txt("settings_for_all_members"), 'all_users');
736  $opt_1 = new ilRadioOption($this->lng->txt("settings_per_users"), 'per_user');
737 
738  $radio_grp->addOption($opt_default);
739  $radio_grp->addOption($opt_0);
740  $radio_grp->addOption($opt_1);
741 
742  $chb_2 = new ilCheckboxInputGUI($this->lng->txt('user_toggle_noti'), 'usr_toggle');
743  $chb_2->setValue('1');
744 
745  $opt_0->addSubItem($chb_2);
746 
747  $cb_grp = new ilCheckboxGroupInputGUI($this->lng->txt('notification_settings'), 'notification_events');
748 
749  $notify_modified = new ilCheckboxOption($this->lng->txt('notify_modified'), (string) ilForumNotificationEvents::UPDATED);
750  $cb_grp->addOption($notify_modified);
751 
752  $notify_censored = new ilCheckboxOption($this->lng->txt('notify_censored'), (string) ilForumNotificationEvents::CENSORED);
753  $cb_grp->addOption($notify_censored);
754 
755  $notify_uncensored = new ilCheckboxOption($this->lng->txt('notify_uncensored'), (string) ilForumNotificationEvents::UNCENSORED);
756  $cb_grp->addOption($notify_uncensored);
757 
758  $notify_post_deleted = new ilCheckboxOption($this->lng->txt('notify_post_deleted'), (string) ilForumNotificationEvents::POST_DELETED);
759  $cb_grp->addOption($notify_post_deleted);
760 
761  $notify_thread_deleted = new ilCheckboxOption($this->lng->txt('notify_thread_deleted'), (string) ilForumNotificationEvents::THREAD_DELETED);
762  $cb_grp->addOption($notify_thread_deleted);
763  $opt_0->addSubItem($cb_grp);
764 
765  $form->addItem($radio_grp);
766 
767  $form->addCommandButton('updateNotificationSettings', $this->lng->txt('save'));
768 
769  $this->notificationSettingsForm = $form;
770 
771  return false;
772  }
773 
774  return true;
775  }
This class represents an option in a radio group.
This class represents an option in a checkbox group.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
This class represents a property in a property form.
This class represents a property in a property form.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveEventsForUser()

ilForumSettingsGUI::saveEventsForUser ( )

Definition at line 461 of file class.ilForumSettingsGUI.php.

References $lng, $ui_factory, ilForum\_getModerators(), ILIAS\Repository\access(), ilForumNotificationEventsFormGUI\build(), ILIAS\Repository\ctrl(), ilForumNotificationEvents\DEACTIVATED, getParticipants(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), null, ilForumNotification\setUserId(), and showMembers().

461  : void
462  {
463  if (!$this->access->checkAccess('write', '', $this->parent_obj->getRefId())) {
464  $this->error->raiseError(
465  $this->lng->txt('msg_no_perm_read'),
466  $this->error->MESSAGE
467  );
468  }
469 
470  $events_form_builder = new ilForumNotificationEventsFormGUI(
471  $this->ctrl->getFormAction($this, 'saveEventsForUser'),
472  null,
474  $this->lng
475  );
476 
477  if ($this->http->request()->getMethod() === 'POST') {
478  $form = $events_form_builder->build()->withRequest($this->http->request());
479  $formData = $form->getData();
480 
481  $interested_events = ilForumNotificationEvents::DEACTIVATED;
482 
483  foreach ($events_form_builder->getValidEvents() as $event) {
484  $interested_events += isset($formData[$event]) && $formData[$event] ? $events_form_builder->getValueForEvent(
485  $event
486  ) : 0;
487  }
488 
489  if (isset($formData['hidden_value']) && $formData['hidden_value']) {
490  $hidden_value = json_decode($formData['hidden_value'], false, 512, JSON_THROW_ON_ERROR);
491 
492  $oParticipants = $this->getParticipants();
493  $moderator_ids = ilForum::_getModerators($this->parent_obj->getObject()->getRefId());
494  $admin_ids = $oParticipants->getAdmins();
495  $member_ids = $oParticipants->getMembers();
496  $tutor_ids = $oParticipants->getTutors();
497 
498  $valid_usr_ids = array_unique(array_merge($moderator_ids, $admin_ids, $member_ids, $tutor_ids));
499 
500  if (in_array($hidden_value->usr_id, $valid_usr_ids)) {
501  $frm_noti = new ilForumNotification($this->parent_obj->getRefId());
502  $frm_noti->setUserId($hidden_value->usr_id);
503  $frm_noti->setForumId($this->parent_obj->getObject()->getId());
504  $frm_noti->setInterestedEvents($interested_events);
505  $frm_noti->updateInterestedEvents();
506  }
507  }
508  }
509 
510  $this->tpl->setOnScreenMessage('success', $this->lng->txt('saved_successfully'), true);
511 
512  $this->showMembers();
513  }
readonly ILIAS UI Factory $ui_factory
readonly ilLanguage $lng
Class ilForumNotification.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static http()
Fetches the global http state from ILIAS.
static _getModerators(int $a_ref_id)
+ Here is the call graph for this function:

◆ settingsTabs()

ilForumSettingsGUI::settingsTabs ( )

Definition at line 189 of file class.ilForumSettingsGUI.php.

References ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ILIAS\Repository\settings(), and ILIAS\Repository\tabs().

Referenced by executeCommand(), getCustomForm(), and ilObjForumGUI\getSafePostCommands().

189  : bool
190  {
191  $this->tabs->addSubTabTarget(
192  self::UI_SUB_TAB_ID_BASIC_SETTINGS,
193  $this->ctrl->getLinkTarget($this->parent_obj, 'edit'),
194  '',
195  [strtolower(ilObjForumGUI::class)]
196  );
197 
198  if ($this->settings->get('forum_notification') > 0) {
199  // check if there a parent-node is a grp or crs
200  $grp_ref_id = $this->tree->checkForParentType($this->parent_obj->getRefId(), 'grp');
201  $crs_ref_id = $this->tree->checkForParentType($this->parent_obj->getRefId(), 'crs');
202 
203  #show member-tab for notification if forum-notification is enabled in administration
204  if (($grp_ref_id > 0 || $crs_ref_id > 0) && $this->access->checkAccess(
205  'write',
206  '',
207  $this->parent_obj->getRefId()
208  )) {
209  $cmd = '';
210  if ($this->dic->http()->wrapper()->query()->has('cmd')) {
211  $cmd = $this->dic->http()->wrapper()->query()->retrieve(
212  'cmd',
213  $this->dic->refinery()->kindlyTo()->string()
214  );
215  }
216  $mem_active = ['showMembers', 'forums_notification_settings'];
217  $force_mem_active = false;
218  if (in_array($cmd, $mem_active, true)) {
219  $force_mem_active = true;
220  }
221  $this->tabs->addSubTabTarget(
222  self::UI_SUB_TAB_ID_NOTIFICATIONS,
223  $this->ctrl->getLinkTarget($this, 'showMembers'),
224  '',
225  [strtolower(self::class)],
226  '',
227  $force_mem_active
228  );
229  }
230  }
231 
232  $this->tabs->addSubTabTarget(
233  self::UI_SUB_TAB_ID_NEWS,
234  $this->ctrl->getLinkTargetByClass(ilContainerNewsSettingsGUI::class),
235  '',
236  [strtolower(ilContainerNewsSettingsGUI::class)]
237  );
238 
239  $this->tabs->addSubTabTarget(
240  self::UI_SUB_TAB_ID_STYLE,
241  $this->ctrl->getLinkTargetByClass(strtolower(ilObjectContentStyleSettingsGUI::class), ""),
242  '',
243  [strtolower(ilObjectContentStyleSettingsGUI::class)]
244  );
245 
246  $this->tabs->activateTab(self::UI_TAB_ID_SETTINGS);
247 
248  return true;
249  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showMembers()

ilForumSettingsGUI::showMembers ( )

Definition at line 342 of file class.ilForumSettingsGUI.php.

References ilForum\_getModerators(), ILIAS\Repository\access(), ilForumNotificationEvents\CENSORED, getParticipants(), getUserNotificationTableData(), initForcedForumNotification(), initNotificationSettingsForm(), ILIAS\Repository\lng(), ilForumNotificationEvents\POST_DELETED, ilForumNotification\setAdminForce(), showMembersTable(), ilForumNotificationEvents\THREAD_DELETED, ilForumNotificationEvents\UNCENSORED, and ilForumNotificationEvents\UPDATED.

Referenced by disableAdminForceNoti(), disableHideUserToggleNoti(), enableAdminForceNoti(), enableHideUserToggleNoti(), saveEventsForUser(), and updateNotificationSettings().

342  : void
343  {
344  if (!$this->access->checkAccess('write', '', $this->parent_obj->getRefId())) {
345  $this->error->raiseError(
346  $this->lng->txt('msg_no_perm_read'),
347  $this->error->MESSAGE
348  );
349  }
350 
351  $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.forums_members_list.html', 'components/ILIAS/Forum');
352 
353  // instantiate the property form
354  if (!$this->initNotificationSettingsForm()) {
355  // if the form was just created set the values fetched from database
356  $interested_events = $this->parent_obj->objProperties->getInterestedEvents();
357 
358  $form_events = [];
359  if (($interested_events & ilForumNotificationEvents::UPDATED) !== 0) {
360  $form_events[] = ilForumNotificationEvents::UPDATED;
361  }
362 
363  if (($interested_events & ilForumNotificationEvents::CENSORED) !== 0) {
364  $form_events[] = ilForumNotificationEvents::CENSORED;
365  }
366 
367  if (($interested_events & ilForumNotificationEvents::UNCENSORED) !== 0) {
368  $form_events[] = ilForumNotificationEvents::UNCENSORED;
369  }
370 
371  if (($interested_events & ilForumNotificationEvents::POST_DELETED) !== 0) {
373  }
374 
375  if (($interested_events & ilForumNotificationEvents::THREAD_DELETED) !== 0) {
377  }
378 
379  $this->notificationSettingsForm->setValuesByArray([
380  'notification_type' => $this->parent_obj->objProperties->getNotificationType(),
381  'adm_force' => $this->parent_obj->objProperties->isAdminForceNoti(),
382  'usr_toggle' => $this->parent_obj->objProperties->isUserToggleNoti(),
383  'notification_events' => $form_events
384  ]);
385  }
386 
387  // set form html into template
388  $this->tpl->setVariable('NOTIFICATIONS_SETTINGS_FORM', $this->notificationSettingsForm->getHTML());
389 
390  $oParticipants = $this->getParticipants();
391 
392  $moderator_ids = ilForum::_getModerators($this->parent_obj->getObject()->getRefId());
393 
394  $admin_ids = $oParticipants->getAdmins();
395  $member_ids = $oParticipants->getMembers();
396  $tutor_ids = $oParticipants->getTutors();
397 
398  if ($this->parent_obj->objProperties->getNotificationType() === 'default') {
399  // update forum_notification table
400  $forum_noti = new ilForumNotification($this->parent_obj->getObject()->getRefId());
401  $forum_noti->setAdminForce($this->parent_obj->objProperties->isAdminForceNoti());
402  $forum_noti->setUserToggle($this->parent_obj->objProperties->isUserToggleNoti());
403  $forum_noti->setForumId($this->parent_obj->objProperties->getObjId());
404  $forum_noti->setInterestedEvents($this->parent_obj->objProperties->getInterestedEvents());
405  $forum_noti->update();
406  } elseif ($this->parent_obj->objProperties->getNotificationType() === 'per_user') {
408 
409  $moderators = $this->getUserNotificationTableData($moderator_ids);
410  $admins = $this->getUserNotificationTableData($admin_ids);
411  $members = $this->getUserNotificationTableData($member_ids);
412  $tutors = $this->getUserNotificationTableData($tutor_ids);
413 
414  $this->showMembersTable($moderators, $admins, $members, $tutors);
415  }
416  }
showMembersTable(array $moderators, array $admins, array $members, array $tutors)
Class ilForumNotification.
setAdminForce(bool $a_admin_force)
static _getModerators(int $a_ref_id)
getUserNotificationTableData(array $user_ids)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showMembersTable()

ilForumSettingsGUI::showMembersTable ( array  $moderators,
array  $admins,
array  $members,
array  $tutors 
)
private

Definition at line 445 of file class.ilForumSettingsGUI.php.

References $data.

Referenced by showMembers().

445  : void
446  {
447  foreach (array_filter([
448  'moderators' => $moderators,
449  'administrator' => $admins,
450  'tutors' => $tutors,
451  'members' => $members
452  ]) as $type => $data) {
453  $tbl = new ilForumNotificationTableGUI($this, 'showMembers', $type);
454  $tbl->setData($data);
455 
456  $this->tpl->setCurrentBlock(strtolower($type) . '_table');
457  $this->tpl->setVariable(strtoupper($type), $tbl->getHTML());
458  }
459  }
Class ilForumNotificationTableGUI.
+ Here is the caller graph for this function:

◆ updateCustomValues()

ilForumSettingsGUI::updateCustomValues ( ilPropertyFormGUI  $a_form)

Definition at line 290 of file class.ilForumSettingsGUI.php.

References ilSession\get(), ilPropertyFormGUI\getInput(), ILIAS\Repository\int(), ilForumProperties\isFileUploadGloballyAllowed(), ilSession\set(), ILIAS\Repository\settings(), ilForumProperties\VIEW_DATE, ilForumProperties\VIEW_DATE_ASC, ilForumProperties\VIEW_DATE_DESC, and ilForumProperties\VIEW_TREE.

290  : void
291  {
292  $default_view_input_value = (int) $a_form->getInput('default_view');
293  if (in_array($default_view_input_value, [
298  ], true)) {
299  if ($default_view_input_value === ilForumProperties::VIEW_DATE) {
300  $default_view_order_by_date_value = (int) $a_form->getInput('default_view_by_date');
301  if (in_array($default_view_order_by_date_value, [
304  ], true)) {
305  $default_view_input_value = $default_view_order_by_date_value;
306  }
307  }
308  $default_view = $default_view_input_value;
309  } else {
310  $default_view = ilForumProperties::VIEW_TREE;
311  }
312  $this->parent_obj->objProperties->setDefaultView($default_view);
313 
314  // BUGFIX FOR 11271
315 
316  $view_mode = 'viewmode_' . $this->parent_obj->getObject()->getId();
317  if (ilSession::get($view_mode)) {
318  ilSession::set($view_mode, $default_view);
319  }
320 
321  if ($this->settings->get('enable_anonymous_fora') || $this->parent_obj->objProperties->isAnonymized()) {
322  $this->parent_obj->objProperties->setAnonymisation((bool) $a_form->getInput('anonymized'));
323  }
324  if ($this->settings->get('enable_fora_statistics')) {
325  $this->parent_obj->objProperties->setStatisticsStatus((bool) $a_form->getInput('statistics_enabled'));
326  }
327  $this->parent_obj->objProperties->setPostActivation((bool) $a_form->getInput('post_activation'));
328  $this->parent_obj->objProperties->setSubjectSetting($a_form->getInput('subject_setting'));
329  $this->parent_obj->objProperties->setMarkModeratorPosts((bool) $a_form->getInput('mark_mod_posts'));
330  $this->parent_obj->objProperties->setIsThreadRatingEnabled((bool) $a_form->getInput('thread_rating'));
332  $this->parent_obj->objProperties->setFileUploadAllowed((bool) $a_form->getInput('file_upload_allowed'));
333  }
334  $this->parent_obj->objProperties->update();
335  $this->obj_service->commonSettings()->legacyForm($a_form, $this->parent_obj->getObject())->saveTileImage();
336 
337  $object = $this->parent_obj->getObject();
338  $object->setOfflineStatus(!(bool) $a_form->getInput('activation_online'));
339  $object->update();
340  }
static get(string $a_var)
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...
static set(string $a_var, $a_val)
Set a value.
+ Here is the call graph for this function:

◆ updateNotificationSettings()

ilForumSettingsGUI::updateNotificationSettings ( )

Definition at line 777 of file class.ilForumSettingsGUI.php.

References ILIAS\Repository\access(), ilForumNotification\deleteNotificationAllUsers(), initNotificationSettingsForm(), ILIAS\Repository\int(), ILIAS\Repository\lng(), showMembers(), and updateUserNotifications().

777  : void
778  {
779  if (!$this->access->checkAccess('write', '', $this->parent_obj->getRefId())) {
780  $this->error->raiseError(
781  $this->lng->txt('msg_no_perm_read'),
782  $this->error->MESSAGE
783  );
784  }
785 
786  // instantiate the property form
788 
789  // check input
790  if ($this->notificationSettingsForm->checkInput()) {
791  $notification_type = '';
792  if ($this->dic->http()->wrapper()->post()->has('notification_type')) {
793  $notification_type = $this->dic->http()->wrapper()->post()->retrieve(
794  'notification_type',
795  $this->dic->refinery()->kindlyTo()->string()
796  );
797  }
798 
799  if ($notification_type === 'all_users') {
800  // set values and call update
801  $notification_events = $this->notificationSettingsForm->getInput('notification_events');
802  $interested_events = 0;
803 
804  if (is_array($notification_events)) {
805  foreach ($notification_events as $activated_event) {
806  $interested_events += (int) $activated_event;
807  }
808  }
809 
810  $this->parent_obj->objProperties->setAdminForceNoti(true);
811  $this->parent_obj->objProperties->setUserToggleNoti((bool) $this->notificationSettingsForm->getInput('usr_toggle'));
812  $this->parent_obj->objProperties->setNotificationType('all_users');
813  $this->parent_obj->objProperties->setInterestedEvents($interested_events);
814  $this->updateUserNotifications(true);
815  } elseif ($notification_type === 'per_user') {
816  $this->parent_obj->objProperties->setNotificationType('per_user');
817  $this->parent_obj->objProperties->setAdminForceNoti(true);
818  $this->parent_obj->objProperties->setUserToggleNoti(false);
819  $this->updateUserNotifications();
820  } else { // if($notification_type] == 'default')
821  $this->parent_obj->objProperties->setNotificationType('default');
822  $this->parent_obj->objProperties->setAdminForceNoti(false);
823  $this->parent_obj->objProperties->setUserToggleNoti(false);
824  $frm_noti = new ilForumNotification($this->parent_obj->getObject()->getRefId());
825  $frm_noti->deleteNotificationAllUsers();
826  }
827 
828  $this->parent_obj->objProperties->update();
829 
830  $this->tpl->setOnScreenMessage('success', $this->lng->txt('saved_successfully'));
831  }
832  $this->notificationSettingsForm->setValuesByPost();
833 
834  $this->showMembers();
835  }
Class ilForumNotification.
updateUserNotifications(bool $update_all_users=false)
+ Here is the call graph for this function:

◆ updateUserNotifications()

ilForumSettingsGUI::updateUserNotifications ( bool  $update_all_users = false)
private

Definition at line 693 of file class.ilForumSettingsGUI.php.

References $user_id, ilForum\_getModerators(), and getParticipants().

Referenced by updateNotificationSettings().

693  : void
694  {
695  $oParticipants = $this->getParticipants();
696 
697  $frm_noti = new ilForumNotification($this->parent_obj->getObject()->getRefId());
698  $moderator_ids = ilForum::_getModerators($this->parent_obj->getObject()->getRefId());
699 
700  $admin_ids = $oParticipants->getAdmins();
701  $member_ids = $oParticipants->getMembers();
702  $tutor_ids = $oParticipants->getTutors();
703 
704  $all_forum_users = array_merge($moderator_ids, $admin_ids, $member_ids, $tutor_ids);
705  $all_forum_users = array_unique($all_forum_users);
706 
707  $all_notis = $frm_noti->read();
708 
709  foreach ($all_forum_users as $user_id) {
710  $frm_noti->setUserId($user_id);
711 
712  $frm_noti->setAdminForce(true);
713  $frm_noti->setUserToggle($this->parent_obj->objProperties->isUserToggleNoti());
714  $frm_noti->setInterestedEvents($this->parent_obj->objProperties->getInterestedEvents());
715 
716  if (array_key_exists($user_id, $all_notis) && $update_all_users) {
717  $frm_noti->update();
718  } elseif (!$frm_noti->existsNotification()) {
719  $frm_noti->insertAdminForce();
720  }
721  }
722  }
Class ilForumNotification.
static _getModerators(int $a_ref_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $access

readonly ilAccessHandler ilForumSettingsGUI::$access
private

Definition at line 33 of file class.ilForumSettingsGUI.php.

◆ $ctrl

readonly ilCtrlInterface ilForumSettingsGUI::$ctrl
private

Definition at line 28 of file class.ilForumSettingsGUI.php.

◆ $dic

readonly ILIAS DI Container ilForumSettingsGUI::$dic
private

Definition at line 40 of file class.ilForumSettingsGUI.php.

◆ $error

readonly ilErrorHandling ilForumSettingsGUI::$error
private

Definition at line 41 of file class.ilForumSettingsGUI.php.

◆ $forumNotificationObj

ilForumNotification ilForumSettingsGUI::$forumNotificationObj
private

Definition at line 36 of file class.ilForumSettingsGUI.php.

◆ $http

readonly ILIAS HTTP GlobalHttpState ilForumSettingsGUI::$http
private

Definition at line 35 of file class.ilForumSettingsGUI.php.

◆ $lng

readonly ilLanguage ilForumSettingsGUI::$lng
private

Definition at line 30 of file class.ilForumSettingsGUI.php.

Referenced by saveEventsForUser().

◆ $notificationSettingsForm

ilPropertyFormGUI ilForumSettingsGUI::$notificationSettingsForm = null
private

Definition at line 37 of file class.ilForumSettingsGUI.php.

◆ $obj_service

readonly ilObjectService ilForumSettingsGUI::$obj_service
private

Definition at line 39 of file class.ilForumSettingsGUI.php.

◆ $ref_id

readonly int ilForumSettingsGUI::$ref_id
private

Definition at line 38 of file class.ilForumSettingsGUI.php.

Referenced by getRefId().

◆ $settings

readonly ilSetting ilForumSettingsGUI::$settings
private

Definition at line 31 of file class.ilForumSettingsGUI.php.

◆ $tabs

readonly ilTabsGUI ilForumSettingsGUI::$tabs
private

Definition at line 32 of file class.ilForumSettingsGUI.php.

◆ $tpl

readonly ilGlobalTemplateInterface ilForumSettingsGUI::$tpl
private

Definition at line 29 of file class.ilForumSettingsGUI.php.

◆ $tree

readonly ilTree ilForumSettingsGUI::$tree
private

Definition at line 34 of file class.ilForumSettingsGUI.php.

◆ $ui_factory

readonly ILIAS UI Factory ilForumSettingsGUI::$ui_factory
private

Definition at line 42 of file class.ilForumSettingsGUI.php.

Referenced by saveEventsForUser().


The documentation for this class was generated from the following file: