ILIAS  Release_3_10_x_branch Revision 61812
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilCalendarRecurrence Class Reference
+ Inheritance diagram for ilCalendarRecurrence:
+ Collaboration diagram for ilCalendarRecurrence:

Public Member Functions

 __construct ($a_rec_id=0)
 Constructor.
 reset ()
 reset all settings
 getRecurrenceId ()
 get recurrence id
 setEntryId ($a_id)
 set cal id
 setRecurrence ($a_type)
 set type of recurrence
 isRecurrence ()
 is recurrence
 setFrequenceType ($a_type)
 set frequence type
 getFrequenceType ()
 get freq type
 getFrequenceUntilDate ()
 get until date
 setFrequenceUntilDate (ilDateTime $a_date)
 set freq until date
 setFrequenceUntilCount ($a_count)
 set frequence count
 getFrequenceUntilCount ()
 get frequence until count
 setInterval ($a_interval)
 set interval
 getInterval ()
 get interval
 setBYDAY ($a_byday)
 set by day
 getBYDAY ()
 get BYDAY
 getBYDAYList ()
 get BYDAY list
 setBYWEEKNO ($a_byweekno)
 set by day
 getBYWEEKNOList ()
 get byweekno list
 getBYWEEKNO ()
 get BYDAY
 setBYMONTH ($a_by)
 set by day
 getBYMONTH ()
 get BYDAY
 getBYMONTHList ()
 get bymonth list
 setBYMONTHDAY ($a_by)
 set by day
 getBYMONTHDAY ()
 get BYDAY
 getBYMONTHDAYList ()
 get BYMONTHDAY list
 setBYYEARDAY ($a_by)
 set by day
 getBYYEARDAY ()
 get BYDAY
 getBYYEARDAYList ()
 get BYYEARDAY list
 setBYSETPOS ($a_by)
 set by day
 getBYSETPOS ()
 get BYDAY
 getBYSETPOSList ()
 get bysetpos list
 setWeekstart ($a_start)
 set weekstart
 getWeekstart ()
 get weekstart
 getTimeZone ()
 get timezone
 setTimeZone ($a_tz)
 set timezone
 validate ()
 validate
 save ()
 save
 update ()
 save
 delete ()
 delete

Static Public Member Functions

static _delete ($a_cal_id)
 delete

Data Fields

const REC_RECURRENCE = 0
const REC_EXCLUSION = 1
const FREQ_DAILY = 'DAILY'
const FREQ_WEEKLY = 'WEEKLY'
const FREQ_MONTHLY = 'MONTHLY'
const FREQ_YEARLY = 'YEARLY'

Protected Attributes

 $db

Private Member Functions

 read ()
 Read entry.

Private Attributes

 $recurrence_id
 $cal_id
 $recurrence_type
 $freq_type
 $freq_until_type
 $freq_until_date = null
 $freq_until_count
 $interval
 $byday
 $byweekno
 $bymonth
 $bymonthday
 $byyearday
 $bysetpos
 $weekstart
 $timezone = 'Europe/Berlin'

Detailed Description

Definition at line 41 of file class.ilCalendarRecurrence.php.

Constructor & Destructor Documentation

ilCalendarRecurrence::__construct (   $a_rec_id = 0)

Constructor.

public

Parameters
intrecurrence id

Definition at line 81 of file class.ilCalendarRecurrence.php.

References read().

{
global $ilDB;
$this->db = $ilDB;
$this->recurrence_id = $a_rec_id;
if($a_rec_id)
{
$this->read();
}
}

+ Here is the call graph for this function:

Member Function Documentation

static ilCalendarRecurrence::_delete (   $a_cal_id)
static

delete

public

Parameters
intappointment id
Returns

Definition at line 101 of file class.ilCalendarRecurrence.php.

References $res.

{
global $ilDB;
$query = "DELETE FROM cal_recurrence_rules ".
"WHERE cal_id = ".$ilDB->quote($a_cal_id)." ";
$res = $ilDB->query($query);
}
ilCalendarRecurrence::delete ( )

delete

public

Reimplemented in ilEventRecurrence, and ilSessionRecurrence.

Definition at line 665 of file class.ilCalendarRecurrence.php.

{
$query = "DELETE FROM cal_recurrence_rules ".
"WHERE rule_id = ".$this->db->quote($this->recurrence_id);
$this->db->query($query);
return true;
}
ilCalendarRecurrence::getBYDAY ( )

