2013-02-28 4 views
1

Этот вопрос напрямую связан с Concrete5 CMS.Concrete5 Pagination - Limit Количество страниц, являющихся выходными

Я использую встроенный в PAGINATION помощник в одном из моих типов страниц, и я хотел бы, чтобы ограничить количество страниц он визуализирует со следующим кодом: <?php echo $paginator->getPages(); ?>

Вот весь код, я использую в шаблоне:

if ($paginate && $num > 0 && is_object($pl)): ?> 
<div class="pagination"> 
    <?php 
    $summary = $pl->getSummary(); 
    if ($summary->pages > 1): 
     $paginator = $pl->getPagination(); 
    ?> 
     <span class="page-prev"><?php echo $paginator->getPrevious('Prev'); ?></span> 
     <span class="pages"><?php echo $paginator->getPages(); ?></span> 
     <span class="page-next"><?php echo $paginator->getNext('Next'); ?></span> 
    <?php endif; ?> 
</div> 
endif; 

Прямо сейчас, у меня есть список страниц для отображения 5 элементов на странице. У меня есть 35 пунктов, и поэтому моя нумерация страницы выглядят примерно так:

Предыдущих [1] 2 3 4 5 6 7 Следующих

(скобки вокруг 1 представляют активную страницу)

Я d хотел бы ограничить отображение страниц, чтобы отображать только 5 страниц за раз. Так что это выглядит примерно так:

Назад [1] 2 3 4 5 Следующая

И если бы вы были на странице 5, она будет выглядеть примерно так:

Prev 3 4 [5] 6 7 Следующие

И так далее. Это не нужно работать именно так. Моя главная проблема заключается в том, чтобы ограничить количество страниц, получаемых с помощью $ paginator-> getPages();

Я искал высоко и низко, но я не могу найти никакой информации о том, как этого достичь. Может кто-нибудь мне помочь?

+0

Странно ... если вы смотрите на код getPages Класс PAGINATION в() функции (в '/ бетон/ядро ​​/ хелперов/pagination.php', начиная вокруг линии # 195 в Concrete5.6.1), похоже, что он должен делать именно то, что вы просите, - выводить точки до и после следующих/предыдущих 5 результатов. Какую версию Concrete5 вы используете? –

+0

Я обнаружил это вчера, когда я изучал его больше. Я предполагаю, что максимальное количество максимальных страниц, которые он отобразит перед показом точек, равно 7. Поэтому я никогда не видел точек в первую очередь. Как только я нашел помощника для разбивки на страницы, мне удалось заставить его работать более или менее, как я хотел, изменив его, чтобы отобразить 4 страницы, затем точки, а затем номер последней страницы. – norsewulf

ответ

2

Ответ на этот вопрос был изменение значения $ близость номер. Номер определяет количество номеров страниц, отображаемых рядом с номер активной страницы. пример кода в моем view.php

<div class="ccm-pagination-outer-wrapper"> 
    <?php 
     $showPagination = true; 
     $options = array(
      'prev_message'  => t('← Previous page'), 
      'next_message'  => t('Next page →'), 
      'proximity'   => 0 
     ); 
     echo $pagination->renderDefaultView($options); 
    ?> 
</div> 
Смежные вопросы