4include_once(
'Services/Calendar/classes/class.ilDate.php');
 
    5include_once(
'./Services/Calendar/interfaces/interface.ilDatePeriod.php');
 
    7define(
'IL_CAL_TRANSLATION_NONE',0);
 
    8define(
'IL_CAL_TRANSLATION_SYSTEM',1);
 
   58                if($this->entry_id = $a_id)
 
   69                $this->entry_id = NULL;
 
   79        public static function _delete($a_entry_id)
 
   83                include_once(
'./Services/Calendar/classes/class.ilCalendarRecurrence.php');
 
   86                $query = 
"DELETE FROM cal_entries ".
 
   87                        "WHERE cal_id = ".$ilDB->quote($a_entry_id ,
'integer').
" ";
 
  125                $this->last_update = $a_date;
 
  137                return $this->start ? $this->start : $this->start = 
new ilDateTime();
 
  149                $this->start = $a_start;
 
  159                return $this->end ? $this->end : $this->end = 
new ilDateTime();
 
  181                $this->title = $a_title;
 
  213                        if(preg_match(
"/#([a-z]+)#/", $this->
getSubtitle(), $matches))
 
  241                return $this->presentation_style;
 
  251                        case "consultationhour":
 
  252                                include_once 
'Services/Booking/classes/class.ilBookingEntry.php';
 
  256                                        if($entry->isOwner())
 
  258                                                $max = (int)$entry->getNumberOfBookings();
 
  259                                                $current = (int)$entry->getCurrentNumberOfBookings($this->getEntryId());                                                
 
  262                                                        $style = 
';border-left-width: 5px; border-left-style: solid; border-left-color: green';
 
  265                                                elseif($current >= $max)
 
  267                                                        $style = 
';border-left-width: 5px; border-left-style: solid; border-left-color: red';
 
  272                                                        $style = 
';border-left-width: 5px; border-left-style: solid; border-left-color: yellow';
 
  273                                                        $title = $current.
'/'.$max;
 
  281                                                include_once 
'Services/Calendar/classes/ConsultationHours/class.ilConsultationHourAppointments.php';
 
  283                                                $orig_event = $apps[0];
 
  284                                                if($entry->hasBooked($orig_event))
 
  286                                                        $style = 
';border-left-width: 5px; border-left-style: solid; border-left-color: green';
 
  296                        $this->presentation_style = 
$style;
 
  312                $this->subtitle = $a_subtitle;
 
  335                $this->description = $a_description;
 
  357                $this->location = $a_location;
 
  379                $this->further_informations = $a_informations;
 
  403                $this->fullday = (bool) $a_fullday;
 
  437                $this->is_auto_generated = $a_status;
 
  461                $this->is_milestone = $a_status;
 
  471                $this->completion = $a_completion;
 
  493                $this->context_id = $a_context_id;
 
  516                $this->translation_type = $a_type;
 
  536                $this->notification = $a_status;
 
  562                $query = 
"UPDATE cal_entries ".
 
  563                        "SET title = ".$this->db->quote($this->
getTitle() ,
'text').
", ".
 
  564                        "last_update = ".$ilDB->quote($utc_timestamp,
'timestamp').
", ".
 
  565                        "subtitle = ".$this->db->quote($this->
getSubtitle() ,
'text').
", ".
 
  566                        "description = ".$this->db->quote($this->
getDescription(),
'text').
", ".
 
  567                        "location = ".$this->db->quote($this->
getLocation() ,
'text').
", ".
 
  568                        "fullday = ".$ilDB->quote($this->
isFullday() ? 1 : 0,
'integer').
", ".
 
  572                        "auto_generated =  ".$this->db->quote($this->
isAutoGenerated() ,
'integer').
", ".
 
  574                        "context_id = ".$this->db->quote($this->
getContextId() ,
'integer').
", ".
 
  575                        "completion = ".$this->db->quote($this->
getCompletion(), 
'integer').
", ".
 
  576                        "is_milestone = ".$this->db->quote($this->
isMilestone() ? 1 : 0, 
'integer').
", ".
 
  578                        "WHERE cal_id = ".$this->db->quote($this->
getEntryId() ,
'integer').
" ";
 
  594                $next_id = 
$ilDB->nextId(
'cal_entries');
 
  598                $query = 
