ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilCalendarUserSettings.php
Go to the documentation of this file.
1<?php
9include_once('./Services/Calendar/classes/class.ilCalendarSettings.php');
10
12{
15
18
19 public static $instances = array();
20
21 protected $user;
22 protected $settings;
23
25 private $timezone;
27 private $weekstart;
28 private $time_format;
29 private $date_format;
30
31 private $day_start;
32 private $day_end;
33
41 private function __construct($a_user_id)
42 {
43 global $ilUser;
44
45 if($ilUser->getId() == $a_user_id)
46 {
47 $this->user = $ilUser;
48 }
49 else
50 {
51 $this->user = ilObjectFactory::getInstanceByObjId($a_user_id,false);
52 }
53 $this->settings = ilCalendarSettings::_getInstance();
54 $this->read();
55 }
56
65 public static function _getInstanceByUserId($a_user_id)
66 {
67 if(isset(self::$instances[$a_user_id]))
68 {
69 return self::$instances[$a_user_id];
70 }
71 return self::$instances[$a_user_id] = new ilCalendarUserSettings($a_user_id);
72 }
73
80 public static function _getInstance()
81 {
82 global $ilUser;
83
84 return self::_getInstanceByUserId($ilUser->getId());
85 }
86
94 public function getTimeZone()
95 {
96 return $this->timezone;
97 }
98
106 public function setTimeZone($a_tz)
107 {
108 $this->timezone = $a_tz;
109 }
110
115 public function getExportTimeZoneType()
116 {
118 }
119
124 public function setExportTimeZoneType($a_type)
125 {
126 $this->export_tz_type = $a_type;
127 }
128
133 public function getExportTimeZone()
134 {
135 switch($this->getExportTimeZoneType())
136 {
138 return $this->getTimeZone();
139
141 include_once './Services/Calendar/classes/class.ilTimeZone.php';
142 return ilTimeZone::UTC;
143 }
144 }
145
146
147
155 public function setWeekStart($a_weekstart)
156 {
157 $this->weekstart = $a_weekstart;
158 }
159
166 public function getWeekStart()
167 {
168 return (int) $this->weekstart;
169 }
170
176 public function setDayStart($a_start)
177 {
178 $this->day_start = $a_start;
179 }
180
185 public function getDayStart()
186 {
187 return $this->day_start;
188 }
189
195 public function setDayEnd($a_end)
196 {
197 $this->day_end = $a_end;
198 }
199
204 public function getDayEnd()
205 {
206 return $this->day_end;
207 }
208
216 public function setDateFormat($a_format)
217 {
218 $this->date_format = $a_format;
219 }
220
227 public function getDateFormat()
228 {
229 return $this->date_format;
230 }
231
239 public function setTimeFormat($a_format)
240 {
241 $this->time_format = $a_format;
242 }
243
250 public function getTimeFormat()
251 {
252 return $this->time_format;
253 }
254
261 public function getCalendarSelectionType()
262 {
264 }
265
271 public function setCalendarSelectionType($a_type)
272 {
273 $this->calendar_selection_type = $a_type;
274 }
275
281 public function save()
282 {
283 $this->user->writePref('user_tz',$this->getTimeZone());
284 $this->user->writePref('export_tz_type',$this->getExportTimeZoneType());
285 $this->user->writePref('weekstart',$this->getWeekStart());
286 $this->user->writePref('date_format',$this->getDateFormat());
287 $this->user->writePref('time_format',$this->getTimeFormat());
288 $this->user->writePref('calendar_selection_type',$this->getCalendarSelectionType());
289 $this->user->writePref('day_start',$this->getDayStart());
290 $this->user->writePref('day_end',$this->getDayEnd());
291 }
292
293
299 protected function read()
300 {
301
302
303 $this->timezone = $this->user->getTimeZone();
304 $this->export_tz_type = (
305 ($this->user->getPref('export_tz_type') !== FALSE) ?
306 $this->user->getPref('export_tz_type') :
308 );
309 $this->date_format = $this->user->getDateFormat();
310 $this->time_format = $this->user->getTimeFormat();
311 if(($weekstart = $this->user->getPref('weekstart')) === false)
312 {
313 $weekstart = $this->settings->getDefaultWeekStart();
314 }
315 $this->calendar_selection_type = $this->user->getPref('calendar_selection_type') ?
316 $this->user->getPref('calendar_selection_type') :
318
319 $this->weekstart = $weekstart;
320
321 $this->setDayStart($this->user->getPref('day_start') !== false ?
322 $this->user->getPref('day_start') :
324 );
325 $this->setDayEnd($this->user->getPref('day_end') !== false ?
326 $this->user->getPref('day_end') :
328 );
329 }
330
331}
332?>
static _getInstance()
get singleton instance
static _getInstance()
get instance for logged in user
getCalendarSelectionType()
get calendar selection type ("MyMembership" or "Selected Items")
static _getInstanceByUserId($a_user_id)
get singleton instance
setExportTimeZoneType($a_type)
Set export timezone type.
getExportTimeZoneType()
Get export timezone setting.
setTimeFormat($a_format)
set time format
__construct($a_user_id)
Constructor.
setWeekStart($a_weekstart)
set week start
getExportTimeZone()
Get export timezone.
setDateFormat($a_format)
set date format
setCalendarSelectionType($a_type)
set calendar selection type
setDayStart($a_start)
Set start of day.
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
global $ilUser
Definition: imgupload.php:15