Chris@0: searchPageRepository = $search_page_repository; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public static function create(ContainerInterface $container) { Chris@0: return new static( Chris@0: $container->get('search.search_page_repository') Chris@0: ); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns an array of route objects. Chris@0: * Chris@0: * @return \Symfony\Component\Routing\Route[] Chris@0: * An array of route objects. Chris@0: */ Chris@0: public function routes() { Chris@0: $routes = []; Chris@0: // @todo Decide if /search should continue to redirect to /search/$default, Chris@0: // or just perform the appropriate search. Chris@0: if ($default_page = $this->searchPageRepository->getDefaultSearchPage()) { Chris@0: $routes['search.view'] = new Route( Chris@0: '/search', Chris@0: [ Chris@0: '_controller' => 'Drupal\search\Controller\SearchController::redirectSearchPage', Chris@0: '_title' => 'Search', Chris@0: 'entity' => $default_page, Chris@0: ], Chris@0: [ Chris@0: '_entity_access' => 'entity.view', Chris@0: '_permission' => 'search content', Chris@0: ], Chris@0: [ Chris@0: 'parameters' => [ Chris@0: 'entity' => [ Chris@0: 'type' => 'entity:search_page', Chris@0: ], Chris@0: ], Chris@0: ] Chris@0: ); Chris@0: } Chris@0: $active_pages = $this->searchPageRepository->getActiveSearchPages(); Chris@0: foreach ($active_pages as $entity_id => $entity) { Chris@0: $routes["search.view_$entity_id"] = new Route( Chris@0: '/search/' . $entity->getPath(), Chris@0: [ Chris@0: '_controller' => 'Drupal\search\Controller\SearchController::view', Chris@0: '_title' => 'Search', Chris@0: 'entity' => $entity_id, Chris@0: ], Chris@0: [ Chris@0: '_entity_access' => 'entity.view', Chris@0: '_permission' => 'search content', Chris@0: ], Chris@0: [ Chris@0: 'parameters' => [ Chris@0: 'entity' => [ Chris@0: 'type' => 'entity:search_page', Chris@0: ], Chris@0: ], Chris@0: ] Chris@0: ); Chris@0: Chris@0: $routes["search.help_$entity_id"] = new Route( Chris@0: '/search/' . $entity->getPath() . '/help', Chris@0: [ Chris@0: '_controller' => 'Drupal\search\Controller\SearchController::searchHelp', Chris@0: '_title' => 'Search help', Chris@0: 'entity' => $entity_id, Chris@0: ], Chris@0: [ Chris@0: '_entity_access' => 'entity.view', Chris@0: '_permission' => 'search content', Chris@0: ], Chris@0: [ Chris@0: 'parameters' => [ Chris@0: 'entity' => [ Chris@0: 'type' => 'entity:search_page', Chris@0: ], Chris@0: ], Chris@0: ] Chris@0: ); Chris@0: } Chris@0: return $routes; Chris@0: } Chris@0: Chris@0: }