ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilCalendarCategory Class Reference

Stores calendar categories. More...

+ Collaboration diagram for ilCalendarCategory:

Public Member Functions

 __construct ($a_cat_id=0)
 Constructor. More...
 
 getCategoryID ()
 get category id More...
 
 setTitle ($a_title)
 set title More...
 
 getTitle ()
 get title More...
 
 setColor ($a_color)
 set color More...
 
 getColor ()
 get color More...
 
 setType ($a_type)
 set type More...
 
 getType ()
 get type More...
 
 setObjId ($a_obj_id)
 set obj id More...
 
 getObjId ()
 get obj_id More...
 
 getObjType ()
 get type More...
 
 getLocationType ()
 
 setLocationType ($a_type)
 
 setRemoteUrl ($a_url)
 
 getRemoteUrl ()
 
 setRemoteUser ($a_user)
 
 getRemoteUser ()
 
 setRemotePass ($a_pass)
 
 getRemotePass ()
 
 setRemoteSyncLastExecution (ilDateTime $dt=null)
 Set remote sync last execution. More...
 
 getRemoteSyncLastExecution ()
 Get last execution date of remote sync. More...
 
 add ()
 add new category More...
 
 update ()
 update More...
 
 delete ()
 delete More...
 
 validate ()
 validate More...
 

Static Public Member Functions

static _getInstanceByObjId ($a_obj_id)
 get instance by obj_id More...
 
static getInstanceByCategoryId ($a_cat_id)
 Get instance by category id. More...
 
static lookupCategorySortIndex ($a_type_id)
 Lookup sort index of calendar type. More...
 
static lookupAppointments ($a_category_id)
 get all assigned appointment ids More...
 

Data Fields

const LTYPE_LOCAL = 1
 
const LTYPE_REMOTE = 2
 
const DEFAULT_COLOR = '#04427e'
 
const TYPE_USR = 1
 
const TYPE_OBJ = 2
 
const TYPE_GLOBAL = 3
 
const TYPE_CH = 4
 
const TYPE_BOOK = 5
 

Protected Attributes

 $cat_id
 
 $color
 
 $type = self::TYPE_USR
 
 $obj_id
 
 $obj_type = null
 
 $title
 
 $location = self::LTYPE_LOCAL
 
 $remote_url
 
 $remote_user
 
 $remote_pass
 
 $remote_sync = null
 
 $db
 

Static Protected Attributes

static $SORTED_TYPES
 

Private Member Functions

 read ()
 read More...
 

Static Private Attributes

static $instances = null
 

Detailed Description

Stores calendar categories.

Author
Stefan Meyer smeye.nosp@m.r.il.nosp@m.ias@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 33 of file class.ilCalendarCategory.php.

Constructor & Destructor Documentation

◆ __construct()

ilCalendarCategory::__construct (   $a_cat_id = 0)

Constructor.

@access public

Definition at line 78 of file class.ilCalendarCategory.php.

79 {
80 global $ilDB;
81
82 $this->db = $ilDB;
83 $this->cat_id = $a_cat_id;
84
85 $this->read();
86 }
global $ilDB

References $ilDB, and read().

+ Here is the call graph for this function:

Member Function Documentation

◆ _getInstanceByObjId()

static ilCalendarCategory::_getInstanceByObjId (   $a_obj_id)
static

get instance by obj_id

Parameters
intobj_id
Returns
object

Definition at line 95 of file class.ilCalendarCategory.php.

96 {
97 global $ilDB;
98
99 $query = "SELECT cat_id FROM cal_categories ".
100 "WHERE obj_id = ".$ilDB->quote($a_obj_id ,'integer')." ".
101 "AND type = ".$ilDB->quote(self::TYPE_OBJ ,'integer');
102 $res = $ilDB->query($query);
103 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
104 {
105 return new ilCalendarCategory($row->cat_id);
106 }
107 return null;
108 }
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
Stores calendar categories.

References $ilDB, $query, $res, $row, and DB_FETCHMODE_OBJECT.

Referenced by ilCalendarAppEventListener\createCategory(), and ilCalendarAppEventListener\updateCategory().

+ Here is the caller graph for this function:

◆ add()

ilCalendarCategory::add ( )

add new category

@access public

Returns

