Постраничный навигатор в 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>

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

  • Администратор: к записи http://red-book-cms.ru/feed »
  • Администратор: к записи Это на PHP надо смотреть. cURL и все такое там. »
  • Nevek: к записи setInterval("location.reload()", 5000); Почему не »
  • Александр: к записи Добрый день. Как можно организовать порядок работы »
  • Нестор: к записи Админ, а rss у тебя на сайтике имеется? А то я не »
  • Николай: к записи Т.е. upload фотки на один onclick, потом еще сообщ »
  • Галина: к записи Ко мне он повадился ходить как раз где-то в начале »

Статистика спама

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