src/Sulu/Bundle/WebsiteBundle/Navigation/NavigationMapper.php
private function generateNavigation(
        $contents,
        $webspace,
        $language,
        $flat = false,
        $context = null,
        $breakOnNotInNavigation = false,
        $recursive = true
    ) {
        $result = [];

        /** @var StructureInterface $content */
        foreach ($contents as $content) {
            if ($this->inNavigation($content, $context)) {
                $url = $content->getResourceLocator();
                $title = $content->getNodeName();
                $children = $recursive ? $this->generateChildNavigation($content, $webspace, $language, $flat, $context) : [];

                if (false === $flat) {
                    $result[] = new NavigationItem(
                        $title,
                        $url,
                        isset($content->getExt()['excerpt']) ? $content->getExt()['excerpt'] : null,
                        $children,
                        $content->getUuid(),
                        $content->getNodeType()
                    );
                } else {
                    $result[] = new NavigationItem(
                        $title,
                        $url,
                        isset($content->getExt()['excerpt']) ? $content->getExt()['excerpt'] : null,
                        null,
                        $content->getUuid(),
                        $content->getNodeType()
                    );
                    $result = array_merge($result, $children);
                }
            } elseif (true === $flat) {
                $children = $recursive ? $this->generateChildNavigation($content, $webspace, $language, $flat, $context) : [];
                $result = array_merge($result, $children);
            } elseif ($breakOnNotInNavigation) {
                break;
            }
        }

        return $result;
    }
private function generateNavigation(
        $contents,
        $webspace,
        $language,
        $flat = false,
        $context = null,
        $breakOnNotInNavigation = false,
        $recursive = true
    ) {
        $result = [];

        /** @var StructureInterface $content */
        foreach ($contents as $content) {
            if ($this->inNavigation($content, $context)) {
                $url = $content->getResourceLocator();
                $title = $content->getNodeName();
                $children = $recursive ? $this->generateChildNavigation($content, $webspace, $language, $flat, $context) : [];

                if (false === $flat) {
                    $result[] = new NavigationItem(
                        $title,
                        $url,
                        isset($content->getExt()['excerpt']) ? $content->getExt()['excerpt'] : null,
                        $children,
                        $content->getUuid(),
                        $content->getNodeType()
                    );
                } else {
                    $result[] = new NavigationItem(
                        $title,
                        $url,
                        isset($content->getExt()['excerpt']) ? $content->getExt()['excerpt'] : null,
                        null,
                        $content->getUuid(),
                        $content->getNodeType()
                    );
                    $result = array_merge($result, $children);
                }
            } elseif (true === $flat) {
                $children = $recursive ? $this->generateChildNavigation($content, $webspace, $language, $flat, $context) : [];
                $result = array_merge($result, $children);
            } elseif ($breakOnNotInNavigation) {
                break;
            }
        }

        return $result;
    }
private function generateNavigation ( $ contents , $ webspace , $ language , $ flat = false , $ context = null , $ breakOnNotInNavigation = false , $ recursive = true ) { $ result = [ ] ; /** @var StructureInterface $content */ foreach ( $ contents as $ content ) { if ( $ this -> inNavigation ( $ content , $ context ) ) { $ url = $ content -> getResourceLocator ( ) ; $ title = $ content -> getNodeName ( ) ; $ children = $ recursive ? $ this -> generateChildNavigation ( $ content , $ webspace , $ language , $ flat , $ context ) : [ ] ; if ( false === $ flat ) { $ result [ ] = new NavigationItem ( $ title , $ url , isset ( $ content -> getExt ( ) [ 'excerpt' ] ) ? $ content -> getExt ( ) [ 'excerpt' ] : null , $ children , $ content -> getUuid ( ) , $ content -> getNodeType ( ) ) ; } else { $ result [ ] = new NavigationItem ( $ title , $ url , isset ( $ content -> getExt ( ) [ 'excerpt' ] ) ? $ content -> getExt ( ) [ 'excerpt' ] : null , null , $ content -> getUuid ( ) , $ content -> getNodeType ( ) ) ; $ result = array_merge ( $ result , $ children ) ; } } elseif ( true === $ flat ) { $ children = $ recursive ? $ this -> generateChildNavigation ( $ content , $ webspace , $ language , $ flat , $ context ) : [ ] ; $ result = array_merge ( $ result , $ children ) ; } elseif ( $ breakOnNotInNavigation ) { break ; } } return $ result ; }
generate navigation items for given contents.
generate navigation items for given contents .