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'); }