Class PaginatorHelper
Pagination Helper class for easy generation of pagination links.
PaginationHelper encloses all methods needed when working with pagination.
- AppHelper
- PaginatorHelper
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
protectedstring
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
publicarray
Helper dependencies -
$options
publicarray
Holds the default options for pagination links
Magic properties summary
-
$Html
public
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 -
beforeRender() public
Before render callback. Overridden to merge passed args with url options. -
counter() public deprecated
Returns a counter string for the paged result set -
current() public
Gets the current page of the recordset for the given model -
defaultModel() public
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 -
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 -
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() 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
_convertUrlKeys() 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
Returns
converted url params.
_hasPage() 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
Whether model has $page
_pagingLink() protected ¶
_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
- string $title optional null
- array $options optional array()
- string $disabledTitle optional null
- array $disabledOptions optional array()
Returns
beforeRender() public ¶
beforeRender( string $viewFile )
Before render callback. Overridden to merge passed args with url options.
Parameters
- string $viewFile
counter() public deprecated ¶
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.
Deprecated
Parameters
- array $options optional array()
- Options for the counter string. See #options for list of keys.
Returns
Counter string.
Link
current() 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
The current page number of the recordset.
Link
defaultModel() public ¶
defaultModel( )
Gets the default model of the paged sets
Returns
Model name or null if the pagination isn't initialized.
Link
first() 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/tagmodel
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
numbers string.
Link
hasNext() 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
True if the result set is not at the last page.
Link
hasPage() 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
True if the given result set has the specified page number.
Link
hasPrev() 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
True if the result set is not at the first page.
Link
last() 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/tagmodel
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
numbers string.
Link
link() public ¶
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 truemodel
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
A link with pagination parameters.
Link
next() 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:
tag
The tag wrapping tag you want to use, defaults to 'span'. Set this to false to disable this optionescape
Whether you want the contents html entity encoded, defaults to truemodel
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
A "next" link or $disabledTitle text if the link is disabled.
Link
numbers() public ¶
numbers( array $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 numbersafter
Content to be inserted after the numbersmodel
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.last
Whether you want last links generated, set to an integer to define the number of 'last' links to generate.ellipsis
Ellipsis content, defaults to '...'class
Class for wrapper tagcurrentClass
Class for wrapper tag on current active page, defaults to 'current'currentTag
Tag to use for current page number, defaults to null
Parameters
- array $options optional array()
- Options for the numbers, (before, after, model, modulus, separator)
Returns
numbers string.
Link
options() 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
params() 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
The array of paging parameters for the paginated resultset.
Link
prev() 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:
tag
The tag wrapping tag you want to use, defaults to 'span'. Set this to false to disable this optionescape
Whether you want the contents html entity encoded, defaults to truemodel
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
A "previous" link or $disabledTitle text if the link is disabled.
Link
sort() 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 truemodel
The model to use, defaults to PaginatorHelper::defaultModel()direction
The default direction to use when this link isn't active.
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
A link sorting default by 'asc'. If the resultset is sorted 'asc' by the specified key the returned link will sort by 'desc'.
Link
sortDir() 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
The direction by which the recordset is being sorted, or null if the results are not currently sorted.
Link
sortKey() 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
The name of the key by which the recordset is being sorted, or null if the results are not currently sorted.
Link
url() 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
By default, returns a full pagination URL string for use in non-standard contexts (i.e. JavaScript)
Link
Properties detail
$_ajaxHelperClass ¶
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'
$options ¶
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') )