Пагинация и helper pagination в UserCMS

С постраничной навигацией все аналогично как у хлебных крошек. С версии 2.6.0 есть правила, чтобы пагинация выглядела одинаково и имела одинаковую структуру и верстку.
Данные правила появились, поскольку до версии 2.6.0 программисты реализовывали пагинацию по разному.

Правила

1. Верстка пагинации

HTML код должен строго соотвествовать фреймворку BootStrap 4. На август 2018г пример кода тут: https://getbootstrap.com/docs/4.1/components/pagination/

Допускается, что текущая страница в пагинации является ссылкой (сам на себя). Но в идеале текущая страница не должна являться ссылкой.
В идеале выглядеть должно так:


А html код такой:


2. Расположение пагинации.


Исключительно под листингом элементов.
Не над ним, не сбоку, не сверху! А сразу под ним.
Понятное дело, что дизайнер хочет сбоку то тут никуда не денешься, но если нет прямых указаний или вы делаете модуль для публичного использования - только под листингом (только под новостями, фото и пр), Дублирование вверхку допускается, но только в исключительных случаях.

3. Предыдущая и следующая.


Первой и последней ссылкой могут быть Предыдущая и следующая. а) их можно опустить и вообще не указывать.
б) им нельзя переименовывать в Назад, вперед, далее и пр. никакие стрелочки, спецсимволы и прочее - не допускается.

4. 10 элементов на страницу - по умолчанию.


то есть 10 новостей, 10 товаров - по умолчанию. Но если элементы маленькие, то можно 20-30. Например как с фотографиями, но более 100шт не допускается.

4. Пагинация в админке

Пагинация в бэкенде ничем не отличается, кроме того, что по умолчанию можно выводить побольше элементов, в среднем по 50 страницу, поскольку sql выборка идет по ID, а она быстрее, чем по url в паблике, да и в админке обычно один админ сидит, а в паблике десятки-тысячи пользователей.

4.URL для пагинации

номер страницы передается с помощью URL (нет GET!!!!, а params, которые понимает только usercms).
Например, для второй страницы к урлу надо добавить: /page=2 (так неверно: ?page=2)
В итоге полный урл получаем так: SITE_URL/ component/ action /page=2

5. Helper pagination

Генерация пагинации исключительно с помощью Хелпера.

Пример:
...

Пред. урок След. урок