private function loadLanguageContainer($langShortCode)
    {
        $cacheKey = $this->_cachePrefix.$langShortCode;
        
        $languageContainer = $this->getHasCache($cacheKey);
        
        if ($languageContainer === false) {
            $lang = $this->getLanguage($langShortCode);
    
            if (!$lang) {
                throw new NotFoundHttpException(sprintf("The requested language '%s' does not exist in language table", $langShortCode));
            }
    
            $data = $this->getNavData($lang['id']);
    
            $index = $this->buildIndexForContainer($data);
    
            $languageContainer = [];
    
            // $key = cms_nav_item.id (as of indexBy('id'))
            foreach ($data as $key => $item) {
                $alias = $item['alias'];
    
                if ($item['parent_nav_id'] > 0 && array_key_exists($item['parent_nav_id'], $index)) {
                    $alias = $index[$item['parent_nav_id']].'/'.$item['alias'];
                }
    
                $languageContainer[$key] = [
                    'id' => $item['id'],
                    'nav_id' => $item['nav_id'],
                    'lang' => $lang['short_code'],
                    'link' => $this->buildItemLink($alias, $langShortCode),
                    'title' => $this->encodeValue($item['title']),
                    'title_tag' => $this->encodeValue($item['title_tag']),
                    'alias' => $alias,
                    'description' => $this->encodeValue($item['description']),
                    'keywords' => $this->encodeValue($item['keywords']),
                    'create_user_id' => $item['create_user_id'],
                    'update_user_id' => $item['update_user_id'],
                    'timestamp_create' => $item['timestamp_create'],
                    'timestamp_update' => $item['timestamp_update'],
                    'is_home' => $item['is_home'],
                    'parent_nav_id' => $item['parent_nav_id'],
                    'sort_index' => $item['sort_index'],
                    'is_hidden' => $item['is_hidden'],
                    'type' => $item['nav_item_type'],
                    'image_id' => $item['image_id'],
                    'redirect' => ($item['nav_item_type'] == 3 && isset($this->redirectMap[$item['nav_item_type_id']])) ? $this->redirectMap[$item['nav_item_type_id']] : false,
                    'module_name' => ($item['nav_item_type'] == 2 && isset($this->modulesMap[$item['nav_item_type_id']])) ? $this->modulesMap[$item['nav_item_type_id']]['module_name'] : false,
                    'container' => $item['container'],
                    'depth' => count(explode('/', $alias)),
                    'is_url_strict_parsing_disabled' => $item['is_url_strict_parsing_disabled'],
                ];
            }
            
            $this->setHasCache($cacheKey, $languageContainer);
        }
        
        return $languageContainer;
    }
private function loadLanguageContainer($langShortCode)
    {
        $cacheKey = $this->_cachePrefix.$langShortCode;
        
        $languageContainer = $this->getHasCache($cacheKey);
        
        if ($languageContainer === false) {
            $lang = $this->getLanguage($langShortCode);
    
            if (!$lang) {
                throw new NotFoundHttpException(sprintf("The requested language '%s' does not exist in language table", $langShortCode));
            }
    
            $data = $this->getNavData($lang['id']);
    
            $index = $this->buildIndexForContainer($data);
    
            $languageContainer = [];
    
            // $key = cms_nav_item.id (as of indexBy('id'))
            foreach ($data as $key => $item) {
                $alias = $item['alias'];
    
                if ($item['parent_nav_id'] > 0 && array_key_exists($item['parent_nav_id'], $index)) {
                    $alias = $index[$item['parent_nav_id']].'/'.$item['alias'];
                }
    
                $languageContainer[$key] = [
                    'id' => $item['id'],
                    'nav_id' => $item['nav_id'],
                    'lang' => $lang['short_code'],
                    'link' => $this->buildItemLink($alias, $langShortCode),
                    'title' => $this->encodeValue($item['title']),
                    'title_tag' => $this->encodeValue($item['title_tag']),
                    'alias' => $alias,
                    'description' => $this->encodeValue($item['description']),
                    'keywords' => $this->encodeValue($item['keywords']),
                    'create_user_id' => $item['create_user_id'],
                    'update_user_id' => $item['update_user_id'],
                    'timestamp_create' => $item['timestamp_create'],
                    'timestamp_update' => $item['timestamp_update'],
                    'is_home' => $item['is_home'],
                    'parent_nav_id' => $item['parent_nav_id'],
                    'sort_index' => $item['sort_index'],
                    'is_hidden' => $item['is_hidden'],
                    'type' => $item['nav_item_type'],
                    'image_id' => $item['image_id'],
                    'redirect' => ($item['nav_item_type'] == 3 && isset($this->redirectMap[$item['nav_item_type_id']])) ? $this->redirectMap[$item['nav_item_type_id']] : false,
                    'module_name' => ($item['nav_item_type'] == 2 && isset($this->modulesMap[$item['nav_item_type_id']])) ? $this->modulesMap[$item['nav_item_type_id']]['module_name'] : false,
                    'container' => $item['container'],
                    'depth' => count(explode('/', $alias)),
                    'is_url_strict_parsing_disabled' => $item['is_url_strict_parsing_disabled'],
                ];
            }
            
            $this->setHasCache($cacheKey, $languageContainer);
        }
        
        return $languageContainer;
    }
