Постраничная навигация

Модуль предназначен для формирования постраничной навигации контента. Модуль состоит только из подключаемой части и шаблона.

Подключение

Подключаемая часть – файл modules/paginator/paginator.inc.php. В нем описан класс Paginator_inc. В модуле к объекту классам можно обратится через переменную $this->diafan->_paginator. Экземпляр класса создается при первом вызове переменной.

Свойства

string $get_nav
  • var: GET переменные, участвующие в навигации для постраничного вывода
  • access: public
integer $nastr = 10
  • var: количество элементов, показанных на странице
  • access: public
string $navlink
  • var: ссылка на первую страницу
  • access: public
string $navlink_tpl
  • var: шаблон ссылки второй и последующих страниц, если не задан используется navlink + urlpage
  • access: public
integer $navnastr = 10
  • var: количество ссылок постраничной навигации, показанных на одной страние
  • access: public
integer $nen
  • var: количество элементов в списке
  • access: public
integer $page
  • var: номер страницы
  • access: public
integer $polog = 0
  • var: порядковый номер элемента, с которого начинается вывод элементов
  • access: public
string $urlpage = 'page%d/'
  • var: шаблон части ссылки, отвечающей  за передачу номера страницы
  • access: public

Методы

array get() – Формирует строку навигации
  • access: public

Пример

// 1. Определяем свойства класса:

// номер текущей страницы
$this->diafan->_paginator->page    $this->diafan->page;

// адрес первой страницы
// вычисляем  с помощью подключения "Маршрутизатор"
$this->diafan->_paginator->navlink $this->diafan->_route->current_link("page");
// или задаем вручную
$this->diafan->_paginator->navlink "news.html";

// шаблон последующих страниц
// вычисляем  с помощью подключения "Маршрутизатор"
$this->diafan->_paginator->navlink_tpl $this->diafan->_route->current_link("", array("page" => "%d"));
// или задаем вручную
$this->diafan->_paginator->navlink_tpl 'news/page%d/';

//вместо переменной navlink_tpl можно задать utlpage, тогда navlink_tpl будет равна navlink + urlpage
$this->diafan->_paginator->urlpage = 'page%d/'


// количество новостей
$this->diafan->_paginator->nen DB::query_result("SELECT COUNT(*) FROM {news}");

// 2. Получаем список ссылок в постраничной навигации
$links $this->diafan->_paginator->get();

// 3. Отправляем запрос к базе данных для получения списка новостей, ограниченных данной страницей
$result DB::query_range("SELECT * FROM {news}", $this->diafan->_paginator->polog, $this->diafan->_paginator->nastr);

// 4. Подставляем полученные данные в шаблон
// в моделе модуля
$this->result["paginator"] = $this->diafan->_tpl->get('get''paginator'$links);
// или в шаблоне модуля
echo $this->get('get''paginator'$links); 

Шаблон

В шаблоне описаны две функции: get и get_admin. Первая используется для пользовательской части, вторая для административной. Вы можете создать свой шаблон функцию и использовать ее в своем модуле.

CSS-форматирование

.paginator{} – навигация «Постраничный вывод»

Файлы

  1. modules/paginator/paginator.inc.php – формирует постраничную навигацию;

  2. modules/paginator/paginator.view.php – шаблон постраничной навигации.



Не понятно? Уточните