Модификация пагинатора

пагинатор в шаблоне включается тегом

include file=“common/pagination.tpl”

вопрос: как из стандартного пагинатора исключить некоторые пункты задающие items_per_page? например убрать 100 и 250 на страницу.
pagination

может есть атрибут какой-то для этого тега?

Смотрите функцию fn_generate_pagination https://skr.sh/sGFEoqzMJUL
в файле app/functions/fn.common.php

$pagination = array (
        'navi_pages' => range($page_from, $page_to),
        'prev_range' => ($page_from > 1) ? $page_from - 1 : 0,
        'next_range' => ($page_to < $total_pages) ? $page_to + 1: 0,
        'current_page' => $params['page'],
        'prev_page' => ($params['page'] > 1) ? $params['page'] - 1 : 0,
        'next_page' => ($params['page'] < $total_pages) ? $params['page'] + 1 : 0,
        'total_pages' => $total_pages,
        'total_items' => $params['total_items'],
        'items_per_page' => $params['items_per_page'],
        'per_page_range' => array(10, 25, 50, 100, 250),
        'range_from' => (($params['page'] - 1) * $params['items_per_page']) + 1,
        'range_to' => (($params['page'] * $params['items_per_page']) > $params['total_items']) ? $params['total_items'] : $params['page'] * $params['items_per_page'],
    );

эх… не хватает там

‘per_page_range’ => $params[‘per_page_range’] ?? array(10, 25, 50, 100, 250)

всесто

‘per_page_range’ => array(10, 25, 50, 100, 250)

тогда в контроллере можно было б передать

$search[‘per_page_range’] = array(11, 22, 33, 44, 55);
Tygh::$app[‘view’]->assign(‘search’, $search);

pagination2

Вариантов подмены много, выбирайте удобный :slight_smile:

@ikoshkin Не хотелось бы отвлекать пустяками от бесконечных дедлайнов, а всё же спрошу ))
Возможен ли хук пагинатора в будущих версиях?

например,
в функции fn_generate_pagination пакета fn.common.php есть хук generate_pagination_pre, но нет пост-хука перед ретурном.
а лучше per_page_range сделать изменяемым через params, сейчас per_page_range захардкожен в массив pagination.

Бывает, что нужен свой шаг в пагинаторе (10, 20, 30, 40).
Бывает, что надо введённый вручную в адресной строке items_per_page ограничить максимальным значением из собственного per_page_range.