ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilChatroomAdmin.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 private static $settingsTable = 'chatroom_admconfig';
16
20 private $settings;
21
25 private $config_id;
26
34 public function __construct($config_id, stdClass $settings = null)
35 {
36 $this->config_id = $config_id;
37 $this->settings = $settings;
38 }
39
45 public static function getDefaultConfiguration()
46 {
47 global $DIC;
48
49 $DIC->database()->setLimit(1);
50 $query = 'SELECT * FROM ' . self::$settingsTable;
51
52 $rset = $DIC->database()->query($query);
53 if ($row = $DIC->database()->fetchObject($rset)) {
54 return new self((int) $row->instance_id, $row);
55 }
56 }
57
63 public function getServerSettings()
64 {
65 require_once 'Modules/Chatroom/classes/class.ilChatroomServerSettings.php';
67 }
68
74 {
75 global $DIC;
76
77 $res = $DIC->database()->queryF(
78 "
79 SELECT *
80 FROM chatroom_admconfig
81 WHERE instance_id = %s",
82 array('integer'),
83 array($this->config_id)
84 );
85
86 $row = $DIC->database()->fetchAssoc($res);
87
88 $DIC->database()->manipulateF(
89 "
90 DELETE
91 FROM chatroom_admconfig
92 WHERE instance_id = %s",
93 array('integer'),
94 array($this->config_id)
95 );
96
97 $def_conf = '{}';
98 $clnt_set = '{}';
99 if (is_array($row)) {
100 if ($row['default_config'] !== null) {
101 $def_conf = $row['default_config'];
102 }
103
104 if ($row['client_settings'] !== null) {
105 $clnt_set = $row['client_settings'];
106 }
107 }
108
109 $DIC->database()->manipulateF(
110 "
111 INSERT INTO chatroom_admconfig
112 (instance_id, server_settings, default_config, client_settings)
113 VALUES (%s, %s, %s, %s)",
114 array('integer', 'text', 'integer', 'text'),
115 array($this->config_id, json_encode($settings), $def_conf, $clnt_set)
116 );
117 }
118
124 {
125 global $DIC;
126
127 $res = $DIC->database()->queryF(
128 "
129 SELECT *
130 FROM chatroom_admconfig
131 WHERE instance_id = %s",
132 array('integer'),
133 array($this->config_id)
134 );
135
136 $row = $DIC->database()->fetchAssoc($res);
137
138 $DIC->database()->manipulateF(
139 "
140 DELETE
141 FROM chatroom_admconfig
142 WHERE instance_id = %s",
143 array('integer'),
144 array($this->config_id)
145 );
146
147 $row['default_config'] !== null ? $def_conf = $row['default_config'] : $def_conf = "{}";
148 $row['server_settings'] !== null ? $srv_set = $row['server_settings'] : $srv_set = "{}";
149
150 $DIC->database()->manipulateF(
151 "
152 INSERT INTO chatroom_admconfig
153 (instance_id, server_settings, default_config, client_settings)
154 VALUES (%s, %s, %s, %s)",
155 array(
156 'integer',
157 'text',
158 'integer',
159 'text'
160 ),
161 array(
162 $this->config_id,
163 $srv_set,
164 $def_conf,
165 json_encode($settings)
166 )
167 );
168 }
169
174 public function loadGeneralSettings()
175 {
176 global $DIC;
177
178 $query = 'SELECT * FROM ' . self::$settingsTable . ' WHERE instance_id = ' . $DIC->database()->quote($this->config_id, 'integer');
179
180 if (($row = $DIC->database()->fetchAssoc($DIC->database()->query($query))) && $row['server_settings']) {
181 $settings = json_decode($row['server_settings'], true);
182
183 if (!isset($settings['protocol'])) {
184 $settings['protocol'] = 'http';
185 }
186
187 if (!isset($settings['log_level'])) {
188 $settings['log_level'] = 'info';
189 }
190
191 return $settings;
192 }
193
194 return array();
195 }
196
201 public function loadClientSettings()
202 {
203 global $DIC;
204
205 $query = 'SELECT * FROM ' . self::$settingsTable . ' WHERE instance_id = ' . $DIC->database()->quote($this->config_id, 'integer');
206 if (($row = $DIC->database()->fetchAssoc($DIC->database()->query($query))) && $row['client_settings']) {
207 $settings = json_decode($row['client_settings'], true);
208
209 if (!$settings['osd_intervall']) {
210 $settings['osd_intervall'] = 60;
211 }
212
213 if (!$settings['client']) {
214 $settings['client'] = CLIENT_ID;
215 }
216
217 $settings['client_name'] = (string) $settings['name'];
218 if (!$settings['client_name']) {
219 $settings['client_name'] = CLIENT_ID;
220 }
221
222 if (is_numeric($settings['conversation_idle_state_in_minutes'])) {
223 $settings['conversation_idle_state_in_minutes'] = max(1, $settings['conversation_idle_state_in_minutes']);
224 } else {
225 $settings['conversation_idle_state_in_minutes'] = 1;
226 }
227
228 return $settings;
229 }
230
231 return array();
232 }
233}
An exception for terminatinating execution or to throw for unit testing.
Class ilChatroomAdmin.
static getDefaultConfiguration()
Instantiates and returns ilChatroomAdmin object using instance_id and settings from settingsTable.
saveClientSettings(stdClass $settings)
Saves given client $settings into settingsTable.
getServerSettings()
Instantiates ilChatroomServerSettings object, sets data using $this->settings->server_settings and re...
saveGeneralSettings(stdClass $settings)
Saves given $settings into settingsTable.
__construct($config_id, stdClass $settings=null)
Constructor Sets $this->config_id and $this->settings using given $config_id and $settings.
loadGeneralSettings()
Returns an array containing server settings from settingsTable.
loadClientSettings()
Returns an array containing client settings from settingsTable.
const CLIENT_ID
Definition: constants.php:39
global $DIC
Definition: goto.php:24
$query
foreach($_POST as $key=> $value) $res
settings()
Definition: settings.php:2