ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilObjNotificationAdminGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once "./Services/Object/classes/class.ilObjectGUI.php";
5require_once "./Services/Notifications/classes/class.ilObjNotificationAdmin.php";
6require_once "./Services/Notifications/classes/class.ilObjNotificationAdminAccess.php";
7
20{
25 public function __construct($a_data, $a_id = 0, $a_call_by_reference = true, $a_prepare_output = true)
26 {
27 $this->type = "nota";
28 parent::__construct($a_data, $a_id, $a_call_by_reference, false);
29 $this->lng->loadLanguageModule('notification');
30 }
31
32 public static function _forwards()
33 {
34 return array();
35 }
36
37 public function executeCommand()
38 {
39 global $ilAccess, $ilNavigationHistory, $ilCtrl, $ilUser, $ilTabs;
40
41 $next_class = $this->ctrl->getNextClass($this);
42 $cmd = $this->ctrl->getCmd();
43
44 $this->prepareOutput();
45
46 switch ($next_class) {
47 case 'ilpermissiongui':
48 //$ilTabs->activateTab("id_permissions");
49 include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
50 $perm_gui = new ilPermissionGUI($this);
51 $ret =&$this->ctrl->forwardCommand($perm_gui);
52 break;
53
54 default:
55 $this->__initSubTabs();
56 $ilTabs->activateTab("view");
57
58 if (empty($cmd) || $cmd == 'view') {
59 $cmd = 'showTypes';
60 }
61
62 $cmd .= "Object";
63 $this->$cmd();
64 break;
65 }
66 }
67
73 public static function saveObject2($params = array())
74 {
75 global $objDefinition, $ilUser;
76
77 // create and insert file in grp_tree
78 require_once 'Services/Notifications/classes/class.ilObjNotificationAdmin.php';
79 $fileObj = new ilObjNotificationAdmin();
80 $fileObj->setTitle('notification admin');
81 $fileObj->create();
82 $fileObj->createReference();
83 $fileObj->putInTree(SYSTEM_FOLDER_ID);
84 //$fileObj->setPermissions($params['ref_id']);
85 // upload file to filesystem
86 }
87
88 public function setTabs()
89 {
90 global $ilAccess, $ilTabs, $lng;
91
92 $this->ctrl->setParameter($this, "ref_id", $this->ref_id);
93
94 if ($ilAccess->checkAccess("visible", "", $this->ref_id)) {
95 $ilTabs->addTab(
96 "id_info",
97 $lng->txt("info_short"),
98 $this->ctrl->getLinkTargetByClass(array("ilobjfilegui", "ilinfoscreengui"), "showSummary")
99 );
100 }
101
102 if ($ilAccess->checkAccess("edit_permission", "", $this->ref_id)) {
103 $ilTabs->addTab(
104 "id_permissions",
105 $lng->txt("perm_settings"),
106 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm")
107 );
108 }
109 }
110
111 // init sub tabs
112 public function __initSubTabs()
113 {
114 global $ilTabs, $ilSetting, $ilCtrl;
115
116 $ilTabs->addSubTabTarget("notification_general", $this->ctrl->getLinkTargetByClass('ilObjNotificationAdminGUI', "showGeneralSettings"));
117 //$ilTabs->addSubTabTarget("notification_admin_channels", $this->ctrl->getLinkTargetByClass('ilObjNotificationAdminGUI', "showChannels"));
118 $ilTabs->addSubTabTarget("notification_admin_types", $this->ctrl->getLinkTargetByClass('ilObjNotificationAdminGUI', "showTypes"));
119 $ilTabs->addSubTabTarget("notification_admin_matrix", $this->ctrl->getLinkTargetByClass('ilObjNotificationAdminGUI', "showConfigMatrix"));
120 }
121
122 public function addLocatorItems()
123 {
124 global $ilLocator;
125
126 if (is_object($this->object)) {
127 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, ""), "", $_GET["ref_id"]);
128 }
129 }
130
131 public function showGeneralSettingsObject($form = null)
132 {
133 require_once 'Services/Notifications/classes/class.ilNotificationAdminSettingsForm.php';
134
135 if ($form == null) {
137 $settings = new ilSetting('notifications');
138
145 $form->setValuesByArray(array_merge($settings->getAll(), $form->restored_values));
146 }
147
148 $form->setFormAction($this->ctrl->getFormAction($this, 'saveGeneralSettings'));
149 $form->addCommandButton('saveGeneralSettings', 'save');
150 $form->addCommandButton('showGeneralSettings', 'cancel');
151
152 $this->tpl->setContent($form->getHtml());
153 }
154
156 {
157 require_once 'Services/Notifications/classes/class.ilNotificationAdminSettingsForm.php';
158 #require_once 'Services/Administration/classes/class.ilSetting.php';
159
160 $settings = new ilSetting('notifications');
161
163 $form->setValuesByPost();
164 if (!$form->checkInput()) {
166 } else {
173 $values = $form->store_values;//array('enable_osd', 'osd_polling_intervall', 'enable_mail');
174
175 // handle custom channel settings
176 foreach ($values as $v) {
177 $settings->set($v, $_POST[$v]);
178 }
179
180 foreach ($_REQUEST['notifications'] as $type => $value) {
182 }
183
185 }
186 }
187
188 public function showTypesObject()
189 {
190 global $ilTabs;
191
192 $ilTabs->activateSubTab('notification_admin_types');
193
194 require_once 'Services/Notifications/classes/class.ilNotificationDatabaseHelper.php';
195 require_once 'Services/Notifications/classes/class.ilNotificationAdminSettingsForm.php';
196
198 $form->setFormAction($this->ctrl->getFormAction($this, 'showTypes'));
199 $form->addCommandButton('saveTypes', $this->lng->txt('save'));
200 $form->addCommandButton('showTypes', $this->lng->txt('cancel'));
201 $this->tpl->setContent($form->getHtml());
202 }
203
204 public function showChannelsObject()
205 {
206 global $ilTabs;
207
208 $ilTabs->activateSubTab('notification_admin_channels');
209
210 require_once 'Services/Notifications/classes/class.ilNotificationDatabaseHelper.php';
211 require_once 'Services/Notifications/classes/class.ilNotificationAdminSettingsForm.php';
212
214 $form->setFormAction($this->ctrl->getFormAction($this, 'showChannels'));
215 $form->addCommandButton('saveChannels', $this->lng->txt('save'));
216 $form->addCommandButton('showChannels', $this->lng->txt('cancel'));
217 $this->tpl->setContent($form->getHtml());
218 }
219
220 public function saveTypesObject()
221 {
222 require_once 'Services/Notifications/classes/class.ilNotificationDatabaseHelper.php';
223 foreach ($_REQUEST['notifications'] as $type => $value) {
225 }
226 $this->showTypesObject();
227 }
228
229 public function saveChannelsObject()
230 {
231 require_once 'Services/Notifications/classes/class.ilNotificationDatabaseHelper.php';
232 foreach ($_REQUEST['notifications'] as $type => $value) {
234 }
235 $this->showChannelsObject();
236 }
237
238 public function showConfigMatrixObject()
239 {
240 global $ilTabs;
241
242 $ilTabs->activateSubTab('notification_admin_matrix');
243
244 require_once 'Services/Notifications/classes/class.ilNotificationDatabaseHelper.php';
245 require_once 'Services/Notifications/classes/class.ilNotificationSettingsTable.php';
246
247 global $ilCtrl, $lng;
248
250
252 $table->setFormAction($ilCtrl->getFormAction($this, 'saveConfigMatrix'));
254 $table->setDescription($lng->txt('notification_admin_matrix_settings_table_desc'));
255 $table->addCommandButton('saveConfigMatrix', $lng->txt('save'));
256 $table->addCommandButton('showConfigMatrix', $lng->txt('cancel'));
257
258 $this->tpl->setContent($table->getHtml());
259 }
260
261 private function saveConfigMatrixObject()
262 {
263 global $ilUser, $ilCtrl;
264 require_once 'Services/Notifications/classes/class.ilNotificationDatabaseHelper.php';
265
266 ilNotificationDatabaseHandler::setUserConfig(-1, $_REQUEST['notification'] ? $_REQUEST['notification'] : array());
267 $this->showConfigMatrixObject();
268 }
269} // END class.ilObjFileGUI
$_GET["client_id"]
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
static getAvailableChannels($config_types=array(), $includeDisabled=false)
static setConfigTypeForType($type_name, $config_name)
static setUserConfig($userid, array $configArray)
Sets the configuration for all given configurations.
static setConfigTypeForChannel($channel_name, $config_name)
GUI class for notification objects.
static saveObject2($params=array())
save object
setTabs()
set admin tabs @access public
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
__construct($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.
Class ilObjNotificationAdmin.
Class ilObjectGUI Basic methods of all Output classes.
prepareOutput($a_show_subobjects=true)
prepare output
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
ILIAS Setting Class.
$userdata
Definition: demo.php:48
global $ilCtrl
Definition: ilias.php:18
$ret
Definition: parser.php:6
global $ilSetting
Definition: privfeed.php:17
$type
if(empty($password)) $table
Definition: pwgen.php:24
if(isset($_POST['submit'])) $form
$ilUser
Definition: imgupload.php:18
$params
Definition: disable.php:11