Иногда бывают ситуации, когда при отображении ссылок для перехода на следующие страницы, требуется отобразить индекс самой последней страницы, чтобы посетитель понимал какой объём страниц представлен в текущем разделе. Для отображения ссылок на следующие страницы можно использовать стандартный макрос system numpages(). 

Для решения данной задачи, нам потребуется добавить кастомный макрос в файл classes/modules/custom.php:

public function last_number($link, $size = 5){                   
$link = str_replace('?', '', $link);
parse_str($link, $arr_link);
$last_number = $arr_link['p']; 
$last_name = $last_number + 1;    
$cur_page = (int) getRequest('p');
if($cur_page + $size < $last_name) return "...<a href='?p={$last_number}'> {$last_name}</a>";
}

Вызов макроса numpages может быть таким:
% system numpages(% total%, % per_page%, 'standart')%

Тогда нам в шаблоне tpls/numpages/standart.tpl, в блоке pages_block, после макроса pages, нам потребуется добавить:

% pages%(html-пробел)% custom last_number(% toend_link%, 5)%

В нашем случае цифра 5, будет означать, что требуется отображать 5 ссылок для перехода.

Даже если стандартный макрос не отобразит ссылку на последнюю страницу, то кастомный макрос отобразит последний индекс. Наш кастомный макрос можно применять вместо toend, который выводит блок pages_toend , либо pages_toend_a.

Данный способ отлично помог при разработке доски объявлений Воронежа. Посмотреть пример реализации можно на сайте - объявления, но данный способ можно использовать на любом сайте.

Голосовать за статью:

Комментарии

Добавить комментарий

Заголовок:
Ваш ник:
Ваш e-mail:
Текст:
Введите текст на картинке

Похожие новости:

Если у Вас возникают какие-либо вопросы или проблемы, то Вы можете написать в комментариях или воспользоваться формой обратной связи.

При копировании материлов ссылка на источник обязательна!