Esempio n. 1
0
 /**
  * @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;
 }
Esempio n. 2
0
 /**
  * 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);
 }
Esempio n. 3
0
 /**
  * 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"');
 }