1 | <?php |
||
14 | class Sorter extends DataComponent { |
||
15 | |||
16 | const SORTING_SEPARATOR = '~'; |
||
17 | const COLUMN_SEPARATOR = '.'; |
||
18 | |||
19 | /** @var array */ |
||
20 | private $_sortFields = []; |
||
21 | |||
22 | /** |
||
23 | * Sorter constructor. |
||
24 | * @param null|array $fields |
||
25 | * @param bool $remember |
||
26 | */ |
||
27 | 8 | public function __construct(array $fields = null, bool $remember = false) |
|
46 | |||
47 | /** |
||
48 | * @return Builder |
||
49 | */ |
||
50 | 7 | public function _shapeData() : Builder |
|
68 | |||
69 | /** |
||
70 | * Stop sorting by this column |
||
71 | * |
||
72 | * @param string $field |
||
73 | * |
||
74 | * @return Sorter |
||
75 | */ |
||
76 | 1 | public function removeField(string $field) : Sorter |
|
85 | |||
86 | /** |
||
87 | * @param string $fieldName |
||
88 | * @param string $direction |
||
89 | */ |
||
90 | private function _sortField(string $fieldName, string $direction) : void |
||
109 | |||
110 | /** |
||
111 | * Sort by this column. |
||
112 | * |
||
113 | * @param string $field |
||
114 | * @param string $direction |
||
115 | * |
||
116 | * @return Sorter |
||
117 | */ |
||
118 | 1 | public function addField(string $field, string $direction = 'asc') : Sorter |
|
124 | |||
125 | /** |
||
126 | * @return string |
||
127 | */ |
||
128 | public function render() : string |
||
132 | |||
133 | 1 | protected function _readFromSession() : void |
|
137 | |||
138 | 1 | protected function _storeInSession() : void |
|
142 | |||
143 | 8 | protected function _afterInit() : void |
|
154 | |||
155 | /** |
||
156 | * @param string $fields |
||
157 | */ |
||
158 | 2 | private function _initFields(string $fields) : void |
|
177 | } |