ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilChatroomSettingsGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
11{
15 protected $object;
16
25 {
27
28 require_once 'Modules/Chatroom/classes/class.ilChatroomFormFactory.php';
29 require_once 'Modules/Chatroom/classes/class.ilChatroom.php';
30 require_once 'Modules/Chatroom/classes/class.ilChatroomInstaller.php';
31 }
32
36 public function saveGeneral()
37 {
38 $formFactory = new ilChatroomFormFactory();
39 $settingsForm = $formFactory->getSettingsForm();
40 $this->obj_service->commonSettings()->legacyForm($settingsForm, $this->gui->object)->addTileImage();
41
42 if (!$settingsForm->checkInput()) {
43 $settingsForm->setValuesByPost();
44 $this->general($settingsForm);
45 } else {
46 $this->gui->object->setTitle($settingsForm->getInput('title'));
47 $this->gui->object->setDescription($settingsForm->getInput('desc'));
48
49 require_once 'Services/Object/classes/class.ilObjectActivation.php';
50
51 $period = $settingsForm->getItemByPostVar('access_period');
52 if ($period->getStart() && $period->getEnd()) {
53 $this->gui->object->setAccessType(ilObjectActivation::TIMINGS_ACTIVATION);
54 $this->gui->object->setAccessBegin($period->getStart()->get(IL_CAL_UNIX));
55 $this->gui->object->setAccessEnd($period->getEnd()->get(IL_CAL_UNIX));
56 $this->gui->object->setAccessVisibility((int) $settingsForm->getInput('access_visibility'));
57 } else {
58 $this->gui->object->setAccessType(ilObjectActivation::TIMINGS_DEACTIVATED);
59 }
60
61 $this->gui->object->update();
62 $this->obj_service->commonSettings()->legacyForm($settingsForm, $this->gui->object)->saveTileImage();
63 // @todo: Do not rely on raw post data
64 $settings = $_POST;
65 $room = ilChatRoom::byObjectId($this->gui->object->getId());
66
67 if (!$room) {
68 $room = new ilChatRoom();
69 $settings['object_id'] = $this->gui->object->getId();
70 }
71 $room->saveSettings($settings);
72
73 ilUtil::sendSuccess($this->ilLng->txt('saved_successfully'), true);
74 $this->ilCtrl->redirect($this->gui, 'settings-general');
75 }
76 }
77
83 public function general(ilPropertyFormGUI $settingsForm = null)
84 {
86 'visible',
87 'read'
88 ), $this->gui->ref_id)
89 ) {
90 $this->ilCtrl->setParameterByClass('ilrepositorygui', 'ref_id', ROOT_FOLDER_ID);
91 $this->ilCtrl->redirectByClass('ilrepositorygui', '');
92 }
93
94 $chatSettings = new ilSetting('chatroom');
95 if (!$chatSettings->get('chat_enabled')) {
96 ilUtil::sendInfo($this->ilLng->txt('server_disabled'), true);
97 }
98
99 $this->gui->switchToVisibleMode();
100
101 $formFactory = new ilChatroomFormFactory();
102
103 $room = ilChatRoom::byObjectId($this->gui->object->getId());
104
105 if (!$settingsForm) {
106 $settingsForm = $formFactory->getSettingsForm();
107
108 require_once 'Services/Object/classes/class.ilObjectActivation.php';
109 $settings = array(
110 'title' => $this->gui->object->getTitle(),
111 'desc' => $this->gui->object->getDescription(),
112 'access_period' => array(
113 'start' => $this->gui->object->getAccessBegin() ? new ilDateTime(
114 $this->gui->object->getAccessBegin(),
116 ) : null,
117 'end' => $this->gui->object->getAccessEnd() ? new ilDateTime(
118 $this->gui->object->getAccessEnd(),
120 ) : null
121 ),
122 'access_visibility' => $this->gui->object->getAccessVisibility()
123 );
124
125 $presentationHeader = new ilFormSectionHeaderGUI();
126 $presentationHeader->setTitle($this->ilLng->txt('settings_presentation_header'));
127 $settingsForm->addItem($presentationHeader);
128 $this->obj_service->commonSettings()->legacyForm($settingsForm, $this->gui->object)->addTileImage();
129
130 if ($room) {
132 $settingsForm,
133 array_merge($settings, $room->getSettings())
134 );
135 } else {
136 ilChatroomFormFactory::applyValues($settingsForm, $settings);
137 }
138 }
139
140 $settingsForm->setTitle($this->ilLng->txt('settings_title'));
141 $settingsForm->addCommandButton('settings-saveGeneral', $this->ilLng->txt('save'));
142 $settingsForm->setFormAction($this->ilCtrl->getFormAction($this->gui, 'settings-saveGeneral'));
143
144 $this->mainTpl->setVariable('ADM_CONTENT', $settingsForm->getHtml());
145 }
146
152 public function executeDefault($requestedMethod)
153 {
154 $this->general();
155 }
156}
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_UNIX
Class ilChatroomFormFactory.
static applyValues(ilPropertyFormGUI $form, array $values)
Applies given values to field in given form.
Class ilChatroomGUIHandler.
Class ilChatroomSettingsGUI.
__construct(ilChatroomObjectGUI $gui)
Constructor Requires ilChatroomFormFactory, ilChatroom and ilChatroomInstaller, sets $this->gui using...
general(ilPropertyFormGUI $settingsForm=null)
Prepares and displays settings form.
saveGeneral()
Saves settings fetched from $_POST.
static checkUserPermissions($permissions, $ref_id, $send_info=true)
Checks user permissions by given array and ref_id.
This class provides processing control methods.
getFormAction( $a_gui_obj, $a_fallback_cmd="", $a_anchor="", $a_asynch=false, $xml_style=false)
Get form action url for gui class object.
setParameterByClass($a_class, $a_parameter, $a_value)
Same as setParameterByClass, except that a class name is passed.
redirectByClass($a_class, $a_cmd="", $a_anchor="", $a_asynch=false)
Redirect to other gui class using class name.
redirect($a_gui_obj, $a_cmd="", $a_anchor="", $a_asynch=false)
Redirect to another command.
@classDescription Date and time handling
This class represents a section header in a property form.
This class represents a property form user interface.
ILIAS Setting Class.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc