public function provide($container)
 {
     $instance = $this->instanceManager->getInstanceFromRequest();
     $pages = [];
     try {
         $container = $this->navigationManager->findContainerByNameAndInstance($container, $instance);
     } catch (ContainerNotFoundException $e) {
         return [];
     }
     $key = hash('sha256', serialize($container));
     if ($this->storage->hasItem($key)) {
         return $this->storage->getItem($key);
     }
     foreach ($container->getPages() as $page) {
         $addPage = $this->buildPage($page);
         $hasUri = isset($addPage['uri']);
         $hasMvc = isset($addPage['action']) || isset($addPage['controller']) || isset($addPage['route']);
         $hasProvider = isset($addPage['provider']);
         if ($hasUri || $hasMvc || $hasProvider) {
             $pages[] = $addPage;
         }
     }
     $this->storage->setItem($key, $pages);
     return $pages;
 }
Example #2
0
 public function __construct(EntityManager $entityManager, NavigationManagerInterface $navigationManager)
 {
     parent::__construct('container');
     $hydrator = new ObjectHydrator($entityManager);
     $filter = new InputFilter();
     $types = [];
     foreach ($navigationManager->getTypes() as $type) {
         $types[$type->getId()] = $type->getName();
     }
     $this->setHydrator($hydrator);
     $this->setInputFilter($filter);
     $this->add((new Select('type'))->setLabel('Type:')->setOptions(['value_options' => $types]));
     $this->add(['type' => 'Common\\Form\\Element\\ObjectHidden', 'name' => 'instance', 'options' => ['object_manager' => $entityManager, 'target_class' => 'Navigation\\Entity\\Container']]);
     $this->add((new Submit('submit'))->setValue('Save')->setAttribute('class', 'btn btn-success pull-right'));
     $filter->add(['name' => 'type', 'required' => true]);
     $filter->add(['name' => 'instance', 'required' => true]);
 }
 public function updateParameterAction()
 {
     $parameter = $this->navigationManager->getParameter($this->params('parameter'));
     $this->assertGranted('navigation.manage', $parameter->getPage());
     $this->parameterForm->bind($parameter);
     if ($this->getRequest()->isPost()) {
         $data = $this->params()->fromPost();
         $this->parameterForm->setData($data);
         if ($this->parameterForm->isValid()) {
             $this->navigationManager->updateParameter($this->parameterForm);
             $this->navigationManager->flush();
             return $this->redirect()->toUrl($this->referer()->fromStorage());
         }
     } else {
         $this->referer()->store();
     }
     $view = new ViewModel(['form' => $this->parameterForm]);
     $view->setTemplate('navigation/parameter/update');
     return $view;
 }