ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilMembershipAdministrationGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once "./Services/Object/classes/class.ilObjectGUI.php" ;
5include_once "./Services/Administration/classes/class.ilAdministrationSettingsFormHandler.php" ;
6
16{
17 const SUB_TAB_GENERAL_SETTINGS = 'settings';
18 const SUB_TAB_PRINT_VIEW = 'print_view';
19
20
21 public function __construct($a_data, $a_id, $a_call_by_reference = true, $a_prepare_output = true)
22 {
23 $this->type = $this->getType();
24 parent::__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
25
26 $this->lng->loadLanguageModule("grp");
27 $this->lng->loadLanguageModule('mem');
28 }
29
30 abstract protected function getType();
31
32 abstract protected function getParentObjType();
33
34 abstract protected function getAdministrationFormId();
35
36 public function executeCommand()
37 {
38 global $DIC;
39 $next_class = $this->ctrl->getNextClass($this);
40 $cmd = $this->ctrl->getCmd();
41
42 $this->prepareOutput();
43
44 if (!$DIC->rbac()->system()->checkAccess("visible,read", $this->object->getRefId())) {
45 $DIC['ilErr']->raiseError($this->lng->txt("no_permission"), $DIC['ilErr']->WARNING);
46 }
47
48 switch ($next_class) {
49 case 'ilpermissiongui':
50 $this->tabs_gui->setTabActive("perm_settings");
51 include_once "Services/AccessControl/classes/class.ilPermissionGUI.php";
52 $perm_gui = new ilPermissionGUI($this);
53 $this->ctrl->forwardCommand($perm_gui);
54 break;
55
56 case 'ilmemberexportsettingsgui':
57 $this->setSubTabs('settings', self::SUB_TAB_PRINT_VIEW);
58 include_once './Services/Membership/classes/Export/class.ilMemberExportSettingsGUI.php';
59 $settings_gui = new ilMemberExportSettingsGUI($this->getParentObjType());
60 $this->ctrl->forwardCommand($settings_gui);
61 break;
62
63 case 'iluseractionadmingui':
64 include_once("./Services/User/Actions/classes/class.ilUserActionAdminGUI.php");
65 include_once("./Services/User/Gallery/classes/class.ilGalleryUserActionContext.php");
66 $gui = new ilUserActionAdminGUI();
67 $gui->setActionContext(new ilGalleryUserActionContext());
68 $this->setSubTabs('settings', "actions");
69 $this->ctrl->forwardCommand($gui);
70 break;
71
72 default:
73 if (!$cmd || $cmd == "view") {
74 $cmd = "editSettings";
75 }
76 $this->$cmd();
77 break;
78 }
79 return true;
80 }
81
82 public function getAdminTabs()
83 {
84 global $DIC;
85
86 $rbacsystem = $DIC['rbacsystem'];
87
88 if ($rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
89 $this->tabs_gui->addTarget(
90 "settings",
91 $this->ctrl->getLinkTarget($this, "editSettings"),
92 array("editSettings", "view")
93 );
94 }
95
96 if ($rbacsystem->checkAccess("edit_permission", $this->object->getRefId())) {
97 $this->tabs_gui->addTarget(
98 "perm_settings",
99 $this->ctrl->getLinkTargetByClass("ilpermissiongui", "perm"),
100 array(),
101 "ilpermissiongui"
102 );
103 }
104 }
105
106 public function editSettings(ilPropertyFormGUI $a_form = null)
107 {
108 $this->setSubTabs('settings', self::SUB_TAB_GENERAL_SETTINGS);
109 $this->tabs_gui->setTabActive('settings');
110
111 if (!$a_form) {
112 $a_form = $this->initFormSettings();
113 }
114 $this->tpl->setContent($a_form->getHTML());
115 return true;
116 }
117
118 public function saveSettings()
119 {
120 global $DIC;
121
122 $ilSetting = $DIC['ilSetting'];
123
124 $this->checkPermission("write");
125
126 $form = $this->initFormSettings();
127 if ($form->checkInput()) {
128 if ($this->save($form)) {
129 $ilSetting->set(
130 'mail_' . $this->getParentObjType() . '_member_notification',
131 (int) $form->getInput('mail_member_notification')
132 );
133
134 $ilSetting->set(
135 'mail_' . $this->getParentObjType() . '_admin_notification',
136 (int) $form->getInput('mail_admin_notification')
137 );
138
139 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
140 $this->ctrl->redirect($this, "editSettings");
141 }
142 }
143
144 $form->setValuesByPost();
145 $this->editSettings($form);
146 }
147
148 protected function initFormSettings()
149 {
150 global $DIC;
151
152 $ilSetting = $DIC['ilSetting'];
153 $ilAccess = $DIC['ilAccess'];
154
155 include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
156 $form = new ilPropertyFormGUI();
157 $form->setFormAction($this->ctrl->getFormAction($this, "saveSettings"));
158 $form->setTitle($this->lng->txt("settings"));
159
160 $this->addFieldsToForm($form);
161
162 $this->lng->loadLanguageModule("mail");
163
164
167 $form,
168 $this
169 );
170
171 $sec = new ilFormSectionHeaderGUI();
172 $sec->setTitle($this->lng->txt('mail_notification_membership_section'));
173 $form->addItem($sec);
174
175 // member notification
176 $cn = new ilCheckboxInputGUI($this->lng->txt('mail_enable_' . $this->getParentObjType() . '_member_notification'), 'mail_member_notification');
177 $cn->setInfo($this->lng->txt('mail_enable_' . $this->getParentObjType() . '_member_notification_info'));
178 $cn->setChecked($ilSetting->get('mail_' . $this->getParentObjType() . '_member_notification', true));
179 $form->addItem($cn);
180
181 // default admin membership notification
182 $an = new ilCheckboxInputGUI($this->lng->txt('mail_enable_' . $this->getParentObjType() . '_admin_notification'), 'mail_admin_notification');
183 $an->setInfo($this->lng->txt('mail_enable_' . $this->getParentObjType() . '_admin_notification_info'));
184 $an->setChecked($ilSetting->get('mail_' . $this->getParentObjType() . '_admin_notification', true));
185 $form->addItem($an);
186
187 if ($ilAccess->checkAccess("write", "", $this->object->getRefId())) {
188 $form->addCommandButton("saveSettings", $this->lng->txt("save"));
189 $form->addCommandButton("view", $this->lng->txt("cancel"));
190 }
191
192 return $form;
193 }
194
195 public function addToExternalSettingsForm($a_form_id)
196 {
197 global $DIC;
198
199 $ilSetting = $DIC['ilSetting'];
200
201 switch ($a_form_id) {
203
204 $this->lng->loadLanguageModule("mail");
205
206 $fields = array(
207 'mail_enable_' . $this->getParentObjType() . '_member_notification' => array($ilSetting->get('mail_' . $this->getParentObjType() . '_member_notification', true), ilAdministrationSettingsFormHandler::VALUE_BOOL),
208 'mail_enable_' . $this->getParentObjType() . '_admin_notification' => array($ilSetting->get('mail_' . $this->getParentObjType() . '_admin_notification', true), ilAdministrationSettingsFormHandler::VALUE_BOOL)
209 );
210
211 return array(array("editSettings", $fields));
212 }
213 }
214
215 protected function addFieldsToForm(ilPropertyFormGUI $a_form)
216 {
217 }
218
219 protected function save(ilPropertyFormGUI $a_form)
220 {
221 return true;
222 }
223
229 protected function setSubTabs($a_main_tab, $a_active_tab)
230 {
231 if ($a_main_tab == 'settings') {
232 $GLOBALS['DIC']['ilTabs']->addSubTab(
233 self::SUB_TAB_GENERAL_SETTINGS,
234 $GLOBALS['DIC']['lng']->txt('mem_settings_tab_' . self::SUB_TAB_GENERAL_SETTINGS),
235 $GLOBALS['DIC']['ilCtrl']->getLinkTarget($this, 'editSettings')
236 );
237 $GLOBALS['DIC']['ilTabs']->addSubTab(
238 self::SUB_TAB_PRINT_VIEW,
239 $GLOBALS['DIC']['lng']->txt('mem_settings_tab_' . self::SUB_TAB_PRINT_VIEW),
240 $GLOBALS['DIC']['ilCtrl']->getLinkTargetByClass('ilMemberExportSettingsGUI', 'printViewSettings')
241 );
242 $GLOBALS['DIC']['ilTabs']->addSubTab(
243 "actions",
244 $GLOBALS['DIC']['lng']->txt("mmbr_gallery_user_actions"),
245 $GLOBALS['DIC']['ilCtrl']->getLinkTargetByClass("iluseractionadmingui")
246 );
247
248 $GLOBALS['DIC']['ilTabs']->activateTab($a_main_tab);
249 $GLOBALS['DIC']['ilTabs']->activateSubTab($a_active_tab);
250 }
251 }
252}
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
An exception for terminatinating execution or to throw for unit testing.
static addFieldsToForm($a_form_id, ilPropertyFormGUI $a_form, ilObjectGUI $a_parent_gui)
This class represents a checkbox property in a property form.
This class represents a section header in a property form.
Gallery context for user actions.
__construct($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true)
getAdminTabs()
administration tabs show only permissions and trash folder
setSubTabs($a_main_tab, $a_active_tab)
Set sub tabs.
Class ilObjectGUI Basic methods of all Output classes.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
prepareOutput($a_show_subobjects=true)
prepare output
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents a property form user interface.
User action administration GUI class.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $ilSetting
Definition: privfeed.php:17
$DIC
Definition: xapitoken.php:46