public function monthView() { $month = $this->filterInt('month'); if (strlen($month) != 6) { $month = 0; } if ($month == 0) { $time = time(); } else { $y = substr($month, 0, 4); $m = substr($month, 4, 2); $time = mktime(0, 0, 0, $m, 1, $y); } $date = new DateTime(array($time)); $c = new Calendar(); $date->resetToFirst(); $days = $date->getLastDay(); $start_days = $date->getDayOfWeek() - 1; // days needed to pad beginning $date_prev_month = clone $date; $date_prev_month->adjustMonth(-1); $date_prev_month->resetToLast(); $date_prev_month->adjustDay(($start_days - 1) * -1); $date_next_month = clone $date; $date_next_month->adjustMonth(1); $e = Model::load('Event'); $events = $e->getEvents(false, $date_prev_month, $date_next_month); $month = $c->newBuildByMonth($date_prev_month->getDay(), $date_prev_month->getMonth(), $date_prev_month->getYear(), $date_prev_month->getLastDay(), $date->getLastDay(), $events); $this->assign('month', $date->getMonthText()); $this->assign('year', $date->getYear()); $this->assign('current_month', vsprintf("%02d", $date->getMonth())); $this->assign('cal_month', $month); if ($date->getMonth() == 12) { $next_month_link = $date->getYear() . '01'; } else { $next_month_link = $date->getYear() . vsprintf("%02d", $date->getMonth() + 1); } if ($date->getMonth() == 1) { $prev_month_link = $date->getYear() . '12'; } else { $prev_month_link = $date->getYear() . vsprintf("%02d", $date->getMonth() - 1); } $this->assign('prev_month_link', $prev_month_link); $this->assign('next_month_link', $next_month_link); $prev_year_link = $date->getYear() - 1 . vsprintf("%02d", $date->getMonth()); $next_year_link = $date->getYear() + 1 . vsprintf("%02d", $date->getMonth()); $this->assign('prev_year_link', $prev_year_link); $this->assign('next_year_link', $next_year_link); $this->setTemplate('elib://admin/events_month.tpl'); }