"INSERT INTO cal_entries (cal_id,title,last_update,subtitle,description,location,fullday,starta,enda, ".
 
  599                        "informations,auto_generated,context_id,translation_type, completion, is_milestone, notification) ".
 
  601                        $ilDB->quote($next_id,
'integer').
", ".
 
  602                        $this->db->quote($this->
getTitle(),
'text').
", ".
 
  603                        $ilDB->quote($utc_timestamp,
'timestamp').
", ".
 
  604                        $this->db->quote($this->
getSubtitle(),
'text').
", ".
 
  606                        $this->db->quote($this->
getLocation() ,
'text').
", ".
 
  607                        $ilDB->quote($this->
isFullday() ? 1 : 0,
'integer').
", ".
 
  612                        $this->db->quote($this->
getContextId() ,
'integer').
", ".
 
  615                        $this->db->quote($this->
isMilestone() ? 1 : 0, 
'integer').
", ".
 
  620                $this->entry_id = $next_id;             
 
  630        public function delete()
 
  634                include_once(
'./Services/Calendar/classes/class.ilCalendarRecurrence.php');
 
  637                $query = 
"DELETE FROM cal_entries ".
 
  638                        "WHERE cal_id = ".$this->db->quote($this->
getEntryId() ,
'integer').
" ";
 
  641                include_once 
'./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php';
 
  662                        $ilErr->appendMessage(
$lng->txt(
'err_missing_title'));
 
  667                        $ilErr->appendMessage(
$lng->txt(
'err_end_before_start'));
 
  683                $query = 
"SELECT * FROM cal_entries WHERE cal_id = ".$this->db->quote($this->
getEntryId() ,
'integer').
" ";
 
  722                $body = 
$lng->txt(
'cal_details');
 
  724                $body .= 
$lng->txt(
'title').
': '.$this->
getTitle().
"\n";
 
  750                $ilDB->manipulateF(
"DELETE FROM cal_entry_responsible WHERE cal_id = %s",
 
  751                        array(
"integer"), array($this->
getEntryId()));
 
  753                if (is_array($a_users))
 
  755                        foreach ($a_users as $user_id)
 
  757                                $ilDB->manipulateF(
"INSERT INTO cal_entry_responsible (cal_id, user_id) ".
 
  758                                        " VALUES (%s,%s)", array(
"integer", 
"integer"),
 
  763                $this->responsible_users = $a_users;
 
  773                $set = 
$ilDB->queryF(
"SELECT * FROM cal_entry_responsible WHERE cal_id = %s",
 
  774                        array(
"integer"), array($this->
getEntryId()));
 
  777                while($rec = 
$ilDB->fetchAssoc($set))
 
  780                        $return[] = array_merge(
$n,
 
const IL_CAL_TRANSLATION_NONE
const DB_FETCHMODE_OBJECT
static _deleteByAppointmentId($a_app_id)
Delete appointment assignment.
Model for a calendar entry.
setTranslationType($a_type)
@access public
enableNotification($a_status)
Enable course group notification.
setLastUpdate($a_date)
set last update
appointmentToMailString($lng)
writeResponsibleUsers($a_users)
Write users responsible for a milestone.
setAutoGenerated($a_status)
set auto generated
setFullday($a_fullday)
set fullday event Fullday events do not change their time in different timezones.
isMilestone()
is milestone
setLocation($a_location)
set location
static _delete($a_entry_id)
delete entry
setTitle($a_title)
set title
setCompletion($a_completion)
Set Completion.
setFurtherInformations($a_informations)
set further informations
getContextId()
get context id
setMilestone($a_status)
set milestone
readResponsibleUsers()
Read responsible users.
getEnd()
get end @access public
__construct($a_id=0)
Constructor.
getTranslationType()
get translation type
getCompletion()
Get Completion.
setEnd($a_end)
set end @access public
parseDynamicTitle($a_type)
getPresentationTitle($a_shorten=true)
get title for presentation.
setContextId($a_context_id)
set context id
isAutoGenerated()
is auto generated
setStart(ilDateTime $a_start)
@access public
isNotificationEnabled()
Check if course group notification is enabled.
getSubtitle()
get subtitle
setSubtitle($a_subtitle)
set subtitle Used for automatic generated appointments.
getFurtherInformations()
get further informations
getLastUpdate()
get last update
getDescription()
get description
setDescription($a_description)
set description
getLocation()
get location
static _delete($a_cal_id)
delete
static getAppointmentIds($a_user_id, $a_context_id=NULL, $a_start=NULL, $a_type=NULL, $a_check_owner=true)
Get all appointment ids.
static formatPeriod(ilDateTime $start, ilDateTime $end)
Format a period of two date Shows: 14.
static setUseRelativeDates($a_status)
set use relative dates
@classDescription Date and time handling
static _before(ilDateTime $start, ilDateTime $end, $a_compare_field='', $a_tz='')
compare two dates and check start is before end This method does not consider tz offsets.
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
static shortenWords($a_str, $a_len=30, $a_dots=true)
Ensure that the maximum word lenght within a text is not longer than $a_len.