$pagination * @param array $queryParams * @param array $viewParams */ public function render( Environment $env, SlidingPaginationInterface $pagination, ?string $template = null, ?array $queryParams = [], ?array $viewParams = [], ): string { return $env->render( $template ?: $pagination->getTemplate(), $this->processor->render($pagination, $queryParams ?? [], $viewParams ?? []) ); } /** * Renders the tags. * * @param \Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination $pagination * @param array $queryParams * @param array $viewParams */ public function rel_links( Environment $env, SlidingPaginationInterface $pagination, ?string $template = null, ?array $queryParams = [], ?array $viewParams = [], ): string { return $env->render( $template ?: $pagination->getRelLinksTemplate(), $this->processor->render($pagination, $queryParams ?? [], $viewParams ?? []) ); } /** * Create a sort url for the field named $title and identified by $key which consists of * alias and field. $options holds all link parameters like "alt, class" and so on. * * $key example: "article.title" * * @param \Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination $pagination * @param string|array $key * @param array $options * @param array $params */ public function sortable( Environment $env, SlidingPaginationInterface $pagination, string $title, array|string $key, array $options = [], array $params = [], ?string $template = null, ): string { return $env->render( $template ?: $pagination->getSortableTemplate(), $this->processor->sortable($pagination, $title, $key, $options, $params) ); } /** * Create a filter url for the field named $title and identified * by $key which consists of alias and field. * $options holds all link parameters like "alt, class" and so on. * * $key example: "article.title" * * @param \Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination $pagination * @param array $fields * @param array $options * @param array|null $params */ public function filter( Environment $env, SlidingPaginationInterface $pagination, array $fields, ?array $options = [], ?array $params = [], ?string $template = null, ): string { return $env->render( $template ?: $pagination->getFiltrationTemplate(), $this->processor->filter($pagination, $fields, $options ?? [], $params ?? []) ); } /** * @param array $query * @param array $options * * @return array */ public function getQueryParams(array $query, int $page, array $options = []): array { $pageName = $this->pageName; if (isset($options['pageParameterName']) && \is_string($options['pageParameterName'])) { $pageName = $options['pageParameterName']; } if (1 === $page && $this->skipFirstPageLink) { if (isset($query[$pageName])) { unset($query[$pageName]); } return $query; } return \array_merge($query, [$pageName => $page]); } }