Definition at line 331 of file class.ilCalendarCategory.php.

332 {
333 global $ilDB;
334
335 $next_id = $ilDB->nextId('cal_categories');
336
337 $query = "INSERT INTO cal_categories (cat_id,obj_id,color,type,title,loc_type,remote_url,remote_user,remote_pass,remote_sync) ".
338 "VALUES ( ".
339 $ilDB->quote($next_id,'integer').", ".
340 $this->db->quote($this->getObjId() ,'integer').", ".
341 $this->db->quote($this->getColor() ,'text').", ".
342 $this->db->quote($this->getType() ,'integer').", ".
343 $this->db->quote($this->getTitle() ,'text').", ".
344 $this->db->quote($this->getLocationType(),'integer').', '.
345 $this->db->quote($this->getRemoteUrl(),'text').', '.
346 $this->db->quote($this->getRemoteUser(),'text').', '.
347 $this->db->quote($this->getRemotePass(),'text').', '.
348 $this->db->quote($this->getRemoteSyncLastExecution()->get(IL_CAL_DATETIME,'', ilTimeZone::UTC),'timestamp').' '.
349 ")";
350
351 $ilDB->manipulate($query);
352
353 $this->cat_id = $next_id;
354 return $this->cat_id;
355 }
const IL_CAL_DATETIME
getRemoteSyncLastExecution()
Get last execution date of remote sync.

References $cat_id, $ilDB, $query, getColor(), getLocationType(), getObjId(), getRemotePass(), getRemoteSyncLastExecution(), getRemoteUrl(), getRemoteUser(), getTitle(), getType(), IL_CAL_DATETIME, and ilTimeZone\UTC.

+ Here is the call graph for this function:

◆ delete()

ilCalendarCategory::delete ( )

delete

@access public

Returns

Definition at line 388 of file class.ilCalendarCategory.php.

389 {
390 global $ilDB;
391
392 $query = "DELETE FROM cal_categories ".
393 "WHERE cat_id = ".$this->db->quote($this->cat_id ,'integer')." ";
394 $res = $ilDB->manipulate($query);
395
396 include_once('./Services/Calendar/classes/class.ilCalendarHidden.php');
398
399 include_once('./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php');
400 foreach(ilCalendarCategoryAssignments::_getAssignedAppointments(array($this->cat_id)) as $app_id)
401 {
402 include_once('./Services/Calendar/classes/class.ilCalendarEntry.php');
404 }
406 }
static _getAssignedAppointments($a_cat_id)
Get assigned apointments.
static _deleteByCategoryId($a_cat_id)
Delete assignments by category id.
static _delete($a_entry_id)
delete entry
static _deleteCategories($a_cat_id)
delete by category

References $ilDB, $query, $res, ilCalendarEntry\_delete(), ilCalendarCategoryAssignments\_deleteByCategoryId(), ilCalendarHidden\_deleteCategories(), and ilCalendarCategoryAssignments\_getAssignedAppointments().

+ Here is the call graph for this function:

◆ getCategoryID()

ilCalendarCategory::getCategoryID ( )

get category id

@access public

Returns
int category id

Definition at line 157 of file class.ilCalendarCategory.php.

158 {
159 return $this->cat_id;
160 }

References $cat_id.

Referenced by ilCalendarRemoteReader\importIcal(), and read().

+ Here is the caller graph for this function:

◆ getColor()

ilCalendarCategory::getColor ( )

get color

@access public

Returns

Definition at line 203 of file class.ilCalendarCategory.php.

References $color.

Referenced by add(), update(), and validate().

+ Here is the caller graph for this function:

◆ getInstanceByCategoryId()

static ilCalendarCategory::getInstanceByCategoryId (   $a_cat_id)
static

Get instance by category id.

Parameters
int$a_cat_id
Returns
ilCalendarCategory

Definition at line 115 of file class.ilCalendarCategory.php.

116 {
117 if(!self::$instances[$a_cat_id])
118 {
119 return self::$instances[$a_cat_id] = new ilCalendarCategory($a_cat_id);
120 }
121 return self::$instances[$a_cat_id];
122 }

Referenced by ilCalendarExport\buildAppointmentUrl().

+ Here is the caller graph for this function:

◆ getLocationType()

ilCalendarCategory::getLocationType ( )

