1
|
|
|
<?php
|
2
|
|
|
/**
|
3
|
|
|
* Данный класс используется для инициализации выбора количества элементов на страницу
|
4
|
|
|
* Инициализируется вместо CActiveDataProvider
|
5
|
|
|
*
|
6
|
|
|
* Для настройки свойств класса используется BActiveDataProvider::setPageSizeElements($elements)
|
7
|
|
|
* @example
|
8
|
|
|
* <code>
|
9
|
|
|
* // инициализация датапровайдера
|
10
|
|
|
* $dataProvider = new BActiveDataProvider('BNews', array('sort' => array('defaultOrder' => 'date DESC')));
|
11
|
|
|
* $dataProvider->pagination->setPageSizeElements(10000000 => 'Все', 5 => 5, 10 => 10, 25 => 25);
|
12
|
|
|
* </code>
|
13
|
|
|
*
|
14
|
|
|
* Для того чтобы получить форму необходимо вызвать BActiveDataProvider::getPagination()->getPageSizeForm()
|
15
|
|
|
* @example
|
16
|
|
|
* <code>
|
17
|
|
|
* $dataProvider->pagination->getPageSizeForm();
|
18
|
|
|
* </code>
|
19
|
|
|
* При этом произойдет отобращений как самой формы, так и скрипта, который перехватывает эвэнт onChange поля формы
|
20
|
|
|
* и автоматически сабмитит.
|
21
|
|
|
*
|
22
|
|
|
* @author Nikita Melnikov <[email protected]>
|
23
|
|
|
* @link https://github.com/shogodev/argilla/
|
24
|
|
|
* @copyright Copyright © 2003-2014 Shogo
|
25
|
|
|
* @license http://argilla.ru/LICENSE
|
26
|
|
|
* @package backend.components
|
27
|
|
|
*
|
28
|
|
|
*
|
29
|
|
|
* @property BPagination $pagination
|
30
|
|
|
*/
|
31
|
|
|
class BActiveDataProvider extends CActiveDataProvider
|
32
|
|
|
{
|
33
|
10 |
|
public function __construct($modelClass, $config = array())
|
34
|
|
|
{
|
35
|
10 |
|
parent::__construct($modelClass, $config);
|
36
|
10 |
|
$this->setPagination([
|
37
|
10 |
|
'class' => 'BPagination',
|
38
|
10 |
|
'pageVar' => $this->getId().'_page',
|
39
|
10 |
|
'pageSizeVar' => $this->getId().'_count',
|
40
|
10 |
|
]);
|
41
|
|
|
}
|
42
|
|
|
} |