public function mdi_get_paged($page = 1, $page_size = 50, $paginator_size = 10, $page_num_by_rows = FALSE, $info_object = 'paged', $iterated = FALSE) { parent::get_paged($page, $page_size, $page_num_by_rows, $info_object, $iterated); $paginator = array(); $paginator_current_index = ($page - 1) % $paginator_size; $paginator_begin = $page - $paginator_current_index; $total_pages = $this->{$info_object}->total_pages; for ($i = 0; $i < $paginator_size; ++$i) { if ($paginator_begin + $i > $total_pages) { break; } $attribute = array(); if ($i == 0) { $attribute['begin'] = TRUE; } if ($i == $paginator_size - 1) { $attribute['end'] = TRUE; } if ($paginator_begin + $i == 1) { $attribute['first'] = TRUE; } if ($paginator_begin + $i == $total_pages) { $attribute['last'] = TRUE; } if ($i == $paginator_current_index) { $attribute['current'] = TRUE; } $paginator[$paginator_begin + $i] = $attribute; } $this->{$info_object}->paginator = $paginator; return $this; }