ExpressionEngine Docs

# CP/Pagination Service

- Simple Example
- CP/Pagination Service Methods

## Simple Example

Adding pagination to the control panel is a common task and we created a pagination service to assist. This service follows our style-guide handling all the mathematical calculations. All you need is the number of items you are going to paginate and a URL object:

    $base_url = ee('CP/URL', 'publish/edit');
    $pagination = ee('CP/Pagination', $total_count)
      ->render($base_url);

## CP/Pagination Service Methods

class `EllisLab\ExpressionEngine\Library\CP\Pagination`

- `perPage($per_page)`
- `currentPage($current_page)`
- `queryStringVariable($page_variable)`
- `displayPageLinks($pages_to_display)`
- `render($base_url)`

### `perPage($per_page)`

Sets the number of items per page

Parameter | Type | Description
--- | --- | ---
$per_page | `Int` | The number of items per page
Returns | `Pagination` | $this

### `currentPage($current_page)`

Sets page number being displayed

Parameter | Type | Description
--- | --- | ---
$current_page | `Int` | The current page (defaults to 1)
Returns | `Pagination` | $this

### `queryStringVariable($page_variable)`

Sets the query string variable name

Parameter | Type | Description
--- | --- | ---
$page_variable | `String` | The name of the page variable in the query string (defaults to ‘page’)
Returns | `Pagination` | $this

### `displayPageLinks($pages_to_display)`

Sets the number of numbered pages to calculate

Parameter | Type | Description
--- | --- | ---
$pages | `Int` | The number of numbered pages to calculate (defaults to 3)
Returns | `Pagination` | $this

### `render($base_url)`

Renders the pagination to HTML

Parameter | Type | Description
--- | --- | ---
$base_url | `Url` | A CPURL object
Returns | `String` | The rendered HTML of the pagination