get BYDAY

public

Definition at line 289 of file class.ilCalendarRecurrence.php.

References $byday.

Referenced by getBYDAYList(), save(), and update().

{
return $this->byday;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getBYDAYList ( )

get BYDAY list

public

Returns

Definition at line 300 of file class.ilCalendarRecurrence.php.

References $byday, and getBYDAY().

{
if(!trim($this->getBYDAY()))
{
return array();
}
foreach(explode(',',$this->getBYDAY()) as $byday)
{
$bydays[] = trim($byday);
}
return $bydays ? $bydays : array();
}

+ Here is the call graph for this function:

ilCalendarRecurrence::getBYMONTH ( )

get BYDAY

public

Definition at line 374 of file class.ilCalendarRecurrence.php.

References $bymonth.

Referenced by getBYMONTHList(), save(), and update().

{
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getBYMONTHDAY ( )

get BYDAY

public

Definition at line 416 of file class.ilCalendarRecurrence.php.

References $bymonthday.

Referenced by getBYMONTHDAYList(), save(), and update().

{
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getBYMONTHDAYList ( )

get BYMONTHDAY list

public

Definition at line 426 of file class.ilCalendarRecurrence.php.

References getBYMONTHDAY().

{
if(!trim($this->getBYMONTHDAY()))
{
return array();
}
foreach(explode(',',$this->getBYMONTHDAY()) as $month_num)
{
$months[] = (int) $month_num;
}
return $months ? $months : array();
}

+ Here is the call graph for this function:

ilCalendarRecurrence::getBYMONTHList ( )

get bymonth list

public

Definition at line 385 of file class.ilCalendarRecurrence.php.

References getBYMONTH().

{
if(!trim($this->getBYMONTH()))
{
return array();
}
foreach(explode(',',$this->getBYMONTH()) as $month_num)
{
$months[] = (int) $month_num;
}
return $months ? $months : array();
}

+ Here is the call graph for this function:

ilCalendarRecurrence::getBYSETPOS ( )

get BYDAY

public

Definition at line 501 of file class.ilCalendarRecurrence.php.

References $bysetpos.

Referenced by getBYSETPOSList(), save(), and update().

{
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getBYSETPOSList ( )

get bysetpos list

public

Definition at line 512 of file class.ilCalendarRecurrence.php.

References getBYSETPOS().

{
if(!trim($this->getBYSETPOS()))
{
return array();
}
foreach(explode(',',$this->getBYSETPOS()) as $pos)
{
$positions[] = (int) $pos;
}
return $positions ? $positions : array();
}

+ Here is the call graph for this function:

ilCalendarRecurrence::getBYWEEKNO ( )

get BYDAY

public

Definition at line 351 of file class.ilCalendarRecurrence.php.

References $byweekno.

Referenced by getBYWEEKNOList(), save(), and update().

{
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getBYWEEKNOList ( )

get byweekno list

public

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

References getBYWEEKNO().

{
if(!trim($this->getBYWEEKNO()))
{
return array();
}
foreach(explode(',',$this->getBYWEEKNO()) as $week_num)
{
$weeks[] = (int) $week_num;
}
return $weeks ? $weeks : array();
}

+ Here is the call graph for this function:

ilCalendarRecurrence::getBYYEARDAY ( )

get BYDAY

public

Definition at line 459 of file class.ilCalendarRecurrence.php.

References $byyearday.

Referenced by getBYYEARDAYList(), save(), and update().

{
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getBYYEARDAYList ( )

get BYYEARDAY list

public

Definition at line 470 of file class.ilCalendarRecurrence.php.

References getBYYEARDAY().

{
if(!trim($this->getBYYEARDAY()))
{
return array();
}
foreach(explode(',',$this->getBYYEARDAY()) as $year_day)
{
$days[] = (int) $year_day;
}
return $days ? $days : array();
}

+ Here is the call graph for this function:

ilCalendarRecurrence::getFrequenceType ( )

get freq type

public

Definition at line 197 of file class.ilCalendarRecurrence.php.

References $freq_type.

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

{
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getFrequenceUntilCount ( )

get frequence until count

public

Parameters

Definition at line 243 of file class.ilCalendarRecurrence.php.

References $freq_until_count.

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

+ Here is the caller graph for this function:

ilCalendarRecurrence::getFrequenceUntilDate ( )

get until date

public

Definition at line 208 of file class.ilCalendarRecurrence.php.

Referenced by save(), and update().

{
return is_object($this->freq_until_date) ? $this->freq_until_date : null;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getInterval ( )

get interval

public

Definition at line 266 of file class.ilCalendarRecurrence.php.

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

{
return $this->interval ? $this->interval : 1;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::getRecurrenceId ( )

get recurrence id

public

Returns

Definition at line 137 of file class.ilCalendarRecurrence.php.

References $recurrence_id.

{
}
ilCalendarRecurrence::getTimeZone ( )

get timezone

public

Definition at line 555 of file class.ilCalendarRecurrence.php.

References $timezone.

{
}
ilCalendarRecurrence::getWeekstart ( )

get weekstart

public

Definition at line 544 of file class.ilCalendarRecurrence.php.

References $weekstart.

Referenced by save(), and update().

{
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::isRecurrence ( )

is recurrence

public

Parameters

Definition at line 174 of file class.ilCalendarRecurrence.php.

References REC_RECURRENCE.

{
return $this->recurrence_type == self::REC_RECURRENCE;
}
ilCalendarRecurrence::read ( )
private

Read entry.

private

Definition at line 679 of file class.ilCalendarRecurrence.php.

References $res, DB_FETCHMODE_OBJECT, and IL_CAL_DATETIME.

Referenced by __construct().

{
$query = "SELECT * FROM cal_recurrence_rules ".
"WHERE rule_id = ".$this->db->quote($this->recurrence_id)." ";
$res = $this->db->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$this->cal_id = $row->cal_id;
$this->recurrence_type = $row->cal_recurrence;
$this->freq_type = $row->freq_type;
if($row->freq_until_date != '0000-00-00 00:00:00')
{
$this->freq_until_date = new ilDateTime($row->freq_until_date,IL_CAL_DATETIME,'UTC');
}
$this->freq_until_count = $row->freq_until_count;
$this->interval = $row->intervall;
$this->byday = $row->byday;
$this->byweekno = $row->byweekno;
$this->bymonth = $row->bymonth;
$this->bymonthday = $row->bymonthday;
$this->byyearday = $row->byyearday;
$this->bysetpos = $row->bysetpos;
$this->weekstart = $row->week_start;
}
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::reset ( )

reset all settings

public

Returns

Definition at line 116 of file class.ilCalendarRecurrence.php.

References setBYDAY(), setBYMONTH(), setBYMONTHDAY(), setBYSETPOS(), setBYWEEKNO(), setBYYEARDAY(), setFrequenceType(), setFrequenceUntilCount(), and setInterval().

{
$this->setBYDAY('');
$this->setBYMONTHDAY('');
$this->setBYMONTH('');
$this->setBYSETPOS('');
$this->setBYWEEKNO('');
$this->setBYYEARDAY('');
$this->setFrequenceType('');
$this->setInterval(1);
return true;
}

+ Here is the call graph for this function:

ilCalendarRecurrence::save ( )

save

public

Reimplemented in ilEventRecurrence, and ilSessionRecurrence.

Definition at line 603 of file class.ilCalendarRecurrence.php.

References $res, getBYDAY(), getBYMONTH(), getBYMONTHDAY(), getBYSETPOS(), getBYWEEKNO(), getBYYEARDAY(), getFrequenceType(), getFrequenceUntilCount(), getFrequenceUntilDate(), getInterval(), getWeekstart(), and IL_CAL_DATETIME.

{
$until_date = is_null($this->getFrequenceUntilDate()) ?
0 :
$this->getFrequenceUntilDate()->get(IL_CAL_DATETIME,'','UTC');
$query = "INSERT INTO cal_recurrence_rules ".
"SET cal_id = ".$this->db->quote($this->cal_id).", ".
"cal_recurrence = 1,".
"freq_type = ".$this->db->quote($this->getFrequenceType()).", ".
"freq_until_date = ".$this->db->quote($until_date).", ".
"freq_until_count = ".$this->db->quote($this->getFrequenceUntilCount()).", ".
"intervall = ".$this->db->quote($this->getInterval()).", ".
"byday = ".$this->db->quote($this->getBYDAY()).", ".
"byweekno = ".$this->db->quote($this->getBYWEEKNO()).", ".
"bymonth = ".$this->db->quote($this->getBYMONTH()).", ".
"bymonthday = ".$this->db->quote($this->getBYMONTHDAY()).", ".
"byyearday = ".$this->db->quote($this->getBYYEARDAY()).", ".
"bysetpos = ".$this->db->quote($this->getBYSETPOS()).", ".
"weekstart = ".$this->db->quote($this->getWeekstart())." ";
$res = $this->db->query($query);
$this->recurrence_id = $this->db->getLastInsertId();
return true;
}

+ Here is the call graph for this function:

ilCalendarRecurrence::setBYDAY (   $a_byday)

set by day

public

Parameters
stringbyday rule

Definition at line 278 of file class.ilCalendarRecurrence.php.

Referenced by reset().

{
$this->byday = $a_byday;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setBYMONTH (   $a_by)

set by day

public

Parameters
stringbyday rule

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

Referenced by reset().

{
$this->bymonth = $a_by;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setBYMONTHDAY (   $a_by)

set by day

public

Parameters
stringbyday rule

Definition at line 405 of file class.ilCalendarRecurrence.php.

Referenced by reset().

{
$this->bymonthday = $a_by;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setBYSETPOS (   $a_by)

set by day

public

Parameters
stringbyday rule

Definition at line 490 of file class.ilCalendarRecurrence.php.

Referenced by reset().

{
$this->bysetpos = $a_by;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setBYWEEKNO (   $a_byweekno)

set by day

public

Parameters
stringbyday rule

Definition at line 320 of file class.ilCalendarRecurrence.php.

Referenced by reset().

{
$this->byweekno = $a_byweekno;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setBYYEARDAY (   $a_by)

set by day

public

Parameters
stringbyday rule

Definition at line 448 of file class.ilCalendarRecurrence.php.

Referenced by reset().

{
$this->byyearday = $a_by;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setEntryId (   $a_id)

set cal id

public

Parameters
intcalendar entry id

Definition at line 150 of file class.ilCalendarRecurrence.php.

{
$this->cal_id = $a_id;
}
ilCalendarRecurrence::setFrequenceType (   $a_type)

set frequence type

public

Parameters
intFREQUENCE_TYPE e.g MONTHLY, WEEKLY ...

Definition at line 186 of file class.ilCalendarRecurrence.php.

Referenced by reset().

{
$this->freq_type = $a_type;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setFrequenceUntilCount (   $a_count)

set frequence count

public

Parameters
intcount

Definition at line 231 of file class.ilCalendarRecurrence.php.

Referenced by reset().

{
$this->freq_until_count = $a_count;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setFrequenceUntilDate ( ilDateTime  $a_date)

set freq until date

public

Definition at line 219 of file class.ilCalendarRecurrence.php.

{
$this->freq_until_date = $a_date;
}
ilCalendarRecurrence::setInterval (   $a_interval)

set interval

public

Parameters
intinterval

Definition at line 255 of file class.ilCalendarRecurrence.php.

Referenced by reset().

{
$this->interval = $a_interval;
}

+ Here is the caller graph for this function:

ilCalendarRecurrence::setRecurrence (   $a_type)

set type of recurrence

public

Parameters
intREC_RECURRENCE or REC_EXLUSION defines whther the current object is a recurrence an exclusion pattern

Definition at line 162 of file class.ilCalendarRecurrence.php.

{
$this->recurrence_type = $a_type;
}
ilCalendarRecurrence::setTimeZone (   $a_tz)

set timezone

public

Parameters
stringtimezone

Definition at line 567 of file class.ilCalendarRecurrence.php.

{
$this->timezone = $a_tz;
}
ilCalendarRecurrence::setWeekstart (   $a_start)

set weekstart

public

Parameters
stringweekstart

Definition at line 533 of file class.ilCalendarRecurrence.php.

{
$this->weekstart = $a_start;
}
ilCalendarRecurrence::update ( )

save

public

Reimplemented in ilEventRecurrence, and ilSessionRecurrence.

Definition at line 634 of file class.ilCalendarRecurrence.php.

References getBYDAY(), getBYMONTH(), getBYMONTHDAY(), getBYSETPOS(), getBYWEEKNO(), getBYYEARDAY(), getFrequenceType(), getFrequenceUntilCount(), getFrequenceUntilDate(), getInterval(), getWeekstart(), and IL_CAL_DATETIME.

{
$until_date = is_null($this->getFrequenceUntilDate()) ?
0 :
$this->getFrequenceUntilDate()->get(IL_CAL_DATETIME,'','UTC');
$query = "UPDATE cal_recurrence_rules SET ".
"cal_id = ".$this->db->quote($this->cal_id).", ".
"cal_recurrence = 1,".
"freq_type = ".$this->db->quote($this->getFrequenceType()).", ".
"freq_until_date = ".$this->db->quote($until_date).", ".
"freq_until_count = ".$this->db->quote($this->getFrequenceUntilCount()).", ".
"intervall = ".$this->db->quote($this->getInterval()).", ".
"byday = ".$this->db->quote($this->getBYDAY()).", ".
"byweekno = ".$this->db->quote($this->getBYWEEKNO()).", ".
"bymonth = ".$this->db->quote($this->getBYMONTH()).", ".
"bymonthday = ".$this->db->quote($this->getBYMONTHDAY()).", ".
"byyearday = ".$this->db->quote($this->getBYYEARDAY()).", ".
"bysetpos = ".$this->db->quote($this->getBYSETPOS()).", ".
"weekstart = ".$this->db->quote($this->getWeekstart())." ".
"WHERE rule_id = ".$this->db->quote($this->recurrence_id)." ";
$this->db->query($query);
return true;
}

+ Here is the call graph for this function:

ilCalendarRecurrence::validate ( )

validate

public

Returns
bool

Definition at line 578 of file class.ilCalendarRecurrence.php.

References getFrequenceType(), getFrequenceUntilCount(), getInterval(), IL_CAL_FREQ_DAILY, IL_CAL_FREQ_MONTHLY, IL_CAL_FREQ_WEEKLY, and IL_CAL_FREQ_YEARLY.

{
if(!in_array($this->getFrequenceType(),$valid_frequences))
{
return false;
}
if($this->getFrequenceUntilCount() < 0)
{
return false;
}
if($this->getInterval() <= 0)
{
return false;
}
return true;
}

+ Here is the call graph for this function:

Field Documentation

ilCalendarRecurrence::$byday
private

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

Referenced by getBYDAY(), and getBYDAYList().

ilCalendarRecurrence::$bymonth
private

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

Referenced by getBYMONTH().

ilCalendarRecurrence::$bymonthday
private

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

Referenced by getBYMONTHDAY().

ilCalendarRecurrence::$bysetpos
private

Definition at line 69 of file class.ilCalendarRecurrence.php.

Referenced by getBYSETPOS().

ilCalendarRecurrence::$byweekno
private

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

Referenced by getBYWEEKNO().

ilCalendarRecurrence::$byyearday
private

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

Referenced by getBYYEARDAY().

ilCalendarRecurrence::$cal_id
private

Definition at line 55 of file class.ilCalendarRecurrence.php.

ilCalendarRecurrence::$db
protected

Definition at line 52 of file class.ilCalendarRecurrence.php.

ilCalendarRecurrence::$freq_type
private

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

Referenced by getFrequenceType().

ilCalendarRecurrence::$freq_until_count
private

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

Referenced by getFrequenceUntilCount().

ilCalendarRecurrence::$freq_until_date = null
private

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

ilCalendarRecurrence::$freq_until_type
private

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

ilCalendarRecurrence::$interval
private

Definition at line 63 of file class.ilCalendarRecurrence.php.

ilCalendarRecurrence::$recurrence_id
private

Definition at line 54 of file class.ilCalendarRecurrence.php.

Referenced by getRecurrenceId().

ilCalendarRecurrence::$recurrence_type
private

Definition at line 56 of file class.ilCalendarRecurrence.php.

ilCalendarRecurrence::$timezone = 'Europe/Berlin'
private

Definition at line 72 of file class.ilCalendarRecurrence.php.

Referenced by getTimeZone().

ilCalendarRecurrence::$weekstart
private

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

Referenced by getWeekstart().

const ilCalendarRecurrence::REC_EXCLUSION = 1

Definition at line 44 of file class.ilCalendarRecurrence.php.

const ilCalendarRecurrence::REC_RECURRENCE = 0

Definition at line 43 of file class.ilCalendarRecurrence.php.

Referenced by isRecurrence().


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