1: <?php
2: namespace Budovy;
3:
4: class OperationRepository extends Repository {
5: 6: 7: 8: 9:
10: function getPairData() {
11: return $this->getTable()->select('id, name')->order('name ASC')->fetchPairs('id', 'name');
12: }
13:
14: 15: 16: 17: 18: 19: 20: 21: 22:
23: function getGridSelection($filter, $order, $page, $limit) {
24: $selection = $this->getTable();
25:
26: if (isset($order[0]))
27: $selection->order(implode(' ', $order));
28:
29: $selection->page($page, $limit);
30:
31: return $this->addGridFilter($selection, $filter);
32: }
33:
34: 35: 36: 37: 38: 39:
40: function getGridCount($filter) {
41: $selection = $this->getTable()->select('COUNT(*) AS cnt');
42:
43: $result = $this->addGridFilter($selection, $filter)->fetch();
44:
45: return $result->cnt;
46: }
47:
48: 49: 50: 51: 52: 53: 54:
55: private function addGridFilter(\Nette\Database\Table\Selection $selection, $filter) {
56: $filters = array();
57:
58: foreach ($filter as $k => $v) {
59: $filters[$k . ' LIKE ?'] = "%$v%";
60: }
61:
62: return $selection->where($filters);
63: }
64: }