Пагинация для компонента в Joomla 3
03.10.2015
Памятка о том, что нужно добавить в компонент, для поддержки постраничного деления.
- Модифицируем класс модели class TestModelItems extends JModelList
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44/** * Метод для построения SQL запроса для загрузки списка данных. * * @return string SQL запрос. */ protected function getListQuery() { // Создаем новый query объект. $db = JFactory::getDBO(); $query = $db->getQuery(true); // Выбераем поля. $query->select('*') ->from('real_so_blog_items') ->where('published = 1') ->order($this->getState('list.ordering', 'ordering')); // DESC ; return $query; } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { // Вытаскиваем настройки копонента $params = JComponentHelper::getParams('com_soblog'); $limit = $params->get('onPage'); $limit = $limit?$limit:10; echo '$limit: '.$limit.'<br />'; $limitstart = JFactory::getApplication()->input->getVar('limitstart', 0); echo '$limitstart: '.$limitstart.'<br />'; $this->setState('list.start', $limitstart); $this->setState('list.limit', $limit); }
- В классе представления (class TestViewItems extends JViewLegacy), в методе display, добавляем:
$this->pagination = $this->get('Pagination');
- В самом представлении, в нужном месте выводим
<?=$this->pagination->getListFooter();?>