1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10:
11:
12: namespace App\Components;
13:
14: use Nette,
15: App\Lib\Statics\Cons,
16: App\Lib\Html;
17:
18: 19: 20:
21: class TreeControl extends Component {
22:
23: 24: 25:
26: public function render() {
27: $this->class = 'tree';
28: parent::render();
29: }
30: 31: 32: 33:
34: public function create() {
35: $tree = new Html\Tree();
36: $level = 0;
37: foreach ($this->action->data->data as $item) {
38: if ($item->depth > 0) {
39: $this->createItem($tree, $item, $level);
40: $level = $item[Cons::COLUMN_DEPTH];
41: }
42: }
43: $tree->setRemainUlLi($level);
44: return $tree->html;
45: }
46:
47: 48: 49: 50: 51: 52:
53: public function setParams($params) {
54: parent::setParams($params);
55: if ($this->action->state) {
56: $this->data = $this->action->data->data;
57: } else {
58: throw new Nette\InvalidArgumentException('Parametry akce nejsou nadefinovány');
59: }
60: }
61:
62: 63: 64: 65: 66: 67:
68: private function createItem($tree, $item, $level) {
69: $tree->setTreePart($item[Cons::COLUMN_DEPTH], $level);
70: $tree->setA($item[Cons::COLUMN_NAME],
71: $this->presenter->link('show', array(
72: 'source' => $this->action->source,
73: 'id' => $item[Cons::COLUMN_ID])),
74: TRUE);
75: }
76: }
77: