Exemplo n.º 1
0
 private function array2str($item)
 {
     if (isset($item['visible']) && !$item['visible']) {
         return false;
     }
     $menuItem = new MenuItem();
     $menuItem->class = isset($this->li_attributes['class']) ? $this->li_attributes['class'] : '';
     if (isset($item['url'])) {
         $url = AF::linkArr2linkArr($item['url']);
         if (!$this->access->actionAccess($url)) {
             return false;
         }
         foreach ($item['url'] as $key => $value) {
             if ($this->different) {
                 if ($key == $this->controller && $value == $this->action) {
                     $menuItem->class .= ' active';
                 }
             } else {
                 if ($key == $this->controller) {
                     $menuItem->class .= ' active';
                 }
             }
         }
     }
     $menuItem->visible = isset($item['visible']) && !$item['visible'] ? '0' : '1';
     $menuItem->label = isset($item['label']) ? $item['label'] : 'No Lable';
     $menuItem->attributes = ' ';
     $params_url = isset($item['params_url']) ? $item['params_url'] : array();
     $menuItem->url = isset($item['url']) ? AF::link($item['url'], $params_url) : '#';
     if (isset($item['submenu']) && $item['submenu']) {
         $subMenu = array();
         $active = false;
         foreach ($item['submenu'] as $itemSubMenu) {
             if (isset($itemSubMenu['url'])) {
                 foreach ($itemSubMenu['url'] as $key => $value) {
                     if ($key == $this->controller) {
                         $active = true;
                     }
                     if ($this->different) {
                         if ($key == $this->controller && $value == $this->action) {
                             $active = true;
                         }
                     } else {
                         if ($key == $this->controller) {
                             $active = true;
                         }
                     }
                 }
             }
             $itemS = $this->array2str($itemSubMenu);
             if ($itemS) {
                 $subMenu[] = $itemS;
             }
             unset($itemS);
         }
         if (empty($subMenu)) {
             return false;
         }
         if ($active) {
             $menuItem->class .= ' active';
         }
         $menuItem->subMenu = $subMenu;
         unset($subMenu);
         $menuItem->class .= ' dropdown';
         if (isset($item['attributes']['class'])) {
             $item['attributes']['class'] .= 'dropdown-toggle';
         } else {
             $item['attributes']['class'] = 'dropdown-toggle';
         }
     }
     if ($item['attributes']) {
         $tempAttr = '';
         foreach ($item['attributes'] as $key => $value) {
             $tempAttr .= $key . '="' . $value . '" ';
         }
         $menuItem->attributes = $tempAttr;
         unset($tempAttr, $key, $value);
     }
     return $menuItem;
 }