Overview

Namespaces

  • App
    • Components
    • Interfaces
    • Lib
      • Files
      • Forms
        • Controls
      • Html
      • Repair
      • Statics
    • Model
    • Modules
      • BaseModule
        • Presenters
      • PartnersModule
        • Presenters
      • ProductModule
        • Presenters
      • SaleModule
        • Model
        • Presenters
      • SettingsModule
        • Model
        • Presenters
      • StoreModule
        • Model
        • Presenters
    • Presenters
    • Router
  • PHP

Classes

  • DateTime
  • SplFileInfo

Interfaces

  • ArrayAccess
  • Countable
  • Exception
  • Iterator
  • Traversable
  • Overview
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Download
 1: <?php
 2: 
 3: /**
 4:  * Project sberp
 5:  *
 6:  * @file TreeControl
 7:  * @author Jaromír Polášek
 8:  * @version 0.7.1.FORM
 9:  * Encoding UTF-8
10:  */
11: 
12: namespace App\Components;
13: 
14: use Nette,
15:     App\Lib\Statics\Cons,
16:     App\Lib\Html;
17: 
18: /**
19:  * Komponenta pro vytváření Stromu
20:  */
21: class TreeControl extends Component {
22:       
23:     /**
24:      * Metoda Render
25:      */
26:     public function render() {
27:     $this->class = 'tree';
28:     parent::render();
29:     }
30:     /**
31:      * Vrací Html kód Stromu
32:      * @return string (\Nette\Utils\Html)
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:      * Předává tabulce parametr s odkazem aktuální prezenter. Dokud není nastaven, 
49:      * třída negeneruje komponentu. Po nastavení parametru se kontrolují přístupová práva.
50:      * @param string $params URL
51:      * @throws Nette\InvalidArgumentException
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:      * Vytvoří položku stromu s odkazem
64:      * @param \App\Lib\Html\Code $tree
65:      * @param \Nette\Database\Table\ActiveRow $item
66:      * @param integer $level
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: 
sberp API API documentation generated by ApiGen