Постраничный навигатор в Wolf

Если вы более внимательно рассматривали бэкенд и фронтенд Wolf CMS, тогда нетрудно было бы заметить, что по умолчанию в шаблонах Wolf CMS отсутствует не то, что постраничный навигатор, но и ссылки следующая / предыдущая у страниц-рубрик, имеющих дочерние элементы.

Сегодня я покажу вам, как быстро организовать постраничную навигацию в Wolf CMS на произвольной веб-странице. Итак, приступим к делу. Весь перечисленный ниже материал рассчитан на то, что у вас включен mod_rewrite у Apache.

Постраничный навигатор для Wolf CMS

1. Для примера я буду редактировать содержимое страницы Articles, которая имеется в демонстрационном контенте сразу же после инсталляции Wolf CMS. Чтобы полноценно опробовать будущий результат я рекомендую вам добавить к ней ещё несколько дочерних публикаций:

Страницы в Wolf CMS

Проще всего создавать демонстрационно-отладочный контент сайта можно с помощью кликов по кнопке-значку «Copy Page» копирования материала, расположенной правее всех от заголовка записи сайта.

2. Открываем для редактирования нашу «Articles». Фильтр должен находиться в положении «нет». Итак, вставляем в body следующий программный код:

<?php
/* Сколько анонсов выводить на одной странице: */
$anonsov_na_stranicu = 2;
/* Лимит ссылок навигатора: */
$kolvo_ssilok_navigatora = 2;

$last_articles = $this->children(array(
  'limit'  => $anonsov_na_stranicu,
  'offset' => ($pagination->cur_page)*($pagination->per_page),
  'order'  => 'page.created_on DESC'
));

/* Цикл вывода анонсов материалов сайта: */
foreach ($last_articles as $article) { ?>
  <div>
    <h3><?php print $article->link($article->title); ?></h3>
    <?php 
    // Здесь может находиться все, что вам угодно: 
    // тизеры, метки и т.п.
    ?>
  </div><!-- end .entry --><?php
}

/* Создаем новый экземпляр класса Pagination: */
use_helper('Pagination');
$pagination = new Pagination(array(
  'base_url' => URL_PUBLIC. '/articles?page=',
  'total_rows' => $this->childrenCount(),
  'per_page' => $anonsov_na_stranicu,
  'num_links' => $kolvo_ssilok_navigatora,
  'first_link' => '&lsaquo; Первая',
  'last_link' => 'Последняя &rsaquo;',
  'cur_page' => (isset($_GET['page']) ? $_GET['page']: 1)
));

if ($pagination->total_rows > $pagination->per_page)
  print '<p><br />Страницы: '.$pagination->createLinks().'</p>';
?>
  • $anonsov_na_stranicu  — переменная задает максимальное количество анонсов новостей на 1 страницу из рубрики. Если вы приглядитесь повнимательнее, то заметите, что данное значение я установил в качестве синонима для двух других — limit в $last_articles и per_page в параметрах класса Pagination. Упомянутые значения должны всегда совпадать, — вам же нужен адекватный пагинатор, не так ли?
  • base_url — шаблон ссылок навигатора.
  • $kolvo_ssilok_navigatora она же num_links — лимит количества ссылок пагинатора после превышения которого будут показаны линки первая / последняя страницы.

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

Правка страницы в Wolf CMS

Класс постраничного навигатора Pagination располагается в «http://ваш-сайт.com/wolf/helpers/Pagination.php». Остальные его «свойства» вы можете посмотреть именно там.

На этом собственно все.

Опубликовано 21-03-2013 в 10:45


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты