1 <?php
2 3 4 5 6 7 8
9
10 Yii::import('bootstrap.widgets.TbBaseMenu');
11
12 13 14 15
16 class extends TbBaseMenu
17 {
18
19 const TYPE_TABS = 'tabs';
20 const TYPE_PILLS = 'pills';
21 const TYPE_LIST = 'list';
22
23 24 25 26
27 public $type;
28 29 30
31 public $scrollspy;
32 33 34
35 public $stacked = false;
36 37 38
39 public $dropup = false;
40
41 42 43
44 public function init()
45 {
46 parent::init();
47
48 $classes = array('nav');
49
50 $validTypes = array(self::TYPE_TABS, self::TYPE_PILLS, self::TYPE_LIST);
51
52 if (isset($this->type) && in_array($this->type, $validTypes))
53 $classes[] = 'nav-'.$this->type;
54
55 if ($this->stacked && $this->type !== self::TYPE_LIST)
56 $classes[] = 'nav-stacked';
57
58 if ($this->dropup === true)
59 $classes[] = 'dropup';
60
61 if (isset($this->scrollspy))
62 {
63 $scrollspy = is_string($this->scrollspy) ? array('target'=>$this->scrollspy) : $this->scrollspy;
64 $this->widget('bootstrap.widgets.TbScrollSpy', $scrollspy);
65 }
66
67 if (!empty($classes))
68 {
69 $classes = implode(' ', $classes);
70 if (isset($this->htmlOptions['class']))
71 $this->htmlOptions['class'] .= ' '.$classes;
72 else
73 $this->htmlOptions['class'] = $classes;
74 }
75 }
76
77 78 79 80
81 public function getDividerCssClass()
82 {
83 return (isset($this->type) && $this->type === self::TYPE_LIST) ? 'divider' : 'divider-vertical';
84 }
85
86 87 88 89
90 public function getDropdownCssClass()
91 {
92 return 'dropdown';
93 }
94
95 96 97 98
99 public function isVertical()
100 {
101 return isset($this->type) && $this->type === self::TYPE_LIST;
102 }
103 }
104