In a lot of my controllers, I use pagination along with the HTML <base> tag’s href attribute for relative link URLs.
Example URL: http://www.domain.com/admin/users/index/pagination_offset
HTML Base tag: <base href=”http://www.domain.com/admin/”>
What this means, is I usually have to build pagination’s base_url option based on where I am and what information is being passed in the URI. A lot of times it ends up looking something like…
$this->load->library('pagination', array(
'base_url' => $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/' . $this->uri->segment(4),
'total_rows' => $total_rows,
'per_page' => 20,
'uri_segment' => 4
));
What I decided to do what extend the core CodeIgniter URI class to provide a basic slice method to grab a chunk of the URI by applying PHP’s array_slice function to the segments property of the URI class. Continue reading