From ff7ee299d1db5bd7a48830f3bb904a882db86036 Mon Sep 17 00:00:00 2001 From: Steve Winter Date: Fri, 14 Feb 2025 11:26:23 +1300 Subject: [PATCH 1/4] Provide the SlidingPagination object to the templates to allow it to be used to access the page_name --- src/Helper/Processor.php | 1 + src/Twig/Extension/PaginationRuntime.php | 9 +++++---- templates/Pagination/bulma_pagination.html.twig | 16 ++++++++-------- .../foundation_v5_pagination.html.twig | 14 +++++++------- .../foundation_v6_pagination.html.twig | 14 +++++++------- .../Pagination/materialize_pagination.html.twig | 10 +++++----- templates/Pagination/rel_links.html.twig | 4 ++-- .../Pagination/semantic_ui_pagination.html.twig | 10 +++++----- templates/Pagination/sliding.html.twig | 10 +++++----- .../Pagination/tailwindcss_pagination.html.twig | 10 +++++----- .../twitter_bootstrap_v4_pagination.html.twig | 14 +++++++------- .../Pagination/uikit_v3_pagination.html.twig | 14 +++++++------- 12 files changed, 64 insertions(+), 62 deletions(-) diff --git a/src/Helper/Processor.php b/src/Helper/Processor.php index bac7ffc..2040ab9 100644 --- a/src/Helper/Processor.php +++ b/src/Helper/Processor.php @@ -36,6 +36,7 @@ public function render(SlidingPaginationInterface $pagination, array $queryParam $data['route'] = $pagination->getRoute(); $data['query'] = \array_merge($pagination->getParams(), $queryParams); + $data['pagination'] = $pagination; return \array_merge( $pagination->getPaginatorOptions() ?? [], // options given to paginator when paginated diff --git a/src/Twig/Extension/PaginationRuntime.php b/src/Twig/Extension/PaginationRuntime.php index 8f30a36..d0910b5 100644 --- a/src/Twig/Extension/PaginationRuntime.php +++ b/src/Twig/Extension/PaginationRuntime.php @@ -113,16 +113,17 @@ public function filter( * @param int $page * @return array */ - public function getQueryParams(array $query, int $page): array + public function getQueryParams(array $query, int $page, ?SlidingPaginationInterface $pagination = null): array { + $pageName = $pagination?->getPaginatorOption('page_name') ?? $this->pageName; if ($page === 1 && $this->skipFirstPageLink) { - if (isset($query[$this->pageName])) { - unset($query[$this->pageName]); + if (isset($query[$pageName])) { + unset($query[$pageName]); } return $query; } - return array_merge($query, [$this->pageName => $page]); + return array_merge($query, [$pageName => $page]); } } diff --git a/templates/Pagination/bulma_pagination.html.twig b/templates/Pagination/bulma_pagination.html.twig index 53ae1aa..c30c662 100644 --- a/templates/Pagination/bulma_pagination.html.twig +++ b/templates/Pagination/bulma_pagination.html.twig @@ -13,13 +13,13 @@ {% if pageCount > 1 %}