private function getItems(NavContainer $container, $parentNavId = 0, $parentGroup = [], $index = 1) { $navs = $container->getNavs()->andWhere(['parent_nav_id' => $parentNavId])->all(); $data = []; foreach ($navs as $nav) { $array = $nav->toArray(); if (empty($nav->activeLanguageItem)) { continue; } $array['title'] = $nav->activeLanguageItem->title; foreach ($this->getGroups() as $key => $group) { $isInheritedFromParent = false; if (isset($parentGroup[$key])) { if ($parentGroup[$key]['isGroupPermissionInheritNode'] || $parentGroup[$key]['isInheritedFromParent']) { $isInheritedFromParent = true; } } $array['groups'][$key] = ['id' => $group->id, 'isGroupPermissionInheritNode' => $nav->isGroupPermissionInheritNode($group), 'hasGroupPermission' => $nav->hasGroupPermission($group), 'isInheritedFromParent' => $isInheritedFromParent, 'permissionCheckbox' => $nav->hasGroupPermissionSelected($group), 'groupFullPermission' => $this->groupHasFullPermission($group)]; } $array['nav_level'] = $index; self::$_permissionItemData[$container->id][] = $array; $this->getItems($container, $nav->id, $array['groups'], $index + 1); //$data[] = $array; } //return $data; }
/** * Get Container name for a nav item. * * @param $navId * @return string Container name */ public function actionGetNavContainerName($navId) { $nav = Nav::findOne($navId); if ($nav) { $navCoontainer = NavContainer::findOne($nav->nav_container_id); if ($navCoontainer) { return $navCoontainer->name; } } return ""; }