/** * @param ServiceLocatorInterface $serviceLocator * * @return \Zend\Navigation\Navigation */ public function createService(ServiceLocatorInterface $serviceLocator) { $this->rcmUserService = $serviceLocator->get('RcmUser\\Service\\RcmUserService'); $this->cmsPermissionChecks = $serviceLocator->get('Rcm\\Acl\\CmsPermissionsChecks'); $this->currentSite = $serviceLocator->get('Rcm\\Service\\CurrentSite'); $config = $serviceLocator->get('config'); /** @var \Doctrine\ORM\EntityManagerInterface $entityManager */ $entityManager = $serviceLocator->get('Doctrine\\ORM\\EntityManager'); /** @var \Rcm\Repository\Page $pageRepo */ $this->pageRepo = $entityManager->getRepository('\\Rcm\\Entity\\Page'); $application = $serviceLocator->get('Application'); /** @var RouteMatch $routeMatch */ $routeMatch = $application->getMvcEvent()->getRouteMatch(); if (!in_array($routeMatch->getMatchedRouteName(), $config['Rcm']['RcmCmsPageRouteNames'])) { return parent::createService($serviceLocator); } $pageMatch = $routeMatch->getParam('page', 'index'); if ($pageMatch instanceof Page) { $pageMatch = $pageMatch->getName(); } $this->pageRevision = $routeMatch->getParam('revision', null); $pageTypeMatch = $routeMatch->getParam('pageType', 'n'); if (!empty($pageMatch)) { $this->page = $this->pageRepo->findOneBy(['name' => $pageMatch, 'pageType' => $pageTypeMatch]); } return parent::createService($serviceLocator); }
protected function getPages(ServiceLocatorInterface $serviceLocator) { if (null === $this->pages) { $pages = parent::getPages($serviceLocator); /** @var Configuration $configuration */ $configuration = $serviceLocator->get('EnliteAdminConfiguration'); if ($configuration->getEnableNavigation()) { $this->pages = ArrayUtils::merge($pages, $this->getEntitiesPage($serviceLocator)); } } return $this->pages; }
/** * {@inheritdoc} */ protected function getPagesFromConfig($config = null) { $result = parent::getPagesFromConfig($config); $activeSite = $this->utilityService->getSiteId(); $sites = $this->siteService->findAll(); $sitePages = array(); foreach ($sites as $site) { $isActive = $site->getId() === $activeSite; if ($isActive) { $result[0]['label'] = $site->getEnglishName(); } $sitePages[] = array('label' => $site->getEnglishName(), 'route' => 'select-site', 'active' => $isActive, 'query' => array('siteId' => $site->getId())); } $result[0]['pages'] = $sitePages; return $result; }