core-bundle/src/EventListener/BackendMenuListener.php
public function onBuild(MenuEvent $event): void
    {
        $token = $this->tokenStorage->getToken();

        if (null === $token) {
            return;
        }

        $user = $token->getUser();

        if (!$user instanceof BackendUser) {
            return;
        }

        $factory = $event->getFactory();
        $tree = $event->getTree();
        $modules = $user->navigation();

        foreach ($modules as $categoryName => $categoryData) {
            $categoryNode = $tree->getChild($categoryName);

            if (!$categoryNode) {
                $categoryNode = $this->createNode($factory, $categoryName, $categoryData);

                if (isset($categoryData['class']) && preg_match('/\bnode-collapsed\b/', $categoryData['class'])) {
                    $categoryNode->setDisplayChildren(false);
                }

                $tree->addChild($categoryNode);
            }

            // Create the child nodes
            foreach ($categoryData['modules'] as $moduleName => $moduleData) {
                $moduleNode = $this->createNode($factory, $moduleName, $moduleData);
                $moduleNode->setCurrent((bool) $moduleData['isActive']);

                $categoryNode->addChild($moduleNode);
            }
        }
    }
public function onBuild(MenuEvent $event): void
    {
        $token = $this->tokenStorage->getToken();

        if (null === $token) {
            return;
        }

        $user = $token->getUser();

        if (!$user instanceof BackendUser) {
            return;
        }

        $factory = $event->getFactory();
        $tree = $event->getTree();
        $modules = $user->navigation();

        foreach ($modules as $categoryName => $categoryData) {
            $categoryNode = $tree->getChild($categoryName);

            if (!$categoryNode) {
                $categoryNode = $this->createNode($factory, $categoryName, $categoryData);

                if (isset($categoryData['class']) && preg_match('/\bnode-collapsed\b/', $categoryData['class'])) {
                    $categoryNode->setDisplayChildren(false);
                }

                $tree->addChild($categoryNode);
            }

            // Create the child nodes
            foreach ($categoryData['modules'] as $moduleName => $moduleData) {
                $moduleNode = $this->createNode($factory, $moduleName, $moduleData);
                $moduleNode->setCurrent((bool) $moduleData['isActive']);

                $categoryNode->addChild($moduleNode);
            }
        }
    }
public function onBuild ( MenuEvent $ event ) : void { $ token = $ this -> tokenStorage -> getToken ( ) ; if ( null === $ token ) { return ; } $ user = $ token -> getUser ( ) ; if ( ! $ user instanceof BackendUser ) { return ; } $ factory = $ event -> getFactory ( ) ; $ tree = $ event -> getTree ( ) ; $ modules = $ user -> navigation ( ) ; foreach ( $ modules as $ categoryName => $ categoryData ) { $ categoryNode = $ tree -> getChild ( $ categoryName ) ; if ( ! $ categoryNode ) { $ categoryNode = $ this -> createNode ( $ factory , $ categoryName , $ categoryData ) ; if ( isset ( $ categoryData [ 'class' ] ) && preg_match ( '/\bnode-collapsed\b/' , $ categoryData [ 'class' ] ) ) { $ categoryNode -> setDisplayChildren ( false ) ; } $ tree -> addChild ( $ categoryNode ) ; } // Create the child nodes foreach ( $ categoryData [ 'modules' ] as $ moduleName => $ moduleData ) { $ moduleNode = $ this -> createNode ( $ factory , $ moduleName , $ moduleData ) ; $ moduleNode -> setCurrent ( ( bool ) $ moduleData [ 'isActive' ] ) ; $ categoryNode -> addChild ( $ moduleNode ) ; } } }
Adds the back end user navigation.
Adds the back end user navigation .