Class PaginatorHelper

Pagination Helper class for easy generation of pagination links.

PaginationHelper encloses all methods needed when working with pagination.

AppHelper
Extended by PaginatorHelper
Package: Cake\View\Helper
Link: http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/View/Helper/PaginatorHelper.php

Properties summary

  • $_ajaxHelperClass protected
    string

    The class used for 'Ajax' pagination links. Defaults to JsHelper. You should make sure that JsHelper is defined as a helper before PaginatorHelper, if you want to customize the JsHelper.

  • $helpers public
    array
    Helper dependencies
  • $options public
    array
    Holds the default options for pagination links

Magic properties summary

Method Summary

  • __construct() public
    Constructor for the helper. Sets up the helper that is used for creating 'AJAX' links.
  • _convertUrlKeys() protected
    Converts the keys being used into the format set by options.paramType
  • _hasPage() protected
    Does $model have $page in its range?
  • _pagingLink() protected
    Protected method for generating prev/next links
  • Before render callback. Overridden to merge passed args with URL options.
  • counter() public
    Returns a counter string for the paged result set
  • current() public
    Gets the current page of the recordset for the given model
  • Gets the default model of the paged sets
  • first() public
    Returns a first or set of numbers for the first pages.
  • hasNext() public
    Returns true if the given result set is not at the last page
  • hasPage() public
    Returns true if the given result set has the page number given by $page
  • hasPrev() public
    Returns true if the given result set is not at the first page
  • last() public
    Returns a last or set of numbers for the last pages.
  • link() public
    Generates a plain or Ajax link with pagination parameters
  • meta() public
    Returns the meta-links for a paginated result set.
  • next() public
    Generates a "next" link for a set of paged records
  • numbers() public

    Returns a set of numbers for the paged result set uses a modulus to decide how many numbers to show on each side of the current page (default: 8).

  • options() public
    Sets default options for all pagination links
  • param() public
    Convenience access to any of the paginator params.
  • params() public
    Gets the current paging parameters from the resultset for the given model
  • prev() public
    Generates a "previous" link for a set of paged records
  • sort() public

    Generates a sorting link. Sets named parameters for the sort and direction. Handles direction switching automatically.

  • sortDir() public
    Gets the current direction the recordset is sorted
  • sortKey() public
    Gets the current key by which the recordset is sorted
  • url() public
    Merges passed URL options with current pagination state to generate a pagination URL.

Method Detail

__construct()source public

__construct( View $View , array $settings array() )

Constructor for the helper. Sets up the helper that is used for creating 'AJAX' links.

Use public $helpers = array('Paginator' => array('ajax' => 'CustomHelper')); to set a custom Helper or choose a non JsHelper Helper. If you want to use a specific library with JsHelper declare JsHelper and its adapter before including PaginatorHelper in your helpers array.

The chosen custom helper must implement a link() method.

Parameters

View $View
the view object the helper is attached to.
array $settings optional array()
Array of settings.

Throws

CakeException
When the AjaxProvider helper does not implement a link method.

_convertUrlKeys()source protected

_convertUrlKeys( array $url , string $type )

Converts the keys being used into the format set by options.paramType

Parameters

array $url
Array of URL params to convert
string $type
Keys type.

Returns

array
converted URL params.

_hasPage()source protected

_hasPage( string $model , integer $page )

Does $model have $page in its range?

Parameters

string $model
Model name to get parameters for.
integer $page
Page number you are checking.

Returns

boolean
Whether model has $page
_pagingLink( string $which , string $title null , array $options array() , string $disabledTitle null , array $disabledOptions array() )

Protected method for generating prev/next links

Parameters

string $which
Link type: 'Prev', 'Next'.
string $title optional null
Link title.
array $options optional array()
Options list.
string $disabledTitle optional null
Disabled link title.
array $disabledOptions optional array()
Disabled link options.

Returns

string

beforeRender()source public

beforeRender( string $viewFile )

Before render callback. Overridden to merge passed args with URL options.

