ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilObjPersonalDesktopSettingsGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 include_once("./classes/class.ilObjectGUI.php");
4 include_once('./Services/Calendar/classes/class.ilCalendarSettings.php');
5 
17 {
18  private static $ERROR_MESSAGE;
24  public function __construct($a_data, $a_id, $a_call_by_reference = true, $a_prepare_output = true)
25  {
26  global $lng;
27 
28  $this->type = 'pdts';
29  parent::ilObjectGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
30 
31  $lng->loadLanguageModule("pd");
32  }
33 
40  public function executeCommand()
41  {
42  global $rbacsystem,$ilErr,$ilAccess;
43 
44  $next_class = $this->ctrl->getNextClass($this);
45  $cmd = $this->ctrl->getCmd();
46 
47  $this->prepareOutput();
48 
49  if(!$ilAccess->checkAccess('read','',$this->object->getRefId()))
50  {
51  $ilErr->raiseError($this->lng->txt('no_permission'),$ilErr->WARNING);
52  }
53 
54  switch($next_class)
55  {
56  case 'ilpermissiongui':
57  $this->tabs_gui->setTabActive('perm_settings');
58  include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
59  $perm_gui =& new ilPermissionGUI($this);
60  $ret =& $this->ctrl->forwardCommand($perm_gui);
61  break;
62 
63  default:
64  if(!$cmd || $cmd == 'view')
65  {
66  $cmd = "editSettings";
67  }
68 
69  $this->$cmd();
70  break;
71  }
72  return true;
73  }
74 
81  public function getAdminTabs()
82  {
83  global $rbacsystem, $ilAccess;
84 
85  if ($rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
86  {
87  $this->tabs_gui->addTarget("pd_settings",
88  $this->ctrl->getLinkTarget($this, "editSettings"),
89  array("editSettings", "view"));
90  }
91 
92  if ($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
93  {
94  $this->tabs_gui->addTarget("perm_settings",
95  $this->ctrl->getLinkTargetByClass('ilpermissiongui',"perm"),
96  array(),'ilpermissiongui');
97  }
98  }
99 
103  public function editSettings()
104  {
105  global $ilCtrl, $lng, $ilSetting;
106 
107  $pd_set = new ilSetting("pd");
108 
109  $enable_calendar = ilCalendarSettings::_getInstance()->isEnabled();
110  #$enable_calendar = $ilSetting->get("enable_calendar");
111  $enable_block_moving = $pd_set->get("enable_block_moving");
112  $enable_active_users = $ilSetting->get("block_activated_pdusers");
113 
114  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
115  $form = new ilPropertyFormGUI();
116  $form->setFormAction($ilCtrl->getFormAction($this));
117  $form->setTitle($lng->txt("pd_settings"));
118 
119  // Enable calendar
120  $cb_prop = new ilCheckboxInputGUI($lng->txt("enable_calendar"), "enable_calendar");
121  $cb_prop->setValue("1");
122  //$cb_prop->setInfo($lng->txt("pd_enable_block_moving_info"));
123  $cb_prop->setChecked($enable_calendar);
124  $form->addItem($cb_prop);
125 
126  // Enable bookmarks
127  $cb_prop = new ilCheckboxInputGUI($lng->txt("pd_enable_bookmarks"), "enable_bookmarks");
128  $cb_prop->setValue("1");
129  $cb_prop->setChecked(($ilSetting->get("disable_bookmarks") ? "0" : "1"));
130  $form->addItem($cb_prop);
131 
132  // Enable contacts
133  $cb_prop = new ilCheckboxInputGUI($lng->txt("pd_enable_contacts"), "enable_contacts");
134  $cb_prop->setValue("1");
135  $cb_prop->setChecked(($ilSetting->get("disable_contacts") ? "0" : "1"));
136 
137  $cb_prop_requires_mail = new ilCheckboxInputGUI($lng->txt('pd_enable_contacts_requires_mail'), 'enable_contacts_require_mail');
138  $cb_prop_requires_mail->setValue("1");
139  $cb_prop_requires_mail->setChecked(($ilSetting->get("disable_contacts_require_mail") ? "0" : "1"));
140  $cb_prop->addSubItem($cb_prop_requires_mail);
141 
142  $form->addItem($cb_prop);
143 
144  // Enable notes
145  $cb_prop = new ilCheckboxInputGUI($lng->txt("pd_enable_notes"), "enable_notes");
146  $cb_prop->setValue("1");
147  $cb_prop->setChecked(($ilSetting->get("disable_notes") ? "0" : "1"));
148  $form->addItem($cb_prop);
149 
150  // Enable Chatviewer
151  $cb_prop = new ilCheckboxInputGUI($lng->txt("pd_enable_chatviewer"), "block_activated_chatviewer");
152  $cb_prop->setValue("1");
153  $cb_prop->setChecked(($ilSetting->get("block_activated_chatviewer")));
154  $form->addItem($cb_prop);
155 
156  // Enable block moving
157  $cb_prop = new ilCheckboxInputGUI($lng->txt("pd_enable_block_moving"),
158  "enable_block_moving");
159  $cb_prop->setValue("1");
160  $cb_prop->setInfo($lng->txt("pd_enable_block_moving_info"));
161  $cb_prop->setChecked($enable_block_moving);
162  $form->addItem($cb_prop);
163 
164  // Enable active users block
165  $cb_prop = new ilCheckboxInputGUI($lng->txt("pd_enable_active_users"),
166  "block_activated_pdusers");
167  $cb_prop->setValue("1");
168  $cb_prop->setChecked($enable_active_users);
169 
170  // maximum inactivity time
171  $ti_prop = new ilTextInputGUI($lng->txt("pd_time_before_removal"),
172  "time_removal");
173  $ti_prop->setValue($pd_set->get("user_activity_time"));
174  $ti_prop->setInfo($lng->txt("pd_time_before_removal_info"));
175  $ti_prop->setMaxLength(3);
176  $ti_prop->setSize(3);
177  $cb_prop->addSubItem($ti_prop);
178 
179  // osi host
180  // see http://www.onlinestatus.org
181  $ti_prop = new ilTextInputGUI($lng->txt("pd_osi_host"),
182  "osi_host");
183  $ti_prop->setValue($pd_set->get("osi_host"));
184  $ti_prop->setInfo($lng->txt("pd_osi_host_info").
185  ' <a href="http://www.onlinestatus.org" target="_blank">http://www.onlinestatus.org</a>');
186  $cb_prop->addSubItem($ti_prop);
187 
188  $form->addItem($cb_prop);
189 
190  // Enable 'My Offers' (default personal items)
191  $cb_prop = new ilCheckboxInputGUI($lng->txt('pd_enable_my_offers'), 'enable_my_offers');
192  $cb_prop->setValue('1');
193  $cb_prop->setInfo($lng->txt('pd_enable_my_offers_info'));
194  $cb_prop->setChecked(($ilSetting->get('disable_my_offers') ? '0' : '1'));
195  $form->addItem($cb_prop);
196 
197  // Enable 'My Memberships'
198  $cb_prop = new ilCheckboxInputGUI($lng->txt('pd_enable_my_memberships'), 'enable_my_memberships');
199  $cb_prop->setValue('1');
200  $cb_prop->setInfo($lng->txt('pd_enable_my_memberships_info'));
201  $cb_prop->setChecked(($ilSetting->get('disable_my_memberships') ? '0' : '1'));
202  $form->addItem($cb_prop);
203 
204  if($ilSetting->get('disable_my_offers') == 0 &&
205  $ilSetting->get('disable_my_memberships') == 0)
206  {
207  // Default view of personal items
208  $sb_prop = new ilSelectInputGUI($lng->txt('pd_personal_items_default_view'), 'personal_items_default_view');
209  $sb_prop->setInfo($lng->txt('pd_personal_items_default_view_info'));
210  $option = array();
211  $option[0] = $lng->txt('pd_my_offers');
212  $option[1] = $lng->txt('pd_my_memberships');
213  $sb_prop->setOptions($option);
214  $sb_prop->setValue((int)$ilSetting->get('personal_items_default_view'));
215  $form->addItem($sb_prop);
216  }
217 
218  // command buttons
219  $form->addCommandButton("saveSettings", $lng->txt("save"));
220  $form->addCommandButton("view", $lng->txt("cancel"));
221 
222  $this->tpl->setContent($form->getHTML());
223  }
224 
228  public function saveSettings()
229  {
230  global $ilCtrl, $ilSetting;
231 
232  $pd_set = new ilSetting("pd");
233 
234  ilCalendarSettings::_getInstance()->setEnabled( $_POST["enable_calendar"]);
236 
237  #$ilSetting->set("enable_calendar", $_POST["enable_calendar"]);
238  $ilSetting->set("disable_bookmarks", (int) ($_POST["enable_bookmarks"] ? 0 : 1));
239 
240  $ilSetting->set("disable_contacts", (int) ($_POST["enable_contacts"] ? 0 : 1));
241  $ilSetting->set("disable_contacts_require_mail", (int) ($_POST["enable_contacts_require_mail"] ? 0 : 1));
242 
243  $ilSetting->set("disable_notes", (int) ($_POST["enable_notes"] ? 0 : 1));
244  $ilSetting->set("block_activated_chatviewer", (int) ($_POST["block_activated_chatviewer"]));
245 
246  $ilSetting->set("block_activated_pdusers", $_POST["block_activated_pdusers"]);
247  $pd_set->set("enable_block_moving", $_POST["enable_block_moving"]);
248  $pd_set->set("user_activity_time", (int) $_POST["time_removal"]);
249  $pd_set->set("osi_host", $_POST["osi_host"]);
250 
251  // Validate personal desktop view
252  if(!(int)$_POST['enable_my_offers'] && !(int)$_POST['enable_my_memberships'])
253  {
254  ilUtil::sendFailure($this->lng->txt('pd_view_select_at_least_one'), true);
255  $ilCtrl->redirect($this, 'view');
256  }
257 
258  // Enable 'My Offers' (default personal items)
259  $ilSetting->set('disable_my_offers', (int)($_POST['enable_my_offers'] ? 0 : 1));
260 
261  // Enable 'My Memberships'
262  $ilSetting->set('disable_my_memberships', (int)($_POST['enable_my_memberships'] ? 0 : 1));
263 
264  if((int)$_POST['enable_my_offers'] && !(int)$_POST['enable_my_memberships'])
265  $_POST['personal_items_default_view'] = 0;
266  else if(!(int)$_POST['enable_my_offers'] && (int)$_POST['enable_my_memberships'])
267  $_POST['personal_items_default_view'] = 1;
268  else if(!isset($_POST['personal_items_default_view']))
269  $_POST['personal_items_default_view'] = $ilSetting->get('personal_items_default_view');
270 
271  // Default view of personal items
272  $ilSetting->set('personal_items_default_view', (int)$_POST['personal_items_default_view']);
273 
274  ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
275 
276  $ilCtrl->redirect($this, "view");
277  }
278 }
279 ?>