From 3b489d6312a4f2734e4ab3129e64d3ab007f3716 Mon Sep 17 00:00:00 2001 From: emkael Date: Wed, 16 Mar 2016 00:00:23 +0100 Subject: * upcoming events on profile page --- app/php/components/UpcomingEvents.php | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 app/php/components/UpcomingEvents.php (limited to 'app/php/components/UpcomingEvents.php') diff --git a/app/php/components/UpcomingEvents.php b/app/php/components/UpcomingEvents.php new file mode 100644 index 0000000..e18f2f4 --- /dev/null +++ b/app/php/components/UpcomingEvents.php @@ -0,0 +1,52 @@ +getControlState('user'); + } + + public function setUserToDisplay($user) { + $this->setControlState('user', $user); + } + + public function onPreRender($param) { + parent::onPreRender($param); + $this->Events->setDataSource( + $this->_getEventsForUser($this->UserToDisplay) + ); + $this->Events->dataBind(); + } + + private function _getEventsForUser(DbUser $user) { + $events = EventFacade::getInstance()->getEventList( + date('Y-m-d'), + date('Y-m-d', strtotime('+7 days')), + $user->getCalendarPreference() + ); + $calendars = Calendar::finder()->findAllByPks( + array_unique( + array_map( + function($event) { + return $event->CalendarID; + }, + $events + ) + ) + ); + return array_map( + function($event) use($calendars) { + $dto = new EventDTO(); + $dto->loadRecord($event, $calendars); + return $dto; + }, + $events + ); + } + +} + +?> -- cgit v1.2.3