Merge pull request #6426 from MrPetovan/bug/6425-fix-infinite-scroll-url
Fix infinite scroll base URL
This commit is contained in:
commit
cd3ab5ddc9
2 changed files with 26 additions and 24 deletions
|
@ -4,6 +4,7 @@ namespace Friendica\Content;
|
|||
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Util\Strings;
|
||||
|
||||
/**
|
||||
* The Pager has two very different output, Minimal and Full, see renderMinimal() and renderFull() for more details.
|
||||
|
@ -82,7 +83,7 @@ class Pager
|
|||
*/
|
||||
public function getBaseQueryString()
|
||||
{
|
||||
return $this->baseQueryString;
|
||||
return Strings::ensureQueryParameter($this->baseQueryString);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -122,21 +123,6 @@ class Pager
|
|||
$this->baseQueryString = $stripped;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures the provided URI has its query string punctuation in order.
|
||||
*
|
||||
* @param string $uri
|
||||
* @return string
|
||||
*/
|
||||
private function ensureQueryParameter($uri)
|
||||
{
|
||||
if (strpos($uri, '?') === false && ($pos = strpos($uri, '&')) !== false) {
|
||||
$uri = substr($uri, 0, $pos) . '?' . substr($uri, $pos + 1);
|
||||
}
|
||||
|
||||
return $uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Minimal pager (newer/older)
|
||||
*
|
||||
|
@ -162,12 +148,12 @@ class Pager
|
|||
$data = [
|
||||
'class' => 'pager',
|
||||
'prev' => [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() - 1)),
|
||||
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() - 1)),
|
||||
'text' => L10n::t('newer'),
|
||||
'class' => 'previous' . ($this->getPage() == 1 ? ' disabled' : '')
|
||||
],
|
||||
'next' => [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)),
|
||||
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)),
|
||||
'text' => L10n::t('older'),
|
||||
'class' => 'next' . ($displayedItemCount < $this->getItemsPerPage() ? ' disabled' : '')
|
||||
]
|
||||
|
@ -206,12 +192,12 @@ class Pager
|
|||
$data['class'] = 'pagination';
|
||||
if ($totalItemCount > $this->getItemsPerPage()) {
|
||||
$data['first'] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=1'),
|
||||
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=1'),
|
||||
'text' => L10n::t('first'),
|
||||
'class' => $this->getPage() == 1 ? 'disabled' : ''
|
||||
];
|
||||
$data['prev'] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() - 1)),
|
||||
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() - 1)),
|
||||
'text' => L10n::t('prev'),
|
||||
'class' => $this->getPage() == 1 ? 'disabled' : ''
|
||||
];
|
||||
|
@ -238,7 +224,7 @@ class Pager
|
|||
];
|
||||
} else {
|
||||
$pages[$i] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . $i),
|
||||
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . $i),
|
||||
'text' => $i,
|
||||
'class' => 'n'
|
||||
];
|
||||
|
@ -254,7 +240,7 @@ class Pager
|
|||
];
|
||||
} else {
|
||||
$pages[$i] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . $i),
|
||||
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . $i),
|
||||
'text' => $i,
|
||||
'class' => 'n'
|
||||
];
|
||||
|
@ -266,12 +252,12 @@ class Pager
|
|||
$lastpage = (($numpages > intval($numpages)) ? intval($numpages)+1 : $numpages);
|
||||
|
||||
$data['next'] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)),
|
||||
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)),
|
||||
'text' => L10n::t('next'),
|
||||
'class' => $this->getPage() == $lastpage ? 'disabled' : ''
|
||||
];
|
||||
$data['last'] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . $lastpage),
|
||||
'url' => Strings::ensureQueryParameter($this->baseQueryString . '&page=' . $lastpage),
|
||||
'text' => L10n::t('last'),
|
||||
'class' => $this->getPage() == $lastpage ? 'disabled' : ''
|
||||
];
|
||||
|
|
|
@ -312,4 +312,20 @@ class Strings
|
|||
{
|
||||
return (strcasecmp(self::normaliseLink($a), self::normaliseLink($b)) === 0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ensures the provided URI has its query string punctuation in order.
|
||||
*
|
||||
* @param string $uri
|
||||
* @return string
|
||||
*/
|
||||
public static function ensureQueryParameter($uri)
|
||||
{
|
||||
if (strpos($uri, '?') === false && ($pos = strpos($uri, '&')) !== false) {
|
||||
$uri = substr($uri, 0, $pos) . '?' . substr($uri, $pos + 1);
|
||||
}
|
||||
|
||||
return $uri;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue