Программирование → Создание нумерации страниц для MCV компонента Joomla 1.5
В фреймворке Joomla 1.5 предусмотрен встроенный механизм создания нумерации страниц.
Для того, чтобы сделать нумерацию страниц, нужно импортировать файл с классом JPagination. Для этого выполняем следующий код:
1
|
jimport("joomla.html.newpagination");
|
Далее нам нужно создать объект нумерации:
1
|
$pagination = new JNewPagination($count, $limitstart, $limit);
|
При создании объекта класса мы передаем три параметра:
- общее количество строк, присутствующее в нашем выводимом контенте — например, мы выбираем весь товар из определенной категории;
- текущая позиция страницы — этот параметр мы должны принять из данных, переданных странице - $limitstart = JRequest::getInt("limitstart");
- последний параметр — это количество позиций (например, товара) которые мы должны выводить на странице, этот параметр целочисленный и мы указываем его сами.
После создания объекта нумерации строк нам нужно создать запрос, который выполнит выборку по текущей позиции страницы:
1
|
$result = $this->_getList($query, $limitstart, $limit);
|
Как видите, мы передаем все те же параметры $limitstart и $limit, которые мы использовали при создании объекта нумерации строк.
Далее нам остается только передать объект нумерации в вид, и в виде отправить его в шаблон. В шаблоне достаточно написать:
1
|
echo $this->pagination->getPagesLinks();
|
Однажды дизайнеру захотелось нарисовать нумерацию строк в таком стиле:
? 1 ... 10 11 12 13 14 ... 210 ?
Поскольку стандартная нумерация строк используется еще и для административной части сайта, то мне пришлось писать свой класс для нумерации. Строк кода в классе получилось довольно много, поэтому писать все здесь нет смысла. Для интересующихся выкладываю файл для скачивания:
скачать класс с нумерацией строк
Как заставить подобный класс работать? Очень просто! Необходимо назвать файл newpagination.php и закинуть этот файл в libraries/joomla/html/. В этой же папке будет расположен файл pagination.php. Дальше нам необходимо чуть-чуть подправить наш код в модели для вывода нумерации строк:
1 2 3 4 5 6
|
$limit = 7; $limitstart = JRequest::getInt("limitstart"); jimport("joomla.html.newpagination");//подключаем новый файл нумерации $pagination = new JNewPagination($count, $limitstart, $limit);//изменяем объект $result = $this->_getList($sql, $limitstart, $limit);
|
Автор: Денеж Александр