Example #1
0
 public function add_event()
 {
     if (isset($_POST['submit'])) {
         $time = array('day' => $_POST['start_day'], 'month' => $_POST['start_month'] + 1, 'year' => $_POST['start_year'], 'hour' => $_POST['start_hour'], 'minute' => $_POST['start_minute'], 'second' => 0);
         $start = new DateTime($time);
         $time = array('day' => $_POST['end_day'], 'month' => $_POST['end_month'] + 1, 'year' => $_POST['end_year'], 'hour' => $_POST['end_hour'], 'minute' => $_POST['end_minute'], 'second' => 0);
         $end = new DateTime($time);
         $e = Model::load('Event');
         if (!$start->getValid()) {
             $e->addValError('invalid start date', 'start_time');
         }
         if (!$end->getValid()) {
             $e->addValError('invalid end date', 'end_time');
         }
         $e->user_id = CurrentUser::getUserID();
         $e->start_time = $start->getMySQLTime();
         $e->end_time = $end->getMySQLTime();
         if ($end->getTime() <= $start->getTime()) {
             $e->addValError('invalid end date/time', 'end_time');
         }
         $e->event_name = $_POST['event_name'];
         $e->short_desc = $_POST['short_desc'];
         $e->long_desc = $_POST['long_desc'];
         $e->tickets_link = $_POST['tickets_link'];
         $e->event_link = $_POST['event_link'];
         $e->status = 'DEFAULT';
         $e->validates();
         if ($e->hasValErrors()) {
             $e->start_day = $_POST['start_day'];
             $e->start_month = $_POST['start_month'];
             $e->start_year = $_POST['start_year'];
             $e->start_hour = $_POST['start_hour'];
             $e->start_minute = $_POST['start_minute'];
             $e->end_day = $_POST['end_day'];
             $e->end_month = $_POST['end_month'];
             $e->end_year = $_POST['end_year'];
             $e->end_hour = $_POST['end_hour'];
             $e->end_minute = $_POST['end_minute'];
             $this->assign('event', $e);
             $this->assign('errors', $e->getValErrors());
         } else {
             $e->insert(Model::getTable('Event'), 1, array(), 1);
             $this->redirect('admin/events');
         }
     } elseif (isset($_POST['cancel'])) {
         $this->redirect('admin/events');
     } else {
         $e = Model::load('Event');
         // default (mostly empty) event
         $date = $this->filterInt('date');
         if (strlen($date) != 8) {
             $date = 0;
         }
         if ($date != 0) {
             $y = substr($date, 0, 4);
             $m = substr($date, 4, 2);
             $d = substr($date, 6, 2);
             $time = mktime(0, 0, 0, $m, $d, $y);
             $e->start_day = $d;
             $e->start_month = $m - 1;
             $e->start_year = $y;
             $e->start_hour = 20;
             $e->start_minute = 0;
             $e->end_day = $d;
             $e->end_month = $m - 1;
             $e->end_year = $y;
             $e->end_hour = 20;
             $e->end_minute = 0;
             $this->assign('event', $e);
         }
     }
     $this->assignEventDefs();
     $this->setTemplate('elib://admin/add_event.tpl');
 }