Hello ,
in order to show a max number of page for pagination , i modified the function for pagination class : src/Core/Product/Search/Pagination.php as below :
public function buildLinks() { $links = []; $addPageLink = function ($page) use (&$links) { static $lastPage = null; if ($page < 1 || $page > $this->getPagesCount()) { return; } if (null !== $lastPage && $page > $lastPage + 1) { $links[] = $this->buildSpacer(); } if ($page !== $lastPage) { $links[] = $this->buildPageLink($page); } $lastPage = $page; }; $boundaryContextLength = 1; /** Modifcation ***/ //By default it is 3 $pageContextLength = 14; $links[] = $this->buildPageLink(max(1, $this->getPage() - 1), 'previous'); for ($i = 0; $i < $boundaryContextLength; ++$i) { $addPageLink(1 + $i); } $start = max(1, $this->getPage() - (int) floor(($pageContextLength - 1) / 2)); if ($start + $pageContextLength > $this->getPagesCount()) { $start = $this->getPagesCount() - $pageContextLength + 1; } for ($i = 0; $i < $pageContextLength; ++$i) { $addPageLink($start + $i); } for ($i = 0; $i < $boundaryContextLength; ++$i) { $addPageLink($this->getPagesCount() - $boundaryContextLength + 1 + $i); } $links[] = $this->buildPageLink(min($this->getPagesCount(), $this->getPage() + 1), 'next'); return $links; }
what is the best way to override that function ? by a module either simple override ?