/** * @param string $type * @param string $name * @param string $imageUrl * * @return \LolEspCal\Calendar */ function create($type = 'all', $name = null, $imageUrl = null) { $iCalendar = new iCalendar('www.lolesports.com|' . $this->calendarName($this->getFullName($type, $name))); $iCalendar->setName($this->getReadableName($type, $name)); $calendar = new Calendar(); $calendar->setICalendar($iCalendar)->setType($type)->setName($name)->setFilename(str_replace(' ', '-', $this->calendarFilename($this->getFullName($type, $name))))->setImageUrl($imageUrl); return $calendar; }
/** * Get project iCalendar * * @access public */ public function project() { $token = $this->request->getStringParam('token'); $project = $this->project->getByToken($token); // Token verification if (empty($project)) { $this->forbidden(true); } // Common filter $filter = $this->taskFilter->create()->filterByProject($project['id']); // Calendar properties $calendar = new iCalendar('Kanboard'); $calendar->setName($project['name']); $calendar->setDescription($project['name']); $calendar->setPublishedTTL('PT1H'); $this->renderCalendar($filter, $calendar); }
/** * Get project iCalendar * * @access public */ public function project() { $token = $this->request->getStringParam('token'); $project = $this->project->getByToken($token); // Token verification if (empty($project)) { throw AccessForbiddenException::getInstance()->withoutLayout(); } // Common filter $queryBuilder = new QueryBuilder(); $queryBuilder->withQuery($this->taskFinder->getICalQuery())->withFilter(new TaskStatusFilter(TaskModel::STATUS_OPEN))->withFilter(new TaskProjectFilter($project['id'])); // Calendar properties $calendar = new iCalendar('Kanboard'); $calendar->setName($project['name']); $calendar->setDescription($project['name']); $calendar->setPublishedTTL('PT1H'); $this->renderCalendar($queryBuilder, $calendar); }
/** * Export the events diary to iCal. * @return Response */ public function export() { // Create the calendar $calendar = new Calendar('www.bts-crew.com'); $calendar->setName('Backstage Diary'); // Get all the events and add each time $events = Event::where('type', Event::TYPE_EVENT)->get(); foreach ($events as $event) { foreach ($event->times as $time) { $cal_event = new \Eluceo\iCal\Component\Event(); $cal_event->setDtStart($time->start)->setDtEnd($time->end)->setSummary($time->event->name . ' - ' . $time->name)->setLocation($time->event->venue); $calendar->addComponent($cal_event); } } // Respond return (new HttpResponse($calendar->render(), 200))->header('Content-Type', 'text/calendar; charset=utf-8')->header('Content-Disposition', 'attachment; filename="bts_diary.ics"'); }