Definition at line 262 of file class.ilCalendarCategory.php.

References $location.

Referenced by add(), update(), and validate().

+ Here is the caller graph for this function:

◆ getObjId()

ilCalendarCategory::getObjId ( )

get obj_id

@access public

Returns

Definition at line 247 of file class.ilCalendarCategory.php.

References $obj_id.

Referenced by add(), read(), and update().

+ Here is the caller graph for this function:

◆ getObjType()

ilCalendarCategory::getObjType ( )

get type

@access public

Definition at line 257 of file class.ilCalendarCategory.php.

References $obj_type.

◆ getRemotePass()

ilCalendarCategory::getRemotePass ( )

Definition at line 297 of file class.ilCalendarCategory.php.

References $remote_pass.

Referenced by add(), ilCalendarCategoryGUI\doSynchronisation(), and update().

+ Here is the caller graph for this function:

◆ getRemoteSyncLastExecution()

ilCalendarCategory::getRemoteSyncLastExecution ( )

Get last execution date of remote sync.

Returns
\ilDateTime

Definition at line 315 of file class.ilCalendarCategory.php.

316 {
317 if($this->remote_sync instanceof ilDateTime)
318 {
319 return $this->remote_sync;
320 }
321 return new ilDateTime();
322 }
@classDescription Date and time handling

References $remote_sync.

Referenced by add(), and update().

+ Here is the caller graph for this function:

◆ getRemoteUrl()

ilCalendarCategory::getRemoteUrl ( )

Definition at line 277 of file class.ilCalendarCategory.php.

References $remote_url.

Referenced by add(), ilCalendarCategoryGUI\doSynchronisation(), update(), and validate().

+ Here is the caller graph for this function:

◆ getRemoteUser()

ilCalendarCategory::getRemoteUser ( )

Definition at line 287 of file class.ilCalendarCategory.php.

References $remote_user.

Referenced by add(), ilCalendarCategoryGUI\doSynchronisation(), and update().

+ Here is the caller graph for this function:

◆ getTitle()

ilCalendarCategory::getTitle ( )

get title

@access public

Returns
string title

Definition at line 180 of file class.ilCalendarCategory.php.

References $title.

Referenced by add(), update(), and validate().

+ Here is the caller graph for this function:

◆ getType()

ilCalendarCategory::getType ( )

get type

@access public

Returns

Definition at line 225 of file class.ilCalendarCategory.php.

226 {
227 return $this->type;
228 }

References $type.

Referenced by add(), read(), update(), and validate().

+ Here is the caller graph for this function:

◆ lookupAppointments()

static ilCalendarCategory::lookupAppointments (   $a_category_id)
static

get all assigned appointment ids

Returns
Parameters
object$a_category_id

Definition at line 136 of file class.ilCalendarCategory.php.

137 {
138 global $ilDB;
139
140 $query = "SELECT * FROM cal_cat_assignments ".
141 'WHERE cat_id = '.$ilDB->quote($a_category_id,'integer');
142 $res = $ilDB->query($query);
143 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
144 {
145 $apps[] = $row->cal_id;
146 }
147 return $apps ? $apps : array();
148 }

References $ilDB, $query, $res, $row, and DB_FETCHMODE_OBJECT.

◆ lookupCategorySortIndex()

static ilCalendarCategory::lookupCategorySortIndex (   $a_type_id)
static

Lookup sort index of calendar type.

Definition at line 127 of file class.ilCalendarCategory.php.

128 {
129 return array_search($a_type_id, self::$SORTED_TYPES);
130 }

Referenced by ilCalendarSelectionBlockGUI\getCalendars(), ilCalendarCategoryTableGUI\parse(), and ilCalendarManageTableGUI\parse().

+ Here is the caller graph for this function:

◆ read()

ilCalendarCategory::read ( )
private

read

@access protected

Definition at line 432 of file class.ilCalendarCategory.php.