Parameters

string $viewFile
View file name.

counter()source public

counter( array $options array() )

Returns a counter string for the paged result set

Options

  • model The model to use, defaults to PaginatorHelper::defaultModel();
  • format The format string you want to use, defaults to 'pages' Which generates output like '1 of 5' set to 'range' to generate output like '1 - 3 of 13'. Can also be set to a custom string, containing the following placeholders {:page}, {:pages}, {:current}, {:count}, {:model}, {:start}, {:end} and any custom content you would like.
  • separator The separator string to use, default to ' of '

The %page% style placeholders also work, but are deprecated and will be removed in a future version.

Parameters

array $options optional array()
Options for the counter string. See #options for list of keys.

Returns

string
Counter string.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::counter

current()source public

current( string $model null )

Gets the current page of the recordset for the given model

Parameters

string $model optional null
Optional model name. Uses the default if none is specified.

Returns

string
The current page number of the recordset.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::current

defaultModel()source public

defaultModel( )

Gets the default model of the paged sets

Returns

string|null
Model name or null if the pagination isn't initialized.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::defaultModel

first()source public

first( string|integer $first '<< first' , array $options array() )

Returns a first or set of numbers for the first pages.

echo $this->Paginator->first('< first');

Creates a single link for the first page. Will output nothing if you are on the first page.

echo $this->Paginator->first(3);

Will create links for the first 3 pages, once you get to the third or greater page. Prior to that nothing will be output.

Options:

  • tag The tag wrapping tag you want to use, defaults to 'span'
  • after Content to insert after the link/tag
  • model The model to use defaults to PaginatorHelper::defaultModel()
  • separator Content between the generated links, defaults to ' | '
  • ellipsis Content for ellipsis, defaults to '...'

Parameters

string|integer $first optional '<< first'

if string use as label for the link. If numeric, the number of page links you want at the beginning of the range.

array $options optional array()
An array of options.

Returns

string
Numbers string.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::first

hasNext()source public

hasNext( string $model null )

Returns true if the given result set is not at the last page

Parameters

string $model optional null
Optional model name. Uses the default if none is specified.

Returns

boolean
True if the result set is not at the last page.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::hasNext

hasPage()source public

hasPage( string $model null , integer $page 1 )

Returns true if the given result set has the page number given by $page

Parameters

string $model optional null
Optional model name. Uses the default if none is specified.
integer $page optional 1
The page number - if not set defaults to 1.

Returns

boolean
True if the given result set has the specified page number.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::hasPage

hasPrev()source public

hasPrev( string $model null )

Returns true if the given result set is not at the first page

Parameters

string $model optional null
Optional model name. Uses the default if none is specified.

Returns

boolean
True if the result set is not at the first page.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::hasPrev

last()source public

last( string|integer $last 'last >>' , array $options array() )

Returns a last or set of numbers for the last pages.

echo $this->Paginator->last('last >');

Creates a single link for the last page. Will output nothing if you are on the last page.

echo $this->Paginator->last(3);

Will create links for the last 3 pages. Once you enter the page range, no output will be created.

Options:

  • tag The tag wrapping tag you want to use, defaults to 'span'
  • before Content to insert before the link/tag
  • model The model to use defaults to PaginatorHelper::defaultModel()
  • separator Content between the generated links, defaults to ' | '
  • ellipsis Content for ellipsis, defaults to '...'

Parameters

string|integer $last optional 'last >>'
if string use as label for the link, if numeric print page numbers
array $options optional array()
Array of options

Returns

string
Numbers string.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::last
link( string $title , string|array $url array() , array $options array() )

Generates a plain or Ajax link with pagination parameters

Options

  • update The Id of the DOM element you wish to update. Creates Ajax enabled links with the AjaxHelper.
  • escape Whether you want the contents html entity encoded, defaults to true
  • model The model to use, defaults to PaginatorHelper::defaultModel()

Parameters

string $title
Title for the link.
string|array $url optional array()
URL for the action. See Router::url()
array $options optional array()
Options for the link. See #options for list of keys.

