Пример #1
0
 protected function setUp()
 {
     // Localizador de Serviços
     $serviceLocator = new ServiceManager();
     // Resolução de Scripts
     $resolver = new TemplateMapResolver(['error/404' => './module/Balance/view/error/404.phtml', 'error/500' => './module/Balance/view/error/500.phtml', 'layout/page-header' => './module/Balance/view/layout/page-header.phtml', 'layout/navigation' => './module/Balance/view/layout/navigation.phtml']);
     // Rederizador
     $renderer = (new PhpRenderer())->setResolver($resolver);
     // Camada de Visualização
     $view = new ViewModel();
     // Navegação
     $navigation = new Navigation();
     // Página Principal
     $page = new Page(['label' => 'Balance']);
     // Adicionar Página
     $navigation->addPage($page);
     // Configurar Serviço
     $serviceLocator->setService('navigation', $navigation);
     // Auxiliar de Navegação
     $helper = (new Helper())->setContainer($navigation)->setView($renderer);
     // Configurar Auxiliar como Plugin
     $renderer->getHelperPluginManager()->setService('navigation', $helper)->setServiceLocator($serviceLocator);
     // Configurações
     $this->renderer = $renderer;
     $this->view = $view;
     $this->page = $page;
 }
 /**
  * Get the feed list and the posts of the feed we are looking at now
  *
  * @return void
  */
 public function indexAction()
 {
     $viewData = array();
     $flashMessenger = $this->flashMessenger();
     $username = $this->params()->fromRoute('username');
     $currentFeedId = $this->params()->fromRoute('feed_id');
     $userData = ApiClient::getUser($username);
     if ($userData !== FALSE) {
         $hydrator = new ClassMethods();
         $user = $hydrator->hydrate($userData, new User());
     } else {
         $this->getResponse()->setStatusCode(404);
         return;
     }
     $subscribeForm = new SubscribeForm();
     $unsubscribeForm = new UnsubscribeForm();
     $subscribeForm->setAttribute('action', $this->url()->fromRoute('feeds-subscribe', array('username' => $username)));
     $unsubscribeForm->setAttribute('action', $this->url()->fromRoute('feeds-unsubscribe', array('username' => $username)));
     $hydrator = new ClassMethods();
     $response = ApiClient::getFeeds($username);
     $feeds = array();
     foreach ($response as $r) {
         $feeds[$r['id']] = $hydrator->hydrate($r, new Feed());
     }
     if ($currentFeedId === null && !empty($feeds)) {
         $currentFeedId = reset($feeds)->getId();
     }
     $feedsMenu = new Navigation();
     $router = $this->getEvent()->getRouter();
     $routeMatch = $this->getEvent()->getRouteMatch()->setParam('feed_id', $currentFeedId);
     foreach ($feeds as $f) {
         $feedsMenu->addPage(AbstractPage::factory(array('title' => $f->getTitle(), 'icon' => $f->getIcon(), 'route' => 'feeds', 'routeMatch' => $routeMatch, 'router' => $router, 'params' => array('username' => $username, 'feed_id' => $f->getId()))));
     }
     $currentFeed = $currentFeedId != null ? $feeds[$currentFeedId] : null;
     if ($currentFeed != null) {
         $paginator = new Paginator(new ArrayAdapter($currentFeed->getArticles()));
         $paginator->setItemCountPerPage(5);
         $paginator->setCurrentPageNumber($this->params()->fromRoute('page'));
         $viewData['paginator'] = $paginator;
         $viewData['feedId'] = $currentFeedId;
     }
     $unsubscribeForm->get('feed_id')->setValue($currentFeedId);
     $viewData['subscribeForm'] = $subscribeForm;
     $viewData['unsubscribeForm'] = $unsubscribeForm;
     $viewData['username'] = $username;
     $viewData['feedsMenu'] = $feedsMenu;
     $viewData['user'] = $user;
     $viewData['paginator'] = $paginator;
     $viewData['feedId'] = $currentFeedId;
     $viewData['feed'] = $currentFeed;
     $this->layout()->username = $username;
     if ($flashMessenger->hasMessages()) {
         $viewData['flashMessages'] = $flashMessenger->getMessages();
     }
     return $viewData;
 }
Пример #3
0
 protected function renderContainer(\Zend\Navigation\Navigation $container, $renderIcons = true, $activeIconInverse = true, array $options = array())
 {
     $pages = $container->getPages();
     $html = '';
     foreach ($pages as $page) {
         /* @var $page \Zend\Navigation\Page\AbstractPage */
         if ($page->hasPages()) {
             //Dropdown menu
             $html .= "\n" . $this->renderDropdown($page, $renderIcons, $activeIconInverse, $options);
         } else {
             $html .= "\n" . $this->renderItem($page, $renderIcons, $activeIconInverse, false, $options);
         }
     }
     $html = $this->decorateContainer($html, $container, $renderIcons, $activeIconInverse, $options);
     return $html;
 }
Пример #4
0
 public function addPage($page)
 {
     return parent::addPage($page);
     // TODO: Change the autogenerated stub
 }
Пример #5
0
 public function testGetChildrenShouldReturnNullWhenContainerIsEmpty()
 {
     $container = new Navigation\Navigation();
     $this->assertEquals(null, $container->getChildren());
 }
Пример #6
0
 /**
  * @group GH-5929
  */
 public function testRemovePageRecursively()
 {
     $container = new Navigation\Navigation(array(array('route' => 'foo', 'pages' => array(array('route' => 'bar', 'pages' => array(array('route' => 'baz')))))));
     $container->removePage($container->findOneBy('route', 'baz'), true);
     $this->assertNull($container->findOneBy('route', 'baz'));
     $container->removePage($container->findOneBy('route', 'bar'), true);
     $this->assertNull($container->findOneBy('route', 'bar'));
 }