пагинатор в шаблоне включается тегом
include file=“common/pagination.tpl”
вопрос: как из стандартного пагинатора исключить некоторые пункты задающие items_per_page? например убрать 100 и 250 на страницу.
может есть атрибут какой-то для этого тега?
Смотрите функцию 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);
Вариантов подмены много, выбирайте удобный
@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.