433 {
434 global $ilDB;
435
436 if(!$this->cat_id)
437 {
438 return true;
439 }
440
441 $query = "SELECT * FROM cal_categories ".
442 "WHERE cat_id = ".$this->db->quote($this->getCategoryID() ,'integer')." ";
443 $res = $this->db->query($query);
444 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
445 {
446 $this->cat_id = $row->cat_id;
447 $this->obj_id = $row->obj_id;
448 $this->type = $row->type;
449 $this->color = $row->color;
450 $this->title = $row->title;
451 $this->location = $row->loc_type;
452 $this->remote_url = $row->remote_url;
453 $this->remote_user = $row->remote_user;
454 $this->remote_pass = $row->remote_pass;
455
456 if($row->remote_sync)
457 {
458 $this->remote_sync = new ilDateTime($row->remote_sync,IL_CAL_DATETIME,'UTC');
459 }
460 else
461 {
462 $this->remote_sync = new ilDateTime();
463 }
464 }
465 if($this->getType() == self::TYPE_OBJ)
466 {
467 $this->title = ilObject::_lookupTitle($this->getObjId());
468 $this->obj_type = ilObject::_lookupType($this->getObjId());
469 }
470 }
static _lookupTitle($a_id)
lookup object title
static _lookupType($a_id, $a_reference=false)
lookup object type

References $ilDB, $query, $res, $row, ilObject\_lookupTitle(), ilObject\_lookupType(), DB_FETCHMODE_OBJECT, getCategoryID(), getObjId(), getType(), and IL_CAL_DATETIME.

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setColor()

ilCalendarCategory::setColor (   $a_color)

set color

@access public

Parameters
stringcolor

Definition at line 192 of file class.ilCalendarCategory.php.

193 {
194 $this->color = $a_color;
195 }

◆ setLocationType()

ilCalendarCategory::setLocationType (   $a_type)

Definition at line 267 of file class.ilCalendarCategory.php.

268 {
269 $this->location = $a_type;
270 }

◆ setObjId()

ilCalendarCategory::setObjId (   $a_obj_id)

set obj id

@access public

Parameters
intobj_id

Definition at line 236 of file class.ilCalendarCategory.php.

237 {
238 $this->obj_id = $a_obj_id;
239 }

◆ setRemotePass()

ilCalendarCategory::setRemotePass (   $a_pass)

Definition at line 292 of file class.ilCalendarCategory.php.

293 {
294 $this->remote_pass = $a_pass;
295 }

◆ setRemoteSyncLastExecution()

ilCalendarCategory::setRemoteSyncLastExecution ( ilDateTime  $dt = null)

Set remote sync last execution.

Parameters
ilDateTime$dt

Definition at line 306 of file class.ilCalendarCategory.php.

307 {
308 $this->remote_sync = $dt;
309 }

◆ setRemoteUrl()

ilCalendarCategory::setRemoteUrl (   $a_url)

Definition at line 272 of file class.ilCalendarCategory.php.

273 {
274 $this->remote_url = $a_url;
275 }

◆ setRemoteUser()

ilCalendarCategory::setRemoteUser (   $a_user)

Definition at line 282 of file class.ilCalendarCategory.php.

283 {
284 $this->remote_user = $a_user;
285 }

◆ setTitle()

ilCalendarCategory::setTitle (   $a_title)

set title

@access public

Parameters
stringtitle
Returns

Definition at line 169 of file class.ilCalendarCategory.php.

170 {
171 $this->title = $a_title;
172 }

◆ setType()

ilCalendarCategory::setType (   $a_type)

set type

@access public

Parameters
inttype

Definition at line 214 of file class.ilCalendarCategory.php.

215 {
216 $this->type = $a_type;
217 }

◆ update()

ilCalendarCategory::update ( )

update

@access public

Returns

Definition at line 363 of file class.ilCalendarCategory.php.

364 {
365 global $ilDB;
366
367 $query = "UPDATE cal_categories ".
368 "SET obj_id = ".$this->db->quote($this->getObjId() ,'integer').", ".
369 "color = ".$this->db->quote($this->getColor() ,'text').", ".
370 "type = ".$this->db->quote($this->getType() ,'integer').", ".
371 "title = ".$this->db->quote($this->getTitle() ,'text').", ".
372 "loc_type = ".$this->db->quote($this->getLocationType(),'integer').', '.
373 "remote_url = ".$this->db->quote($this->getRemoteUrl(),'text').', '.
374 "remote_user = ".$this->db->quote($this->getRemoteUser(),'text').', '.
375 "remote_pass = ".$this->db->quote($this->getRemotePass(),'text').', '.
376 'remote_sync = '.$this->db->quote($this->getRemoteSyncLastExecution()->get(IL_CAL_DATETIME,'', ilTimeZone::UTC),'timestamp').' '.
377 "WHERE cat_id = ".$this->db->quote($this->cat_id ,'integer')." ";
378 $res = $ilDB->manipulate($query);
379 return true;
380 }

