Example #1
0
 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');
 }