/** * @param $fullCalendarID int the id of the FullCalendar page to return events for * @param $singleEventID int the fullCalendarID of a single event */ public function generateEventList($fullCalendarID = null, $singleEventID = null) { if (!is_null($fullCalendarID)) { $events = FullCalendarEvent::get()->filter(array('ParentID' => $fullCalendarID)); } else { $events = FullCalendarEvent::get()->filter(array('ID' => $singleEventID))->first(); } file_put_contents($this->filePath, ''); // Events $calendarEvents = array(); foreach ($events as $event) { $params = array('start' => new DateTime($event->StartDate), 'end' => new DateTime($event->EndDate), 'summary' => $event->Title, 'description' => $event->ShortDescription, 'location' => ""); $calendarEvent = new CalendarEvent($params); array_push($calendarEvents, $calendarEvent->generateString()); } // Calendar $calendarParams = array('events' => $calendarEvents, 'title' => 'Calendar', 'author' => 'Calender Generator'); $calendar = new Calendar($calendarParams); file_put_contents($this->filePath, $calendar->generateDownload(), FILE_APPEND); }
/** * Return a list of events but we don't care about past events so exclude anything that ended before today. * Sort the list so that the next upcoming event is at the top, and work down from there. * * @return mixed */ public function getEvent() { $filter = array('ParentID' => $this->Parent()->ID, 'EndDate:GreaterThan' => date("Y-m-d")); return PaginatedList::create(FullCalendarEvent::get()->filter($filter)->sort("EndDate ASC"), $this->request); }
/** * Decides what filter to use based on user settings, returns all events that match * * @return string */ public function getData() { if ($this->LegacyEvents) { $filter = array('ParentID' => $this->ID, 'IncludeOnCalendar' => true); } else { $filter = array('ParentID' => $this->ID, 'IncludeOnCalendar' => true, 'EndDate:GreaterThan' => date("Y-m-d")); } $result = array(); foreach (FullCalendarEvent::get()->filter($filter) as $event) { $result[] = array("view" => $this->CalendarView, "firstDay" => $this->FirstDay, "columnFormat" => $this->ColumnFormat, "title" => $event->Title, "start" => $event->StartDate, "end" => $event->EndDate, "color" => $event->BackgroundColor, "textColor" => $event->TextColor, "startDate" => $this->getDateFormat($event, 'StartDate'), "endDate" => $this->getDateFormat($event, 'EndDate'), "eventUrl" => $event->URLSegment, "content" => $event->Content, "shortContent" => $this->getShortDescription($event)); } return json_encode($result); }
public function updateCMSFields(FieldList $fields) { $events = FullCalendarEvent::get()->filter(array('ParentID' => $this->owner->ID))->sort('StartDate ASC'); $gridField = EventFilter_GridField::create('CalendarEvents', $this->getLumberjackTitle(), $events, $this->owner->getLumberjackGridFieldConfig()); $fields->insertBefore(Tab::create('CalendarEvents', $this->getLumberjackTitle(), $gridField), 'Main'); }