From 2f066df5813171bd5cdd04d5cc768c867dbf30de Mon Sep 17 00:00:00 2001 From: DariusIII Date: Fri, 6 Apr 2018 22:46:02 +0200 Subject: [PATCH] Fix pager on browse pages --- Blacklight/Releases.php | 18 ++++++++---------- Changelog | 2 ++ app/Http/Controllers/BrowseController.php | 11 +++++++---- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/Blacklight/Releases.php b/Blacklight/Releases.php index d8a6f1d28..8cb5f1cea 100755 --- a/Blacklight/Releases.php +++ b/Blacklight/Releases.php @@ -106,17 +106,15 @@ class Releases /** * @param array $cat - * @param $orderBy - * @param int $maxAge + * @param $orderBy + * @param int $maxAge * @param array $excludedCats - * @param int $groupName - * @param int $minSize - * + * @param int $groupName + * @param int $minSize + * @param int $page * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - * @throws \Exception - * @throws \InvalidArgumentException */ - public function getBrowseRange(array $cat, $orderBy, $maxAge = -1, array $excludedCats = [], $groupName = -1, $minSize = 0): LengthAwarePaginator + public function getBrowseRange($page, array $cat, $orderBy, $maxAge = -1, array $excludedCats = [], $groupName = -1, $minSize = 0): LengthAwarePaginator { $orderBy = $this->getBrowseOrder($orderBy); $qry = Release::query() @@ -155,13 +153,13 @@ class Releases ->leftJoin('dnzb_failures as df', 'df.release_id', '=', 'r.id') ->groupBy('r.id') ->orderBy($orderBy[0], $orderBy[1]); - $releases = Cache::get(md5(implode('.', $cat).implode('.', $orderBy).$maxAge.implode('.', $excludedCats).$minSize.$groupName)); + $releases = Cache::get(md5(implode('.', $cat).implode('.', $orderBy).$maxAge.implode('.', $excludedCats).$minSize.$groupName.$page)); if ($releases !== null) { return $releases; } $sql = $qry->paginate(config('nntmux.items_per_page')); $expiresAt = Carbon::now()->addSeconds(config('nntmux.cache_expiry_medium')); - Cache::put(md5(implode('.', $cat).implode('.', $orderBy).$maxAge.implode('.', $excludedCats).$minSize.$groupName), $sql, $expiresAt); + Cache::put(md5(implode('.', $cat).implode('.', $orderBy).$maxAge.implode('.', $excludedCats).$minSize.$groupName.$page), $sql, $expiresAt); return $sql; } diff --git a/Changelog b/Changelog index cf62f0115..c9f35515c 100755 --- a/Changelog +++ b/Changelog @@ -1,3 +1,5 @@ +2018-04-06 DariusIII + * Fix: Fix pager on browse pages 2018-04-05 DariusIII * Chg: Update themes for new group browse route * Chg: Add BrowseGroupController diff --git a/app/Http/Controllers/BrowseController.php b/app/Http/Controllers/BrowseController.php index 2ce25a75f..98024984d 100644 --- a/app/Http/Controllers/BrowseController.php +++ b/app/Http/Controllers/BrowseController.php @@ -24,8 +24,9 @@ class BrowseController extends BasePageController $this->smarty->assign('category', -1); $orderby = ''; + $page = \request()->has('page') ? \request()->input('page') : 1; - $results = $releases->getBrowseRange([-1], $orderby, -1, $this->userdata['categoryexclusions'], -1); + $results = $releases->getBrowseRange($page, [-1], $orderby, -1, $this->userdata['categoryexclusions'], -1); $this->smarty->assign('catname', 'All'); @@ -51,7 +52,7 @@ class BrowseController extends BasePageController /** * @param string $parentCategory - * @param $id + * @param string $id * @throws \Exception */ public function show(string $parentCategory, string $id = 'all') @@ -77,8 +78,9 @@ class BrowseController extends BasePageController $this->smarty->assign('category', $category); $orderby = ''; + $page = \request()->has('page') ? \request()->input('page') : 1; - $results = $releases->getBrowseRange($catarray, $orderby, -1, $this->userdata['categoryexclusions'], $grp); + $results = $releases->getBrowseRange($page, $catarray, $orderby, -1, $this->userdata['categoryexclusions'], $grp); $this->smarty->assign('catname', $id); @@ -111,8 +113,9 @@ class BrowseController extends BasePageController $this->setPrefs(); $releases = new Releases(); if ($request->has('g')) { + $page = $request->has('page') ? $request->input('page') : 1; $group = $request->input('g'); - $results = $releases->getBrowseRange([-1], '', -1, $this->userdata['categoryexclusions'], $group); + $results = $releases->getBrowseRange($page, [-1], '', -1, $this->userdata['categoryexclusions'], $group); $this->smarty->assign('results', $results); $meta_title = 'Browse Groups'; $meta_keywords = 'browse,nzb,description,details';