58 public function __construct($a_data, $a_id, $a_call_by_reference =
true, $a_prepare_output =
true)
66 $this->error = $DIC[
'ilErr'];
67 $this->rbacsystem = $this->dic->rbac()->system();
68 $this->lng = $this->dic->language();
69 $this->lng->loadLanguageModule(
'dateplaner');
70 $this->lng->loadLanguageModule(
'jscalendar');
81 $next_class = $this->ctrl->getNextClass($this);
82 $cmd = $this->ctrl->getCmd();
86 if (!$this->rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
87 $this->error->raiseError($this->lng->txt(
'no_permission'), $this->error->WARNING);
90 switch ($next_class) {
91 case 'ilpermissiongui':
92 $this->tabs_gui->setTabActive(
'perm_settings');
93 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
95 $ret = &$this->ctrl->forwardCommand($perm_gui);
99 $this->tabs_gui->setTabActive(
'settings');
101 if (!$cmd || $cmd ==
'view') {
123 $ilAccess = $DIC[
'ilAccess'];
125 if ($ilAccess->checkAccess(
"read",
'', $this->object->getRefId())) {
126 $this->tabs_gui->addTarget(
128 $this->ctrl->getLinkTarget($this,
"settings"),
129 array(
"settings",
"view")
133 if ($ilAccess->checkAccess(
'edit_permission',
'', $this->object->getRefId())) {
134 $this->tabs_gui->addTarget(
136 $this->ctrl->getLinkTargetByClass(
'ilpermissiongui',
"perm"),
150 if (!$this->rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
151 $ilErr->raiseError($this->lng->txt(
'no_permission'), $ilErr->WARNING);
154 $this->tabs_gui->setTabActive(
'settings');
156 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.settings.html',
'Services/Calendar');
157 $this->tpl->setVariable(
'CAL_SETTINGS', $this->form->getHTML());
171 $this->
settings->setDefaultWeekStart((
int) $_POST[
'default_week_start']);
173 $this->
settings->setDefaultDateFormat((
int) $_POST[
'default_date_format']);
174 $this->
settings->setDefaultTimeFormat((
int) $_POST[
'default_time_format']);
175 $this->
settings->setEnableGroupMilestones((
int) $_POST[
'enable_grp_milestones']);
176 $this->
settings->enableCourseCalendar((
int) $_POST[
'enabled_crs']);
177 $this->
settings->setCourseCalendarVisible((
int) $_POST[
'visible_crs']);
178 $this->
settings->enableGroupCalendar((
int) $_POST[
'enabled_grp']);
179 $this->
settings->setGroupCalendarVisible((
int) $_POST[
'visible_grp']);
180 $this->
settings->setDefaultDayStart((
int) $_POST[
'dst']);
181 $this->
settings->setDefaultDayEnd((
int) $_POST[
'den']);
182 $this->
settings->enableSynchronisationCache((
bool) $_POST[
'sync_cache']);
183 $this->
settings->setSynchronisationCacheMinutes((
int) $_POST[
'sync_cache_time']);
184 $this->
settings->setCacheMinutes((
int) $_POST[
'cache_time']);
185 $this->
settings->useCache((
bool) $_POST[
'cache']);
186 $this->
settings->enableNotification((
bool) $_POST[
'cn']);
187 $this->
settings->enableUserNotification((
bool) $_POST[
'cnu']);
188 $this->
settings->enableConsultationHours((
bool) $_POST[
'ch']);
189 $this->
settings->enableCGRegistration((
bool) $_POST[
'cgr']);
190 $this->
settings->enableWebCalSync((
bool) $_POST[
'webcal']);
191 $this->
settings->setWebCalSyncHours((
int) $_POST[
'webcal_hours']);
192 $this->
settings->setShowWeeks((
int) $_POST[
'show_weeks']);
193 $this->
settings->enableBatchFileDownloads((
bool) $_POST[
'batch_files']);
194 $this->
settings->setDefaultCal((
int) $_POST[
'default_calendar_view']);
195 $this->
settings->setDefaultPeriod((
int) $_POST[
'default_period']);
197 if (((
int) $_POST[
'den']) < (
int) $_POST[
'dst']) {
205 ilUtil::sendSuccess($this->lng->txt(
'settings_saved'));
216 include_once(
'Services/Calendar/classes/class.ilCalendarSettings.php');
227 if (is_object($this->form)) {
232 $this->form->setFormAction($this->ctrl->getFormAction($this));
233 $this->form->setTitle($this->lng->txt(
'cal_global_settings'));
237 $this->form->addCommandButton(
'save', $this->lng->txt(
'save'));
242 $check->setChecked($this->
settings->isEnabled() ? true :
false);
243 $this->form->addItem($check);
247 $cb->
setInfo($this->lng->txt(
"cal_show_weeks_info"));
249 $cb->setChecked($this->
settings->getShowWeeks());
250 $this->form->addItem($cb);
254 $sync->setChecked($this->
settings->isWebCalSyncEnabled());
255 $sync->setInfo($this->lng->txt(
'cal_webcal_sync_info'));
258 $sync_min->setSize(2);
259 $sync_min->setMaxLength(3);
260 $sync_min->setValue($this->
settings->getWebCalSyncHours());
261 $sync_min->setSuffix($this->lng->txt(
'hours'));
262 $sync->addSubItem($sync_min);
264 $this->form->addItem($sync);
267 $batch_files_download =
new ilCheckboxInputGUI($this->lng->txt(
'cal_batch_file_downloads'),
"batch_files");
269 $batch_files_download->setChecked($this->
settings->isBatchFileDownloadsEnabled());
270 $batch_files_download->setInfo($this->lng->txt(
'cal_batch_file_downloads_info'));
271 $this->form->addItem($batch_files_download);
274 $def->setTitle($this->lng->txt(
'cal_default_settings'));
275 $this->form->addItem($def);
279 $this->form->addItem($server_tz);
281 $select =
new ilSelectInputGUI($this->lng->txt(
'cal_def_timezone'),
'default_timezone');
283 $select->setInfo($this->lng->txt(
'cal_def_timezone_info'));
284 $select->setValue($this->
settings->getDefaultTimeZone());
285 $this->form->addItem($select);
288 $select =
new ilSelectInputGUI($this->lng->txt(
'cal_def_date_format'),
'default_date_format');
289 $select->setOptions(array(
293 $select->setInfo($this->lng->txt(
'cal_def_date_format_info'));
294 $select->setValue($this->
settings->getDefaultDateFormat());
295 $this->form->addItem($select);
297 $select =
new ilSelectInputGUI($this->lng->txt(
'cal_def_time_format'),
'default_time_format');
298 $select->setOptions(array(
301 $select->setInfo($this->lng->txt(
'cal_def_time_format_info'));
302 $select->setValue($this->
settings->getDefaultTimeFormat());
303 $this->form->addItem($select);
310 $radio->addOption($option);
312 $radio->addOption($option);
314 $this->form->addItem($radio);
316 $default_cal_view =
new ilRadioGroupInputGUI($this->lng->txt(
'cal_def_view'),
'default_calendar_view');
319 $default_cal_view->addOption($option);
321 $default_cal_view->addOption($option);
323 $default_cal_view->addOption($option);
327 $list_views =
new ilSelectInputGUI($this->lng->txt(
"cal_list"),
"default_period");
328 $list_views->setOptions([
338 $default_cal_view->addOption($option);
339 $default_cal_view->setValue($this->
settings->getDefaultCal());
341 $this->form->addItem($default_cal_view);
344 $day_start =
new ilSelectInputGUI($this->lng->txt(
'cal_def_day_start'),
'dst');
345 $day_start->setOptions(
348 $day_start->setValue($this->
settings->getDefaultDayStart());
349 $this->form->addItem($day_start);
352 $day_end->setOptions(
355 $day_end->setValue($this->
settings->getDefaultDayEnd());
356 $this->form->addItem($day_end);
360 $mil->setTitle($this->lng->txt(
'cal_milestone_settings'));
361 $this->form->addItem($mil);
363 $checkm =
new ilCheckboxInputGUI($this->lng->txt(
'cal_enable_group_milestones'),
'enable_grp_milestones');
365 $checkm->setChecked($this->
settings->getEnableGroupMilestones() ? true :
false);
366 $checkm->setInfo($this->lng->txt(
'cal_enable_group_milestones_desc'));
367 $this->form->addItem($checkm);
371 $con->setTitle($this->lng->txt(
'cal_ch_form_header'));
372 $this->form->addItem($con);
375 $ch->
setInfo($this->lng->txt(
'cal_ch_form_info'));
377 $ch->setChecked($this->
settings->areConsultationHoursEnabled());
378 $this->form->addItem($ch);
382 $rep->setTitle(
$GLOBALS[
'DIC'][
'lng']->txt(
'cal_setting_global_vis_repos'));
383 $this->form->addItem($rep);
386 $this->lng->txt(
'cal_setting_global_crs_act'),
389 $crs_active->
setInfo($this->lng->txt(
'cal_setting_global_crs_act_info'));
390 $crs_active->setValue(1);
391 $crs_active->setChecked($this->
settings->isCourseCalendarEnabled());
392 $this->form->addItem($crs_active);
395 $crs->setInfo(
$GLOBALS[
'DIC'][
'lng']->txt(
'cal_setting_global_crs_vis_info'));
397 $crs->setChecked($this->
settings->isCourseCalendarVisible());
398 $crs_active->addSubItem($crs);
401 $this->lng->txt(
'cal_setting_global_grp_act'),
404 $grp_active->
setInfo($this->lng->txt(
'cal_setting_global_grp_act_info'));
405 $grp_active->setValue(1);
406 $grp_active->setChecked($this->
settings->isGroupCalendarEnabled());
407 $this->form->addItem($grp_active);
410 $grp->setInfo(
$GLOBALS[
'DIC'][
'lng']->txt(
'cal_setting_global_grp_vis_info'));
412 $grp->setInfo(
$GLOBALS[
'DIC'][
'lng']->txt(
'cal_setting_global_grp_vis_info'));
413 $grp->setChecked($this->
settings->isGroupCalendarVisible());
414 $grp_active->addSubItem($grp);
418 $not->setTitle($this->lng->txt(
'notifications'));
419 $this->form->addItem($not);
424 $cgn->setChecked($this->
settings->isNotificationEnabled());
425 $cgn->setInfo($this->lng->txt(
'cal_adm_notification_info'));
426 $this->form->addItem($cgn);
429 $cnu->setOptionTitle($this->lng->txt(
'cal_notification_users'));
431 $cnu->setChecked($this->
settings->isUserNotificationEnabled());
432 $cnu->setInfo($this->lng->txt(
'cal_adm_notification_user_info'));
433 $this->form->addItem($cnu);
438 $book->setTitle($this->lng->txt(
'cal_registrations'));
439 $this->form->addItem($book);
443 $cgn->setChecked($this->
settings->isCGRegistrationEnabled());
444 $cgn->setInfo($this->lng->txt(
'cal_cg_registration_info'));
445 $this->form->addItem($cgn);
449 $sec->setTitle($this->lng->txt(
'cal_cache_settings'));
450 $this->form->addItem($sec);
454 $cache->setInfo($this->lng->txt(
'cal_sync_cache_info'));
455 $cache->setRequired(
true);
457 $sync_cache =
new ilRadioOption($this->lng->txt(
'cal_sync_disabled'), 0);
458 $cache->addOption($sync_cache);
460 $sync_cache =
new ilRadioOption($this->lng->txt(
'cal_sync_enabled'), 1);
461 $cache->addOption($sync_cache);
464 $cache_t->setValue($this->
settings->getSynchronisationCacheMinutes());
465 $cache_t->setMinValue(0);
466 $cache_t->setSize(3);
467 $cache_t->setMaxLength(3);
468 $cache_t->setSuffix($this->lng->txt(
'form_minutes'));
469 $sync_cache->addSubItem($cache_t);
471 $this->form->addItem($cache);
476 $cache->setInfo($this->lng->txt(
'cal_cache_info'));
477 $cache->setRequired(
true);
479 $sync_cache =
new ilRadioOption($this->lng->txt(
'cal_cache_disabled'), 0);
480 $cache->addOption($sync_cache);
482 $sync_cache =
new ilRadioOption($this->lng->txt(
'cal_cache_enabled'), 1);
483 $cache->addOption($sync_cache);
486 $cache_t->setValue($this->
settings->getCacheMinutes());
487 $cache_t->setMinValue(0);
488 $cache_t->setSize(3);
489 $cache_t->setMaxLength(3);
490 $cache_t->setSuffix($this->lng->txt(
'form_minutes'));
491 $sync_cache->addSubItem($cache_t);
492 $this->form->addItem($cache);
497 switch ($a_form_id) {
505 'cal_setting_global_crs_act' => [
508 'cal_setting_global_crs_vis' =>
512 $fields[
'cal_setting_global_vis_repos'] = array(null, null, $subitems);
518 $fields[
'cal_notification'] = array(null, null, $subitems);
522 return array(array(
"settings", $fields));
531 'cal_setting_global_grp_act' => [
534 'cal_setting_global_grp_vis' =>
539 $fields[
'cal_setting_global_vis_repos'] = array(null, null, $subitems);
545 $fields[
'cal_notification'] = array(null, null, $subitems);
549 return array(array(
"settings", $fields));
static _getDefaultTimeZone()
Calculate and set default time zone.
This class represents an option in a radio group.
executeCommand()
Execute command.
static _getInstance()
get singleton instance
setValue($a_value)
Set Value.
static getHourSelection($a_format)
Get hour selectio depending on user specific hour format.
static _getShortTimeZoneList()
get short timezone list
addToExternalSettingsForm($a_form_id)
prepareOutput($a_show_subobjects=true)
prepare output
__construct($a_data, $a_id, $a_call_by_reference=true, $a_prepare_output=true)
Constructor.
setValue($a_value)
Set Value.
Class ilObjectGUI Basic methods of all Output classes.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
This class represents a non editable value in a property form.
__construct(Container $dic, ilPlugin $plugin)
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
initCalendarSettings()
init calendar settings
initFormSettings()
Init settings property form.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.