Постраничная навигация
Модуль предназначен для формирования постраничной навигации контента. Модуль состоит только из подключаемой части и шаблона.
Подключение
Подключаемая часть – файл modules/paginator/paginator.inc.php. В нем описан класс
Paginator_inc. В модуле к объекту класса можно обратиться через переменную $this->diafan->_paginator
. Экземпляр класса создается при первом вызове
переменной.
Свойства
var nastr – количество элементов, показанных на странице.
Пример:
// определение переменной в коде программы имеет больший приоритет,
// чем определение соотвествующего поля в настройках модуля
$this->diafan->_paginator->nastr = 30;
массив названий переменных, содержащих номера страниц */ public static $variables = array();
/**
* @var integer количество ссылок постраничной навигации, показанных на одной странице
.Пример:
// сокращаем количество ссылок в постраничной навигации
$this->diafan->_paginator->navnastr = 3;
// выведет:
// 1 2 3 ...» или « 6 7 8 »
// вместо
// 1 2 3 4 5 6 7 8 9 10 »
var navlink – ссылка на первую страницу.
Пример:
// адрес первой страницы счетчика просмотров фотографий
$this->diafan->_paginator->navlink = 'photo/counter/'.($this->diafan->_route->cat ? 'cat'.$this->diafan->_route->cat.'/' : '');
Пример:
// в особых случая постраничная навигации можно использовать свою переменную для постраничной навигации, заданную в виде GET переменной
$this->diafan->_paginator->page = !empty( $_GET["page"] ) ? intval($_GET["page") : 0;
var last_page – номер последней страницы.
var get_nav – GET переменные, участвующие в навигации для постраничного вывода.
Пример:
// добавляем ко всем ссылкам постраничной навигации
// GET-переменную с поисковым словом
if(! empty($_GET["searchword"])))
{
$this->diafan->_paginator->get_nav =
'?searchword='.$this->diafan->filter($_GET, "url", "searchword");
}
var urlpage = 'page%d/' – шаблон части ссылки, отвечающей за передачу номера страницы.
Пример:
//вместо переменной &nbsnavlink_tplp;можно задать utlpage, тогда navlink_tpl будет равна navlink + urlpage
$this->diafan->_paginator->urlpage = 'page%d/';
var polog – порядковый номер элемента, с которого начинается вывод элементов.
Пример:
// получаем список ссылок в постраничной навигации
$links = $this->diafan->_paginator->get();
// отправляем запрос к базе данных для получения списка новостей, ограниченных данной страницей
$result = DB::query_range("SELECT * FROM {news}",
$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr);
var nen – количество элементов в списке.
Пример:
// количество новостей
$this->diafan->_paginator->nen = DB::query_result("SELECT COUNT(*) FROM {news}");
var show_more = false – ссылка "Показать ещё".
Методы
array get ([string $module = false], [string $action = false], [array $attributes = false]) – Формирует строку навигации.
- string $module: имя модуля, обрабатывающего action события show_more
- string $action: имя функции, обрабатывающей action события show_more
- array $attributes: аргументы функции, обрабатывающей action события show_more
Пример:
// получаем список ссылок в постраничной навигации
$links = $this->diafan->_paginator->get();
// подставляем полученные данные в шаблон
$this->result["paginator"] = $this->diafan->_tpl->get('get', 'paginator', $links);
Самый простой пример использования постраничной навигации.
Пример:
// общее количество новостей
$this->diafan->_paginator->nen = DB::query_result("SELECT COUNT(*) FROM {news}");
// постраничная навигация
$this->result["paginator"] = $this->diafan->_tpl->get('get', 'paginator', $this->diafan->_paginator->get());
// получение новостей для текущей страницы
$rows = DB::query_range_fetch_all("SELECT * FROM {news}", $this->diafan->_paginator->polog, $this->diafan->_paginator->nastr);
Остальные свойства нужно добавлять по необходимости. Например, при поиске по товарам, чтобы добавить в навигацию условия поиска. Или для того, чтобы сделать дополнительную постраничную навигацию, как в комментариях.
Шаблон
В модуле имеется два шаблона: paginator.view.get.php и paginator.view.get_admin.php. Первый используется для пользовательской части, второй для административной. Вы можете создать свой шаблон и использовать его в своем модуле.
Файлы
modules/paginator/js/paginator.show_more.js – JS-сценарий модуля;
modules/paginator/paginator.inc.php – подключение для работы с постраничной навигацией;
modules/paginator/paginator.install.php – установка модуля;
modules/paginator/views/paginator.view.get.php – шаблон постраничной навигации для пользовательской части;
modules/paginator/views/paginator.view.get_admin.php – шаблон постраничной навигации для административной части;
modules/paginator/views/paginator.view.show_more.php – шаблон постраничной навигации для пользовательской части.
База знаний
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.