context->transport->paginator)) return; $page = $this->context->transport->paginator->page; $pageCount = $this->context->transport->paginator->pageCount; $delta = 3; $pagesVisible = [1, $pageCount]; $pagesVisible = array_merge($pagesVisible, range($page - $delta, $page + $delta)); $pagesVisible = array_filter($pagesVisible, function($x) use ($pageCount) { return $x >= 1 and $x <= $pageCount; }); $pagesVisible = array_unique($pagesVisible); sort($pagesVisible, SORT_NUMERIC); $finalPages = [$pagesVisible[0]]; for ($i = 1; $i < count($pagesVisible); $i ++) { $prevPage = $pagesVisible[$i - 1]; $subPage = $pagesVisible[$i]; if ($subPage - $prevPage == 2) $finalPages []= $subPage - 1; elseif ($subPage - $prevPage > 2) $finalPages []= null; $finalPages []= $subPage; } $pagesVisible = $finalPages; if (!function_exists('pageUrl')) { function pageUrl($page) { $context = getContext(); $destination = $context->route->destination; $page = max(1, min($context->transport->paginator->pageCount, $page)); $params = $context->route->arguments; $params['page'] = $page; return \Chibi\Router::linkTo($destination, $params); } } ?> hasEnabledEndlessScrolling()) Assets::addScript('paginator-endless.js'); ?>