public function action_calendar() { $view = View::factory('calendar/calendar')->bind('calendar', $calendar_markup); $month = Arr::get($_GET, 'month', date('m')); $year = Arr::get($_GET, 'year', date('Y')); $event_type = Arr::get($_GET, 'event_type'); $calendar = new Calendar($month, $year); $calendar->standard('prev-next'); $event = Model_Event::monthly_events($month, $year, $event_type); $day_events = array(); // loop though events and group events by day and event types foreach ($event as $e) { $day = date('j-m', $e->eventstart); if (!isset($day_events[$day][$e->eventtype])) { $day_events[$day][$e->eventtype] = array(); } $day_events[$day][$e->eventtype][] = array('id' => $e->id); } if ($day_events) { foreach ($day_events as $daymonth => $types) { list($day, $month) = explode("-", $daymonth); $timestamp = mktime(0, 0, 0, $month, (int) $day, $year); foreach ($types as $type => $events) { $count = count($events); $type = $count > 1 ? Inflector::plural($type) : $type; $calendar->attach($calendar->event()->condition('timestamp', (int) $timestamp)->output($count . ' ' . $type)); } } } $calendar->attach($calendar->event()->condition('timestamp', time())->add_class('today')); $calendar_markup = $calendar->render(); $this->content = $view; }