{var $space = 2}
{var $pageCount = ceil($conf->count / $conf->perPage)}

<div n:if="!($conf->page === 1 && $conf->count <= $conf->perPage)" n:class="paginator, $conf->atBottom ? paginator-at-bottom">
    {if $conf->page > $space}
        <a n:attr="class => ($conf->page === 1 ? 'active')" href="?{http_build_query(array_merge($_GET, ['p' => 1]), 'k', '&', PHP_QUERY_RFC3986)}">«</a>
    {/if}
    {for $j = $conf->page - ($space-1); $j <= $conf->page + ($space-1); $j++}
        {if $j > 0 && $j <= $pageCount}
            <a n:attr="class => ($conf->page === $j ? 'active')" href="?{http_build_query(array_merge($_GET, ['p' => $j]), 'k', '&', PHP_QUERY_RFC3986)}">{$j}</a>
        {/if}
    {/for}
    {if $conf->page <= $pageCount-$space}
        <a n:attr="class => ($conf->page === $pageCount ? 'active')" href="?{http_build_query(array_merge($_GET, ['p' => $pageCount]), 'k', '&', PHP_QUERY_RFC3986)}">»</a>
    {/if}
</div>