private function loadLanguageContainer ( $ langShortCode ) { $ cacheKey = $ this -> _cachePrefix . $ langShortCode ; $ languageContainer = $ this -> getHasCache ( $ cacheKey ) ; if ( $ languageContainer === false ) { $ lang = $ this -> getLanguage ( $ langShortCode ) ; if ( ! $ lang ) { throw new NotFoundHttpException ( sprintf ( "The requested language '%s' does not exist in language table" , $ langShortCode ) ) ; } $ data = $ this -> getNavData ( $ lang [ 'id' ] ) ; $ index = $ this -> buildIndexForContainer ( $ data ) ; $ languageContainer = [ ] ; // $key = cms_nav_item.id (as of indexBy('id')) foreach ( $ data as $ key => $ item ) { $ alias = $ item [ 'alias' ] ; if ( $ item [ 'parent_nav_id' ] > 0 && array_key_exists ( $ item [ 'parent_nav_id' ] , $ index ) ) { $ alias = $ index [ $ item [ 'parent_nav_id' ] ] . '/' . $ item [ 'alias' ] ; } $ languageContainer [ $ key ] = [ 'id' => $ item [ 'id' ] , 'nav_id' => $ item [ 'nav_id' ] , 'lang' => $ lang [ 'short_code' ] , 'link' => $ this -> buildItemLink ( $ alias , $ langShortCode ) , 'title' => $ this -> encodeValue ( $ item [ 'title' ] ) , 'title_tag' => $ this -> encodeValue ( $ item [ 'title_tag' ] ) , 'alias' => $ alias , 'description' => $ this -> encodeValue ( $ item [ 'description' ] ) , 'keywords' => $ this -> encodeValue ( $ item [ 'keywords' ] ) , 'create_user_id' => $ item [ 'create_user_id' ] , 'update_user_id' => $ item [ 'update_user_id' ] , 'timestamp_create' => $ item [ 'timestamp_create' ] , 'timestamp_update' => $ item [ 'timestamp_update' ] , 'is_home' => $ item [ 'is_home' ] , 'parent_nav_id' => $ item [ 'parent_nav_id' ] , 'sort_index' => $ item [ 'sort_index' ] , 'is_hidden' => $ item [ 'is_hidden' ] , 'type' => $ item [ 'nav_item_type' ] , 'image_id' => $ item [ 'image_id' ] , 'redirect' => ( $ item [ 'nav_item_type' ] == 3 && isset ( $ this -> redirectMap [ $ item [ 'nav_item_type_id' ] ] ) ) ? $ this -> redirectMap [ $ item [ 'nav_item_type_id' ] ] : false , 'module_name' => ( $ item [ 'nav_item_type' ] == 2 && isset ( $ this -> modulesMap [ $ item [ 'nav_item_type_id' ] ] ) ) ? $ this -> modulesMap [ $ item [ 'nav_item_type_id' ] ] [ 'module_name' ] : false , 'container' => $ item [ 'container' ] , 'depth' => count ( explode ( '/' , $ alias ) ) , 'is_url_strict_parsing_disabled' => $ item [ 'is_url_strict_parsing_disabled' ] , ] ; } $ this -> setHasCache ( $ cacheKey , $ languageContainer ) ; } return $ languageContainer ; }
Helper method to load all contaienr data for a specific langauge.

@param string $langShortCode e.g. de
@return array
@throws NotFoundHttpException
Helper method to load all contaienr data for a specific langauge .