public function action_index() { $sort = $this->request->param('sort', 'name'); $order = $this->request->param('order', 'ASC'); Session::instance()->delete('course_id'); $criteria = array('user' => Acl::instance()->relevant_user(), 'filters' => array('name' => $this->request->param('filter_name'), 'access_code' => $this->request->param('filter_access_code'), 'start_date' => $this->request->param('filter_start_date'), 'end_date' => $this->request->param('filter_end_date'))); $total = Model_Course::courses_total($criteria); $pagination = Pagination::factory(array('total_items' => $total, 'items_per_page' => 5)); $criteria = array_merge($criteria, array('sort' => $sort, 'order' => $order, 'limit' => $pagination->items_per_page, 'offset' => $pagination->offset)); $courses = Model_Course::courses($criteria); $sorting = new Sort(array('Course' => 'name', 'Access Code' => 'access_code', 'Start Date' => 'start_date', 'End Date' => 'end_date', 'Actions' => '')); $url = 'course/index'; if ($this->request->param('filter_name')) { $url .= '/filter_name/' . $this->request->param('filter_name'); $filter = $this->request->param('filter_name'); $filter_select = 'filter_name'; } if ($this->request->param('filter_access_code')) { $url .= '/filter_access_code/' . $this->request->param('filter_access_code'); $filter = $this->request->param('filter_access_code'); $filter_select = 'filter_access_code'; } if ($this->request->param('filter_start_date')) { $url .= '/filter_start_date/' . $this->request->param('filter_start_date'); $filter = $this->request->param('filter_start_date'); $filter_select = 'filter_start_date'; } if ($this->request->param('filter_end_date')) { $url .= '/filter_end_date/' . $this->request->param('filter_end_date'); $filter = $this->request->param('filter_end_date'); $filter_select = 'filter_end_date'; } $sorting->set_link($url); $sorting->set_order($order); $sorting->set_sort($sort); $heading = $sorting->render(); // Render the pagination links $pagination = $pagination->render(); $links = array('add' => Html::anchor('/course/add/', 'Create a course', array('class' => 'createButton l')), 'delete' => URL::site('/course/delete/'), 'join' => Html::anchor('/course/join/', 'Join Course', array('class' => 'pageAction c'))); $table = array('heading' => $heading, 'data' => $courses); $filter_name = $this->request->param('filter_name'); $filter_access_code = $this->request->param('filter_access_code'); $filter_start_date = $this->request->param('filter_start_date'); $filter_end_date = $this->request->param('filter_end_date'); $filter_url = URL::site('course/index'); $success = Session::instance()->get('success'); Session::instance()->delete('success'); $view = View::factory('course/list')->bind('table', $table)->bind('count', $total)->bind('links', $links)->bind('pagination', $pagination)->bind('filter', $filter)->bind('filter_select', $filter_select)->bind('filter_url', $filter_url)->bind('success', $success); Breadcrumbs::add(array('Courses', Url::site('course'))); $this->content = $view; }