Returns

string
A link with pagination parameters.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::link

meta()source public

meta( array $options array() )

Returns the meta-links for a paginated result set.

echo $this->Paginator->meta();

Echos the links directly, will output nothing if there is neither a previous nor next page.

$this->Paginator->meta(array('block' => true));

Will append the output of the meta function to the named block - if true is passed the "meta" block is used.

Options:

  • model The model to use defaults to PaginatorHelper::defaultModel()
  • block The block name to append the output to, or false/absent to return as a string

Parameters

array $options optional array()
Array of options.

Returns

string|null
Meta links.

next()source public

next( string $title 'Next >>' , array $options array() , string $disabledTitle null , array $disabledOptions array() )

Generates a "next" link for a set of paged records

Options:

  • url Allows sending routing parameters such as controllers, actions or passed arguments.
  • tag The tag wrapping tag you want to use, defaults to 'span'. Set this to false to disable this option
  • escape Whether you want the contents html entity encoded, defaults to true
  • model The model to use, defaults to PaginatorHelper::defaultModel()
  • disabledTag Tag to use instead of A tag when there is no next page

Parameters

string $title optional 'Next >>'
Title for the link. Defaults to 'Next >>'.
array $options optional array()
Options for pagination link. See above for list of keys.
string $disabledTitle optional null
Title when the link is disabled.
array $disabledOptions optional array()
Options for the disabled pagination link. See above for list of keys.

Returns

string
A "next" link or $disabledTitle text if the link is disabled.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::next

numbers()source public

numbers( array|boolean $options array() )

Returns a set of numbers for the paged result set uses a modulus to decide how many numbers to show on each side of the current page (default: 8).

$this->Paginator->numbers(array('first' => 2, 'last' => 2));

Using the first and last options you can create links to the beginning and end of the page set.

Options

  • before Content to be inserted before the numbers
  • after Content to be inserted after the numbers
  • model Model to create numbers for, defaults to PaginatorHelper::defaultModel()
  • modulus how many numbers to include on either side of the current page, defaults to 8.
  • separator Separator content defaults to ' | '
  • tag The tag to wrap links in, defaults to 'span'
  • first Whether you want first links generated, set to an integer to define the number of 'first' links to generate. If a string is set a link to the first page will be generated with the value as the title.
  • last Whether you want last links generated, set to an integer to define the number of 'last' links to generate. If a string is set a link to the last page will be generated with the value as the title.
  • ellipsis Ellipsis content, defaults to '...'
  • class Class for wrapper tag
  • currentClass Class for wrapper tag on current active page, defaults to 'current'
  • currentTag Tag to use for current page number, defaults to null

Parameters

array|boolean $options optional array()
Options for the numbers, (before, after, model, modulus, separator)

Returns

string
Numbers string.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::numbers

options()source public

options( array|string $options array() )

Sets default options for all pagination links

Parameters

array|string $options optional array()

Default options for pagination links. If a string is supplied - it is used as the DOM id element to update. See PaginatorHelper::$options for list of keys.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::options

param()source public

param( string $key , string $model null )

Convenience access to any of the paginator params.

Parameters

string $key
Key of the paginator params array to retrieve.
string $model optional null
Optional model name. Uses the default if none is specified.

Returns

mixed
Content of the requested param.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::params

params()source public

params( string $model null )

Gets the current paging parameters from the resultset for the given model

Parameters

string $model optional null
Optional model name. Uses the default if none is specified.

Returns

array
The array of paging parameters for the paginated resultset.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::params

prev()source public

prev( string $title '<< Previous' , array $options array() , string $disabledTitle null , array $disabledOptions array() )

Generates a "previous" link for a set of paged records

Options:

  • url Allows sending routing parameters such as controllers, actions or passed arguments.
  • tag The tag wrapping tag you want to use, defaults to 'span'. Set this to false to disable this option
  • escape Whether you want the contents html entity encoded, defaults to true
  • model The model to use, defaults to PaginatorHelper::defaultModel()
  • disabledTag Tag to use instead of A tag when there is no previous page

