Просмотр поста

.
reaper

Spayder, Качаешь https://github.com/Kilte/silex ... 0.zip
От туда понадобится только PaginationService.php
Пишешь следующий код:

include '/путь/до/PaginationService.php';
use Kilte\Silex\Pagination\PaginationService;
$total = 100; // Кол-во всех изображений
$page = 1; // Текущая страница
$perPage = 20; // Кол-во изображений на страницу
$neighbours = 4; // Кол-во страниц, которые будут отображаться между первой и текущей и между последней и текущей соответственно.
$pagination = new PaginationService($total, $page, $perPage, $neighbours);
$pages = $pagination->build(); // Массив всех страниц
$offset = $pagination->offset(); // Сдиг
$limit = $pagination->limit(); // Лимит

Затем делаешь срез массива по сдвигу и лимиту с помощью array_slice например
С рендером пагинации в html проблем надеюсь быть не должно.
В массиве $pages соджержится список всех страниц. Понадобятся только значения.
Если значение типа int, значит это номер страницы
Если значение типа string, значит это заглушка ('...' в данном случае. Но можно показать и что-то свое)
Если значение равно false, то это текущая страница.

Пример использования тут: https://github.com/Kilte/silex ... ample