X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FPager.php;h=0a1766fe593ad225caa0d6555d202572d8650291;hb=166b8ad44035def2517a5588c670b27ddfb2e13c;hp=185c5506d9df57f2bfa0f6f70713120704d5ba8c;hpb=f1ebaf5e7d6b276c92c2fb436f5258596a6f0975;p=friendica.git diff --git a/src/Content/Pager.php b/src/Content/Pager.php index 185c5506d9..0a1766fe59 100644 --- a/src/Content/Pager.php +++ b/src/Content/Pager.php @@ -3,6 +3,7 @@ namespace Friendica\Content; use Friendica\Core\L10n; +use Friendica\Core\Renderer; /** * The Pager has two very different output, Minimal and Full, see renderMinimal() and renderFull() for more details. @@ -19,10 +20,6 @@ class Pager * @var integer */ private $itemsPerPage = 50; - /** - * @var integer - */ - private $itemCount = 0; /** * @var string @@ -35,14 +32,12 @@ class Pager * Guesses the page number from the GET parameter 'page'. * * @param string $queryString The query string of the current page - * @param integer $itemCount The total item count (for the full mode) or null (for the minimal mode) * @param integer $itemsPerPage An optional number of items per page to override the default value */ - public function __construct($queryString, $itemCount = null, $itemsPerPage = 50) + public function __construct($queryString, $itemsPerPage = 50) { $this->setQueryString($queryString); $this->setItemsPerPage($itemsPerPage); - $this->setItemCount(defaults($itemCount, $this->getItemsPerPage())); $this->setPage(defaults($_GET, 'page', 1)); } @@ -80,7 +75,7 @@ class Pager * Returns the base query string. * * Warning: this isn't the same value as passed to the constructor. - * See setQueryString for the inventory of transformations + * See setQueryString() for the inventory of transformations * * @see setBaseQuery() * @return string @@ -110,16 +105,6 @@ class Pager $this->page = max(1, intval($page)); } - /** - * Sets the item count, 0 minimum. - * - * @param integer $itemCount - */ - public function setItemCount($itemCount) - { - $this->itemCount = max(0, intval($itemCount)); - } - /** * Sets the base query string from a full query string. * @@ -172,7 +157,7 @@ class Pager */ public function renderMinimal($itemCount) { - $this->setItemCount($itemCount); + $displayedItemCount = max(0, intval($itemCount)); $data = [ 'class' => 'pager', @@ -184,12 +169,12 @@ class Pager 'next' => [ 'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)), 'text' => L10n::t('older'), - 'class' => 'next' . ($this->itemCount <= 0 ? ' disabled' : '') + 'class' => 'next' . ($displayedItemCount < $this->getItemsPerPage() ? ' disabled' : '') ] ]; - $tpl = get_markup_template('paginate.tpl'); - return replace_macros($tpl, ['pager' => $data]); + $tpl = Renderer::getMarkupTemplate('paginate.tpl'); + return Renderer::replaceMacros($tpl, ['pager' => $data]); } /** @@ -209,14 +194,17 @@ class Pager * * $html = $pager->renderFull(); * + * @param integer $itemCount The total number of items including those note displayed on the page * @return string HTML string of the pager */ - public function renderFull() + public function renderFull($itemCount) { + $totalItemCount = max(0, intval($itemCount)); + $data = []; $data['class'] = 'pagination'; - if ($this->itemCount > $this->getItemsPerPage()) { + if ($totalItemCount > $this->getItemsPerPage()) { $data['first'] = [ 'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=1'), 'text' => L10n::t('first'), @@ -228,7 +216,7 @@ class Pager 'class' => $this->getPage() == 1 ? 'disabled' : '' ]; - $numpages = $this->itemCount / $this->getItemsPerPage(); + $numpages = $totalItemCount / $this->getItemsPerPage(); $numstart = 1; $numstop = $numpages; @@ -257,7 +245,7 @@ class Pager } } - if (($this->itemCount % $this->getItemsPerPage()) != 0) { + if (($totalItemCount % $this->getItemsPerPage()) != 0) { if ($i == $this->getPage()) { $pages[$i] = [ 'url' => '#', @@ -289,7 +277,7 @@ class Pager ]; } - $tpl = get_markup_template('paginate.tpl'); - return replace_macros($tpl, ['pager' => $data]); + $tpl = Renderer::getMarkupTemplate('paginate.tpl'); + return Renderer::replaceMacros($tpl, ['pager' => $data]); } }