1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-08 15:57:01 +02:00

Update PaginatedArray/PageArray::getPaginationString() method to support new options (documented in phpdoc)

This commit is contained in:
Ryan Cramer
2018-07-11 16:05:48 -04:00
parent 756c9298a5
commit 04187ed19f
2 changed files with 66 additions and 31 deletions

View File

@@ -850,6 +850,36 @@ $config->wireInputLazy = false;
/*** 7. DATABASE ********************************************************************************/ /*** 7. DATABASE ********************************************************************************/
/**
* Database name
*
*/
$config->dbName = '';
/**
* Database username
*
*/
$config->dbUser = '';
/**
* Database password
*
*/
$config->dbPass = '';
/**
* Database host
*
*/
$config->dbHost = '';
/**
* Database port
*
*/
$config->dbPort = 3306;
/** /**
* Database character set * Database character set
* *
@@ -904,30 +934,6 @@ $config->dbPath = '';
*/ */
$config->dbLowercaseTables = true; $config->dbLowercaseTables = true;
/**
* Database username
*
*/
$config->dbUser = '';
/**
* Database password
*
*/
$config->dbPass = '';
/**
* Database host
*
*/
$config->dbHost = '';
/**
* Database port
*
*/
$config->dbPort = 3306;
/** /**
* Database init command (PDO::MYSQL_ATTR_INIT_COMMAND) * Database init command (PDO::MYSQL_ATTR_INIT_COMMAND)
* *

View File

@@ -15,6 +15,8 @@
* *
* ProcessWire 3.x, Copyright 2016 by Ryan Cramer * ProcessWire 3.x, Copyright 2016 by Ryan Cramer
* https://processwire.com * https://processwire.com
*
* @method string renderPager(array $options = array()) Renders pagination, when MarkupPageArray module installed
* *
*/ */
@@ -175,28 +177,55 @@ class PaginatedArray extends WireArray implements WirePaginatable {
* *
* This returns a string of `1 to 10 of 30` (items) or `1 of 10` (pages) for example. * This returns a string of `1 to 10 of 30` (items) or `1 of 10` (pages) for example.
* *
* You can optionally replace either of the arguments with an $options array instead.
* See the third example below for all options you can specify. (since 3.0.108)
*
* ~~~~~ * ~~~~~
* // Get string like "Items 1 to 25 of 500" * // Get string like "Items 1 to 25 of 500"
* echo $items->getPaginationString('Items'); * echo $items->getPaginationString('Items');
* *
* // Get string like "Page 1 of 10" * // Get string like "Page 1 of 10"
* echo $items->getPaginationString('Page', true); * echo $items->getPaginationString('Page', true);
*
* // Get string where you specify all options
* echo $items->getPaginationString(array(
* 'label' => 'Items',
* 'usePageNum' => false,
* 'count' => 10,
* 'start' => 0,
* 'limit' => 10,
* 'total' => 100
* ));
* ~~~~~ * ~~~~~
* *
* #pw-group-other * #pw-group-other
* *
* @param string $label Label to identify item type, i.e. "Items" or "Page", etc. (default=empty). * @param string|array $label Label to identify item type, i.e. "Items" or "Page", etc. (default=empty).
* @param bool $usePageNum Specify true to show page numbers rather than item numbers (default=false). * @param bool|array $usePageNum Specify true to show page numbers rather than item numbers (default=false).
* Omit to use the default item numbers.
* @return string Formatted string * @return string Formatted string
* *
*/ */
public function getPaginationString($label = '', $usePageNum = false) { public function getPaginationString($label = '', $usePageNum = false) {
$count = $this->count(); $options = array(
$start = $this->getStart(); 'label' => is_string($label) ? $label : '',
$limit = $this->getLimit(); 'usePageNum' => is_bool($usePageNum) ? $usePageNum : false,
$total = $this->getTotal(); 'count' => -1,
'start' => -1,
'limit' => -1,
'total' => -1
);
if(is_array($label)) $options = array_merge($options, $label);
if(is_array($usePageNum)) $options = array_merge($options, $usePageNum);
$label = $options['label'];
$usePageNum = $options['usePageNum'];
$count = $options['count'] > -1 ? $options['count'] : $this->count();
$start = $options['start'] > -1 ? $options['start'] : $this->getStart();
$limit = $options['limit'] > -1 ? $options['limit'] : $this->getLimit();
$total = $options['total'] > -1 ? $options['total'] : $this->getTotal();
if($usePageNum) { if($usePageNum) {