<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\Util\Strings;
/**
- * This pager should be used by lists using the since_id†/max_id† parameters
+ * This pager should be used by lists using the min_id†/max_id† parameters
*
* This pager automatically identifies if the sorting is done increasingly or decreasingly if the first item id†
* and last item id† are different. Otherwise it defaults to decreasingly like reverse chronological lists.
* @param string $last_item_id The id† of the last item in the displayed item list
* @param integer $itemsPerPage An optional number of items per page to override the default value
*/
- public function __construct(L10n $l10n, $queryString, $first_item_id = null, $last_item_id = null, $itemsPerPage = 50)
+ public function __construct(L10n $l10n, string $queryString, string $first_item_id = null, string $last_item_id = null, int $itemsPerPage = 50)
{
parent::__construct($l10n, $queryString, $itemsPerPage);
$this->last_item_id = $last_item_id;
$parsed = parse_url($this->getBaseQueryString());
- if ($parsed) {
+ if (!empty($parsed['query'])) {
parse_str($parsed['query'], $queryParameters);
- $this->first_page = !($queryParameters['since_id'] ?? null) && !($queryParameters['max_id'] ?? null);
+ $this->first_page = !($queryParameters['min_id'] ?? null) && !($queryParameters['max_id'] ?? null);
- unset($queryParameters['since_id']);
+ unset($queryParameters['min_id']);
unset($queryParameters['max_id']);
$parsed['query'] = http_build_query($queryParameters);
}
}
- public function getStart()
+ public function getStart(): int
{
throw new \BadMethodCallException();
}
- public function getPage()
+ public function getPage(): int
{
throw new \BadMethodCallException();
}
* $params = ['order' => ['sort_field' => true], 'limit' => $itemsPerPage];
* $items = DBA::toArray(DBA::select($table, $fields, $condition, $params));
*
- * $pager = new BoundariesPager($a->query_string, $items[0]['sort_field'], $items[coutn($items) - 1]['sort_field'], $itemsPerPage);
+ * $pager = new BoundariesPager($a->query_string, $items[0]['sort_field'], $items[count($items) - 1]['sort_field'], $itemsPerPage);
*
* $html = $pager->renderMinimal(count($items));
*
* @return string HTML string of the pager
* @throws \Exception
*/
- public function renderMinimal(int $itemCount)
+ public function renderMinimal(int $itemCount): string
{
$displayedItemCount = max(0, intval($itemCount));
'prev' => [
'url' => Strings::ensureQueryParameter($this->baseQueryString .
($this->first_item_id >= $this->last_item_id ?
- '&since_id=' . $this->first_item_id : '&max_id=' . $this->first_item_id)
+ '&min_id=' . $this->first_item_id : '&max_id=' . $this->first_item_id)
),
'text' => $this->l10n->t('newer'),
'class' => 'previous' . ($this->first_page ? ' disabled' : '')
'next' => [
'url' => Strings::ensureQueryParameter($this->baseQueryString .
($this->first_item_id >= $this->last_item_id ?
- '&max_id=' . $this->last_item_id : '&since_id=' . $this->last_item_id)
+ '&max_id=' . $this->last_item_id : '&min_id=' . $this->last_item_id)
),
'text' => $this->l10n->t('older'),
'class' => 'next' . ($displayedItemCount < $this->getItemsPerPage() ? ' disabled' : '')
return Renderer::replaceMacros($tpl, ['pager' => $data]);
}
- public function renderFull($itemCount)
+ /**
+ * Unsupported method, must be type-compatible
+ */
+ public function renderFull(int $itemCount): string
{
throw new \BadMethodCallException();
}