/** * @param SecurityCheckerInterface $securityChecker * @param TokenStorageInterface $tokenStorage * @param RepositoryInterface $repository * @param Router $router * @param string $title */ public function __construct(SecurityCheckerInterface $securityChecker, TokenStorageInterface $tokenStorage, RepositoryInterface $repository, Router $router, $title) { $rootNavigationItem = new NavigationItem($title); $section = new NavigationItem(''); $files = new NavigationItem('symcloud.file'); $files->setIcon('folder-open'); if ($securityChecker->hasPermission('symcloud.files', 'view') && $tokenStorage->getToken() !== null) { $session = $repository->loginByHash($tokenStorage->getToken()->getUser(), 'HEAD'); $references = $session->getReferences(); foreach ($references as $reference) { $referenceItem = new DataNavigationItem($reference->getName(), $router->generate('get_directory', array('reference' => $reference->getHash(), 'name-as-key' => 'true', 'only-directories' => 'true'))); $referenceItem->setDataResultKey('children'); $referenceItem->setAction('symcloud/path:' . $reference->getHash()); $referenceItem->setShowAddButton(false); $files->addChild($referenceItem); } } if ($files->hasChildren()) { $rootNavigationItem->addChild($section); $section->addChild($files); } $this->setNavigation(new Navigation($rootNavigationItem)); }
public function __construct(SecurityCheckerInterface $securityChecker, $title) { $this->securityChecker = $securityChecker; $rootNavigationItem = new NavigationItem($title); $section = new NavigationItem(''); $media = new NavigationItem('navigation.media'); $media->setIcon('image'); if ($this->securityChecker->hasPermission('sulu.media.collections', 'view')) { $collections = new DataNavigationItem('navigation.media.collections', '/admin/api/collections?sortBy=title', $media); $collections->setId('collections-edit'); $collections->setAction('media/collections/root'); $collections->setInstanceName('collections'); $collections->setDataNameKey('title'); $collections->setDataResultKey('collections'); $collections->setShowAddButton(true); $collections->setTitleTranslationKey('navigation.media.collections'); $collections->setNoDataTranslationKey(''); $collections->setAddButtonTranslationKey('navigation.media.collections.add'); $collections->setSearchTranslationKey('navigation.media.collections.search'); } if ($media->hasChildren()) { $section->addChild($media); $rootNavigationItem->addChild($section); } $this->setNavigation(new Navigation($rootNavigationItem)); }