Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны — различия между версиями
VITL' (обсуждение | вклад) |
Davidov (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
$link = str_replace('?', '', $link); | $link = str_replace('?', '', $link); | ||
parse_str($link, $arr_link); | parse_str($link, $arr_link); | ||
+ | if(isset($arr_link['p'])){ | ||
$last_number = $arr_link['p']; | $last_number = $arr_link['p']; | ||
$last_name = $last_number + 1; | $last_name = $last_number + 1; | ||
$cur_page = (int) getRequest('p'); | $cur_page = (int) getRequest('p'); | ||
if($cur_page + $size < $last_name) return "...<a href='?p={$last_number}'> {$last_name}</a>"; | if($cur_page + $size < $last_name) return "...<a href='?p={$last_number}'> {$last_name}</a>"; | ||
+ | } | ||
} | } | ||
</source> | </source> |
Версия 08:47, 12 апреля 2012
В некоторых случаях, при отображении группы ссылок для перехода на следующие страницы, необходимо отобразить индекс самой последней страницы, чтобы пользователь понимал объем объектов представленных в текущем разделе. Для вывода ссылок на следующие страницы используется стандартный макрос system numpages(). Для выполнения поставленной задачи, добавим кастомный метод в файл classes/modules/custom.php:
public function last_number($link, $size = 5){
$link = str_replace('?', '', $link);
parse_str($link, $arr_link);
if(isset($arr_link['p'])){
$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 – в том случае, если в группе отображается пять ссылок для перехода.
Кастомный макрос, в случае, если стандартный макрос %pages% не отображает ссылку на последнею страницу, все-таки отобразит последний индекс. Кастомный макрос можно использовать вместо %toend%, который выводит блок pages_toend , либо pages_toend_a.