Parameters

string $title optional '<< Previous'
Title for the link. Defaults to '<< Previous'.
array $options optional array()
Options for pagination link. See #options for list of keys.
string $disabledTitle optional null
Title when the link is disabled.
array $disabledOptions optional array()
Options for the disabled pagination link. See #options for list of keys.

Returns

string
A "previous" link or $disabledTitle text if the link is disabled.

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::prev

sort()source public

sort( string $key , string $title null , array $options array() )

Generates a sorting link. Sets named parameters for the sort and direction. Handles direction switching automatically.

Options:

  • escape Whether you want the contents html entity encoded, defaults to true.
  • model The model to use, defaults to PaginatorHelper::defaultModel().
  • direction The default direction to use when this link isn't active.
  • lock Lock direction. Will only use the default direction then, defaults to false.

Parameters

string $key
The name of the key that the recordset should be sorted.
string $title optional null

Title for the link. If $title is null $key will be used for the title and will be generated by inflection.

array $options optional array()
Options for sorting link. See above for list of keys.

Returns

string

A link sorting default by 'asc'. If the resultset is sorted 'asc' by the specified key the returned link will sort by 'desc'.


Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::sort

sortDir()source public

sortDir( string $model null , array $options array() )

Gets the current direction the recordset is sorted

Parameters

string $model optional null
Optional model name. Uses the default if none is specified.
array $options optional array()
Options for pagination links. See #options for list of keys.

Returns

string

The direction by which the recordset is being sorted, or null if the results are not currently sorted.


Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::sortDir

sortKey()source public

sortKey( string $model null , array $options array() )

Gets the current key by which the recordset is sorted

Parameters

string $model optional null
Optional model name. Uses the default if none is specified.
array $options optional array()
Options for pagination links. See #options for list of keys.

Returns

string|null

The name of the key by which the recordset is being sorted, or null if the results are not currently sorted.


Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::sortKey

url()source public

url( array $options array() , boolean $asArray false , string $model null )

Merges passed URL options with current pagination state to generate a pagination URL.

Parameters

array $options optional array()
Pagination/URL options array
boolean $asArray optional false
Return the URL as an array, or a URI string
string $model optional null
Which model to paginate on

Returns

mixed
By default, returns a full pagination URL string for use in non-standard contexts (i.e. JavaScript)

Link

http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::url

Properties detail

$_ajaxHelperClasssource

protected string

The class used for 'Ajax' pagination links. Defaults to JsHelper. You should make sure that JsHelper is defined as a helper before PaginatorHelper, if you want to customize the JsHelper.

'Js'

$helperssource

public array

Helper dependencies

array('Html')

$optionssource

public array

Holds the default options for pagination links

The values that may be specified are:

  • format Format of the counter. Supported formats are 'range' and 'pages' and custom (default). In the default mode the supplied string is parsed and constants are replaced by their actual values. placeholders: %page%, %pages%, %current%, %count%, %start%, %end% .
  • separator The separator of the actual page and number of pages (default: ' of ').
  • url Url of the action. See Router::url()
  • url['sort'] the key that the recordset is sorted.
  • url['direction'] Direction of the sorting (default: 'asc').
  • url['page'] Page number to use in links.
  • model The name of the model.
  • escape Defines if the title field for the link should be escaped (default: true).
  • update DOM id of the element updated with the results of the AJAX call. If this key isn't specified Paginator will use plain HTML links.
  • paging['paramType'] The type of parameters to use when creating links. Valid options are 'querystring' and 'named'. See PaginatorComponent::$settings for more information.
  • convertKeys - A list of keys in URL arrays that should be converted to querysting params if paramType == 'querystring'.
array(
    'convertKeys' => array('page', 'limit', 'sort', 'direction')
)

Magic properties detail

$Htmlsource

public HtmlHelper

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.9/class-PaginatorHelper.html