Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны — различия между версиями
VITL' (обсуждение | вклад) (Новая страница: «В некоторых случаях, при отображении группы ссылок для перехода на следующие страницы, не…») |
Davidov (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 2: | Строка 2: | ||
Для выполнения поставленной задачи, добавим кастомный метод в файл '''classes/modules/custom.php''': | Для выполнения поставленной задачи, добавим кастомный метод в файл '''classes/modules/custom.php''': | ||
<source lang="php"> | <source lang="php"> | ||
− | public function last_number($ | + | public function last_number($total, $per_page, $size = 5){ |
− | + | $pages=ceil($total/$per_page); | |
− | + | $last_number = $pages; | |
− | + | $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>"; | |
− | |||
− | |||
− | |||
} | } | ||
</source> | </source> | ||
Строка 22: | Строка 19: | ||
тогда в шаблоне '''tpls/numpages/standart.tpl''', в блоке '''pages_block''', после макроса %pages%, добавим вызов кастомного макроса: | тогда в шаблоне '''tpls/numpages/standart.tpl''', в блоке '''pages_block''', после макроса %pages%, добавим вызов кастомного макроса: | ||
<pre> | <pre> | ||
− | %pages%(html-пробел)%custom last_number(% | + | %pages%(html-пробел)%custom last_number(%total%, %per_page%, 5)% |
</pre> | </pre> | ||
Строка 29: | Строка 26: | ||
Кастомный макрос, в случае, если стандартный макрос %pages% не отображает ссылку на последнею страницу, все-таки отобразит последний индекс. | Кастомный макрос, в случае, если стандартный макрос %pages% не отображает ссылку на последнею страницу, все-таки отобразит последний индекс. | ||
Кастомный макрос можно использовать вместо %toend%, который выводит блок pages_toend , либо pages_toend_a. | Кастомный макрос можно использовать вместо %toend%, который выводит блок pages_toend , либо pages_toend_a. | ||
+ | [[Категория: Верстка в TPL]] |
Текущая версия на 13:20, 1 октября 2012
В некоторых случаях, при отображении группы ссылок для перехода на следующие страницы, необходимо отобразить индекс самой последней страницы, чтобы пользователь понимал объем объектов представленных в текущем разделе. Для вывода ссылок на следующие страницы используется стандартный макрос system numpages(). Для выполнения поставленной задачи, добавим кастомный метод в файл classes/modules/custom.php:
public function last_number($total, $per_page, $size = 5){
$pages=ceil($total/$per_page);
$last_number = $pages;
$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(%total%, %per_page%, 5)%
5 – в том случае, если в группе отображается пять ссылок для перехода.
Кастомный макрос, в случае, если стандартный макрос %pages% не отображает ссылку на последнею страницу, все-таки отобразит последний индекс. Кастомный макрос можно использовать вместо %toend%, который выводит блок pages_toend , либо pages_toend_a.