public function action_index() { $msg = $this->request->param('msg'); if ($this->request->param('sort')) { $sort = $this->request->param('sort'); } else { $sort = 'room_name'; } if ($this->request->param('order')) { $order = $this->request->param('order'); } else { $order = 'DESC'; } $filters = array('filter_room_name' => $this->request->param('filter_room_name'), 'filter_number' => $this->request->param('filter_number'), 'filter_location' => $this->request->param('filter_location')); $total = Model_Room::rooms_total($filters); $count = $total; $pagination = Pagination::factory(array('total_items' => $count, 'items_per_page' => 5)); $filters = array_merge($filters, array('sort' => $sort, 'order' => $order, 'limit' => $pagination->items_per_page, 'offset' => $pagination->offset)); $rooms = Model_Room::rooms($filters); $sorting = new Sort(array('Name' => 'room_name', 'Number' => 'room_number', 'Location' => 'name', 'Action' => '')); $url = 'room/index'; if ($this->request->param('filter_room_name')) { $url .= '/filter_room_name/' . $this->request->param('filter_room_name'); $filter = $this->request->param('filter_room_name'); $filter_select = 'filter_room_name'; } if ($this->request->param('filter_number')) { $url .= '/filter_number/' . $this->request->param('filter_number'); $filter = $this->request->param('filter_number'); $filter_select = 'filter_number'; } if ($this->request->param('filter_location')) { $url .= '/filter_location/' . $this->request->param('filter_location'); $filter = $this->request->param('filter_location'); $filter_select = 'filter_location'; } $sorting->set_link($url); $sorting->set_order($order); $sorting->set_sort($sort); $heading = $sorting->render(); $links = array('add_room' => Html::anchor('/room/add/', 'Create a Room', array('class' => 'createButton l')), 'locations' => Html::anchor('/location', 'Locations', array('class' => 'pageAction l')), 'delete' => URL::site('/room/delete/')); $table = array('heading' => $heading, 'data' => $rooms); // Render the pagination links $pagination = $pagination->render(); $filter_room_name = $this->request->param('filter_room_name'); $filter_url = URL::site('room/index'); $view = View::factory('room/list')->bind('links', $links)->bind('table', $table)->bind('count', $count)->bind('pagination', $pagination)->bind('filter', $filter)->bind('filter_select', $filter_select)->bind('filter_url', $filter_url)->bind('msg', $msg); Breadcrumbs::add(array('System', Url::site('system'))); Breadcrumbs::add(array('Room', Url::site('room'))); $this->content = $view; }