Cистема управления сайтом

Постраничное листание

Поддерживается в <dynamic>

Постраничное листание можно реализовать разными способами. Вот пример с использованием оператора <dynamic>

В итоге должно получиться вот так:

<dynamic>
{{Выводим сами новости}}
<set onpage=10>
<foreach name=x path="<#_id#>.$" sort="-_publish_time" limit="<print <var[cgi:page]>*<var[onpage]>>,<var[onpage]>">
  
<div><a href="<foreach[x]._url>"><foreach[x]._name></a>
   
<p><foreach[x].anounce></p>
   
</div>
</foreach>

{{ *** Постраничное листание *** }}
{{Получаем общее кол-во документов}}
<foreach path="<#_id#>.*" name=r></foreach>
{{Если документов больше, чем на одну страницу - показываем листалку }}
<if <foreach[r]._total> gt <var[onpage]>>
   
{{ Пишем общее кол-во документов в переменную}}
  
<set docs=<foreach[r]._total>> 
  
{{Сколько страниц показывать до сокращения}}
   
<set listpages=7> 
   
<div class="near">
     
{{ Если это не первая страница }}
     
<if <var[cgi:page]> != 0> 
        
<a href="?page=<print <var[cgi:page]>-1>">« предыдущие</a>
         
<span class="sep">|</span>
     
</if>
    
{{ Если это не последняя страница }}
     
<if <var[cgi:page]> != <var[docs]> div <var[onpage]>> 
       
<a href="?page=<print <var[cgi:page]>+1>">следующие »</a>
     
</if>
    
</div>

    
<loop i=0 to (<var[docs]> div <var[onpage]>) step="1">
     
<if <loop[i]>==0 || <loop[i]>==(<var[docs]> div <var[onpage]>) || ((<loop[i]> gt (<var[cgi:page]>-<var[listpages]>)) && (<loop[i]> lt (<var[cgi:page]>+<var[listpages]>)))>
      
<set p = <loop[i]>>
        
<if <var[cgi:page]> == <var[p]>>
          
<span><print <var[p]> + 1></span>
        
<else>
          
<a href="?page=<var[p]>"><print <var[p]> + 1></a>   
        
</if>
     
<else>
       
<if <loop[i]>==1 || <loop[i]>==(<var[docs]> div <var[onpage]>) - 2>. . .     </if>
     
</if>
    
</loop>
</if>
</dynamic>

Поиск по документации

О компании  |  Партнёрам

© 2005 — 2024 DJEM Solutions, все права защищены. | Дизайн — Студия Fractalla