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 
4 require_once "./Services/Object/classes/class.ilObjectGUI.php";
5 require_once "./Services/Notifications/classes/class.ilObjNotificationAdmin.php";
6 require_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 
155  public function saveGeneralSettingsObject()
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 
184  $this->showGeneralSettingsObject();
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
$params
Definition: disable.php:11
$type
$_GET["client_id"]
__construct($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor public.
$userdata
Definition: demo.php:48
static saveObject2($params=array())
save object
global $ilCtrl
Definition: ilias.php:18
static setConfigTypeForChannel($channel_name, $config_name)
prepareOutput($a_show_subobjects=true)
prepare output
static setConfigTypeForType($type_name, $config_name)
if(isset($_POST['submit'])) $form
Class ilObjectGUI Basic methods of all Output classes.
GUI class for notification objects.
$ilUser
Definition: imgupload.php:18
Create styles array
The data for the language used.
Class ilObjNotificationAdmin.
Create new PHPExcel object
obj_idprivate
global $ilSetting
Definition: privfeed.php:17
static setUserConfig($userid, array $configArray)
Sets the configuration for all given configurations.
$ret
Definition: parser.php:6
static getAvailableChannels($config_types=array(), $includeDisabled=false)
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
if(empty($password)) $table
Definition: pwgen.php:24
$_POST["username"]