Source of file CachedCalendarEntry.php
Size: 1,843 Bytes - Last Modified: 2021-12-23T10:30:06+00:00
/var/www/docs.ssmods.com/process/src/code/CachedCalendarEntry.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | <?php class CachedCalendarEntry extends DataObject { private static $db = array ( 'StartDate' => 'Date', 'StartTime' => 'Time', 'EndDate' => 'Date', 'EndTime' => 'Time', 'AllDay' => 'Boolean', 'Announcement' => 'Boolean', 'DateRange' => 'HTMLText', 'TimeRange' => 'HTMLText', 'ICSLink' => 'Varchar(100)', 'Title' => 'Varchar(255)', 'Content' => 'HTMLText' ); private static $has_one = array ( 'CachedCalendar' => 'Calendar', 'Calendar' => 'Calendar', 'Event' => 'CalendarEvent' ); private static $default_sort = "StartDate ASC, StartTime ASC"; public static function create_from_datetime(CalendarDateTime $dt, Calendar $calendar) { $cached = CachedCalendarEntry::create(); $cached->hydrate($dt, $calendar); return $cached; } public static function create_from_announcement(CalendarAnnouncement $dt, Calendar $calendar) { $cached = CachedCalendarEntry::create(); $cached->hydrate($dt, $calendar); $cached->CalendarID = $dt->CalendarID; $cached->Announcement = 1; return $cached; } public function OtherDates() { if($this->Announcement) { return false; } return CachedCalendarEntry::get() ->filter(array( "EventID" => $this->EventID )) ->exclude(array( "StartDate" => $this->StartDate )) ->limit($this->CachedCalendar()->OtherDatesCount); } public function hydrate(CalendarDateTime $dt, Calendar $calendar) { $this->CachedCalendarID = $calendar->ID; foreach($dt->db() as $field => $type) { $this->$field = $dt->$field; } foreach($dt->has_one() as $field => $type) { $this->{$field."ID"} = $dt->{$field."ID"}; } $this->DateRange = $dt->DateRange(); $this->TimeRange = $dt->TimeRange(); $this->ICSLink = $dt->ICSLink(); $this->Title = $dt->getTitle(); $this->Content = $dt->getContent(); return $this; } } |