public function events($params) { $this->setView('events.php'); $is_logged = isset(User_Model::$auth_data); $is_student = $is_logged && isset(User_Model::$auth_data['student_number']); $is_admin = $is_logged && User_Model::$auth_data['admin'] == '1'; // Group if (isset($params['group'])) { try { $group_model = new Group_Model(); $group = $group_model->getInfoByName($params['group']); $this->set('group', $group); } catch (Exception $e) { throw new ActionException('Page', 'error404'); } } $year = (int) $params['year']; $month = (int) $params['month']; $day = isset($params['day']) ? (int) $params['day'] : null; $event_model = new Event_Model(); $events = $event_model->getByMonth($year, $month, array('group_id' => isset($group) ? $group['id'] : null, 'official' => $is_logged ? null : true, 'show_private' => $is_student)); $post_ids = array(); if (isset($day)) { $day_time = mktime(0, 0, 0, $month, $day, $year); for ($j = 0; $j < count($events); $j++) { $event =& $events[$j]; if ($event['date_start'] >= $day_time && $event['date_start'] <= $day_time + 86400 - 1 || $event['date_end'] >= $day_time && $event['date_end'] <= $day_time + 86400 - 1 && !(date('H', $event['date_end']) < 12 && date('Y-m-d', $event['date_end']) != date('Y-m-d', $event['date_start']))) { $post_ids[] = (int) $event['post_id']; } } } else { foreach ($events as &$event) { $post_ids[] = (int) $event['post_id']; } } $this->setTitle((isset($group) ? $group['name'] . ' - ' : '') . (isset($day_time) ? Date::dateMonth($day_time) : Date::getMonthByNum($month) . ' ' . $year)); $this->set(array('is_logged' => $is_logged, 'is_student' => $is_student, 'is_admin' => $is_admin, 'groups_auth' => $is_logged ? Group_Model::getAuth() : array(), 'posts' => count($post_ids) == 0 ? array() : $this->model->getPosts(array('restricted' => true, 'show_private' => $is_student, 'ids' => $post_ids), 1000, 0), 'events' => $events, 'calendar_month' => $month, 'calendar_year' => $year, 'day_time' => isset($day_time) ? $day_time : null)); if ($is_logged) { $this->set(array('username' => User_Model::$auth_data['username'])); } if ($is_student) { $this->set(array('firstname' => User_Model::$auth_data['firstname'], 'lastname' => User_Model::$auth_data['lastname'], 'avatar_url' => User_Model::$auth_data['avatar_url'])); } }