Blame view

protected/modules/admin/components/widgets/BSideMenu.php 1.24 KB
a1684257   Administrator   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  <?php
  
  class BSideMenu extends CWidget
  {
      /**
       * @var array
       * examle:
       * [{
       *   'label':'Group label'
       *   'items':[{
       *          label:label,
       *          icon:icon,
       *          url:url|array(route,params)
       *          active:route_regexp|boolean
       *   },..]
       * },..]
       */
      public $items;
  
      public function init()
      {
          parent::init();
      }
  
      public function run()
      {
          $current_route = '/' . $this->controller->module->id . '/' . $this->controller->id . '/' . $this->controller->action->id;
  
          echo '<ul class="nav nav-list">';
          foreach ($this->items as $group) {
              echo '<li class="nav-header">', $group['label'], '</li>';
              foreach ($group['items'] as $item) {
                  if (is_string($item['active']))
                      $active = (preg_match($item['active'], $current_route) > 0);
                  else
                      $active = $item['active'];
  
                  echo
                  '<li', ($active ? ' class="active"' : ''), '>',
                  CHtml::link('<i class="' . $item['icon'] . ($active ? ' icon-white' : '') . '"></i> ' . $item['label'], $item['url']),
                  '</li>';
              }
          }
          echo '</ul>';
      }
  
  }