Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «В некоторых случаях, при отображении группы ссылок для перехода на следующие страницы, не…»)
 
 
(не показаны 2 промежуточные версии 2 участников)
Строка 2: Строка 2:
 
Для выполнения поставленной задачи, добавим кастомный метод в файл '''classes/modules/custom.php''':
 
Для выполнения поставленной задачи, добавим кастомный метод в файл '''classes/modules/custom.php''':
 
<source lang="php">
 
<source lang="php">
   public function last_number($link, $size = 5){     
+
   public function last_number($total, $per_page, $size = 5){     
      $parsed_url = parse_url($link); 
+
    $pages=ceil($total/$per_page);
      $params = getArrayKey($parsed_url, 'query');
+
    $last_number = $pages;
      if(!$params) return '';
+
    $last_name = $last_number + 1;    
      parse_str($params, $params_arr);
+
    $cur_page = (int) getRequest('p');
      $last_num = $params_arr['p'];
+
    if($cur_page + $size < $last_name)
      $last_name = $last_num + 1;
+
        return "...<a href='?p={$last_number}'> {$last_name}</a>";
      $cur_page = (int) getRequest('p');
 
     
 
      if($cur_page + $size < $last_name) return "<a href='{$link}'><b>... {$last_name}<b></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(%toend_link%, 5)%
+
%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.