ILIAS  eassessment Revision 61809
 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 block moving
151  $cb_prop = new ilCheckboxInputGUI($lng->txt("pd_enable_block_moving"),
152  "enable_block_moving");
153  $cb_prop->setValue("1");
154  $cb_prop->setInfo($lng->txt("pd_enable_block_moving_info"));
155  $cb_prop->setChecked($enable_block_moving);
156  $form->addItem($cb_prop);
157 
158  // Enable active users block
159  $cb_prop = new ilCheckboxInputGUI($lng->txt("pd_enable_active_users"),
160  "block_activated_pdusers");
161  $cb_prop->setValue("1");
162  $cb_prop->setChecked($enable_active_users);
163 
164  // maximum inactivity time
165  $ti_prop = new ilTextInputGUI($lng->txt("pd_time_before_removal"),
166  "time_removal");
167  $ti_prop->setValue($pd_set->get("user_activity_time"));
168  $ti_prop->setInfo($lng->txt("pd_time_before_removal_info"));
169  $ti_prop->setMaxLength(3);
170  $ti_prop->setSize(3);
171  $cb_prop->addSubItem($ti_prop);
172 
173  // osi host
174  // see http://www.onlinestatus.org
175  $ti_prop = new ilTextInputGUI($lng->txt("pd_osi_host"),
176  "osi_host");
177  $ti_prop->setValue($pd_set->get("osi_host"));
178  $ti_prop->setInfo($lng->txt("pd_osi_host_info").
179  ' <a href="http://www.onlinestatus.org" target="_blank">http://www.onlinestatus.org</a>');
180  $cb_prop->addSubItem($ti_prop);
181 
182  $form->addItem($cb_prop);
183 
184  // Enable 'My Offers' (default personal items)
185  $cb_prop = new ilCheckboxInputGUI($lng->txt('pd_enable_my_offers'), 'enable_my_offers');
186  $cb_prop->setValue('1');
187  $cb_prop->setInfo($lng->txt('pd_enable_my_offers_info'));
188  $cb_prop->setChecked(($ilSetting->get('disable_my_offers') ? '0' : '1'));
189  $form->addItem($cb_prop);
190 
191  // Enable 'My Memberships'
192  $cb_prop = new ilCheckboxInputGUI($lng->txt('pd_enable_my_memberships'), 'enable_my_memberships');
193  $cb_prop->setValue('1');
194  $cb_prop->setInfo($lng->txt('pd_enable_my_memberships_info'));
195  $cb_prop->setChecked(($ilSetting->get('disable_my_memberships') ? '0' : '1'));
196  $form->addItem($cb_prop);
197 
198  if($ilSetting->get('disable_my_offers') == 0 &&
199  $ilSetting->get('disable_my_memberships') == 0)
200  {
201  // Default view of personal items
202  $sb_prop = new ilSelectInputGUI($lng->txt('pd_personal_items_default_view'), 'personal_items_default_view');
203  $sb_prop->setInfo($lng->txt('pd_personal_items_default_view_info'));
204  $option = array();
205  $option[0] = $lng->txt('pd_my_offers');
206  $option[1] = $lng->txt('pd_my_memberships');
207  $sb_prop->setOptions($option);
208  $sb_prop->setValue((int)$ilSetting->get('personal_items_default_view'));
209  $form->addItem($sb_prop);
210  }
211 
212  // command buttons
213  $form->addCommandButton("saveSettings", $lng->txt("save"));
214  $form->addCommandButton("view", $lng->txt("cancel"));
215 
216  $this->tpl->setContent($form->getHTML());
217  }
218 
222  public function saveSettings()
223  {
224  global $ilCtrl, $ilSetting;
225 
226  $pd_set = new ilSetting("pd");
227 
228  ilCalendarSettings::_getInstance()->setEnabled( $_POST["enable_calendar"]);
230 
231  #$ilSetting->set("enable_calendar", $_POST["enable_calendar"]);
232  $ilSetting->set("disable_bookmarks", (int) ($_POST["enable_bookmarks"] ? 0 : 1));
233 
234  $ilSetting->set("disable_contacts", (int) ($_POST["enable_contacts"] ? 0 : 1));
235  $ilSetting->set("disable_contacts_require_mail", (int) ($_POST["enable_contacts_require_mail"] ? 0 : 1));
236 
237  $ilSetting->set("disable_notes", (int) ($_POST["enable_notes"] ? 0 : 1));
238 
239  $ilSetting->set("block_activated_pdusers", $_POST["block_activated_pdusers"]);
240  $pd_set->set("enable_block_moving", $_POST["enable_block_moving"]);
241  $pd_set->set("user_activity_time", (int) $_POST["time_removal"]);
242  $pd_set->set("osi_host", $_POST["osi_host"]);
243 
244  // Validate personal desktop view
245  if(!(int)$_POST['enable_my_offers'] && !(int)$_POST['enable_my_memberships'])
246  {
247  ilUtil::sendFailure($this->lng->txt('pd_view_select_at_least_one'), true);
248  $ilCtrl->redirect($this, 'view');
249  }
250 
251  // Enable 'My Offers' (default personal items)
252  $ilSetting->set('disable_my_offers', (int)($_POST['enable_my_offers'] ? 0 : 1));
253 
254  // Enable 'My Memberships'
255  $ilSetting->set('disable_my_memberships', (int)($_POST['enable_my_memberships'] ? 0 : 1));
256 
257  if((int)$_POST['enable_my_offers'] && !(int)$_POST['enable_my_memberships'])
258  $_POST['personal_items_default_view'] = 0;
259  else if(!(int)$_POST['enable_my_offers'] && (int)$_POST['enable_my_memberships'])
260  $_POST['personal_items_default_view'] = 1;
261  else if(!isset($_POST['personal_items_default_view']))
262  $_POST['personal_items_default_view'] = $ilSetting->get('personal_items_default_view');
263 
264  // Default view of personal items
265  $ilSetting->set('personal_items_default_view', (int)$_POST['personal_items_default_view']);
266 
267  ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
268 
269  $ilCtrl->redirect($this, "view");
270  }
271 }
272 ?>