References $ilDB, $query, $res, getColor(), getLocationType(), getObjId(), getRemotePass(), getRemoteSyncLastExecution(), getRemoteUrl(), getRemoteUser(), getTitle(), getType(), IL_CAL_DATETIME, and ilTimeZone\UTC.

+ Here is the call graph for this function:

◆ validate()

ilCalendarCategory::validate ( )

validate

@access public

Returns
bool

Definition at line 414 of file class.ilCalendarCategory.php.

415 {
417 {
418 return false;
419 }
420 if(strlen($this->getTitle()) and strlen($this->getColor()) and $this->getType())
421 {
422 return true;
423 }
424 return false;
425 }

References getColor(), getLocationType(), getRemoteUrl(), getTitle(), getType(), and LTYPE_REMOTE.

+ Here is the call graph for this function:

Field Documentation

◆ $cat_id

ilCalendarCategory::$cat_id
protected

Definition at line 57 of file class.ilCalendarCategory.php.

Referenced by add(), and getCategoryID().

◆ $color

ilCalendarCategory::$color
protected

Definition at line 58 of file class.ilCalendarCategory.php.

Referenced by getColor().

◆ $db

ilCalendarCategory::$db
protected

Definition at line 70 of file class.ilCalendarCategory.php.

◆ $instances

ilCalendarCategory::$instances = null
staticprivate

Definition at line 38 of file class.ilCalendarCategory.php.

◆ $location

ilCalendarCategory::$location = self::LTYPE_LOCAL
protected

Definition at line 64 of file class.ilCalendarCategory.php.

Referenced by getLocationType().

◆ $obj_id

ilCalendarCategory::$obj_id
protected

Definition at line 60 of file class.ilCalendarCategory.php.

Referenced by getObjId().

◆ $obj_type

ilCalendarCategory::$obj_type = null
protected

Definition at line 61 of file class.ilCalendarCategory.php.

Referenced by getObjType().

◆ $remote_pass

ilCalendarCategory::$remote_pass
protected

Definition at line 67 of file class.ilCalendarCategory.php.

Referenced by getRemotePass().

◆ $remote_sync

ilCalendarCategory::$remote_sync = null
protected

Definition at line 68 of file class.ilCalendarCategory.php.

Referenced by getRemoteSyncLastExecution().

◆ $remote_url

ilCalendarCategory::$remote_url
protected

Definition at line 65 of file class.ilCalendarCategory.php.

Referenced by getRemoteUrl().

◆ $remote_user

ilCalendarCategory::$remote_user
protected

Definition at line 66 of file class.ilCalendarCategory.php.

Referenced by getRemoteUser().

◆ $SORTED_TYPES

ilCalendarCategory::$SORTED_TYPES
staticprotected
Initial value:
= array(
0 => self::TYPE_GLOBAL,
1 => self::TYPE_USR,
2 => self::TYPE_CH,
3 => self::TYPE_BOOK,
4 => self::TYPE_OBJ
)

Definition at line 48 of file class.ilCalendarCategory.php.

◆ $title

ilCalendarCategory::$title
protected

Definition at line 62 of file class.ilCalendarCategory.php.

Referenced by getTitle().

◆ $type

ilCalendarCategory::$type = self::TYPE_USR
protected

Definition at line 59 of file class.ilCalendarCategory.php.

Referenced by getType().

◆ DEFAULT_COLOR

const ilCalendarCategory::DEFAULT_COLOR = '#04427e'

◆ LTYPE_LOCAL

const ilCalendarCategory::LTYPE_LOCAL = 1

Definition at line 35 of file class.ilCalendarCategory.php.

Referenced by ilCalendarCategoryGUI\initFormCategory().

◆ LTYPE_REMOTE

◆ TYPE_BOOK

◆ TYPE_CH

◆ TYPE_GLOBAL

◆ TYPE_OBJ

◆ TYPE_USR


The documentation for this class was generated from the following file: