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; }