/** * {@inheritdoc} */ public function getDerivativeDefinitions($base_plugin_definition) { $this->derivatives = array(); if ($default = $this->searchPageRepository->getDefaultSearchPage()) { $active_search_pages = $this->searchPageRepository->getActiveSearchPages(); foreach ($this->searchPageRepository->sortSearchPages($active_search_pages) as $entity_id => $entity) { $this->derivatives[$entity_id] = array('title' => $entity->label(), 'route_name' => 'search.view_' . $entity_id, 'base_route' => 'search.plugins:' . $default, 'weight' => $entity->getWeight()); } } return $this->derivatives; }
/** * Returns an array of route objects. * * @return \Symfony\Component\Routing\Route[] * An array of route objects. */ public function routes() { $routes = array(); // @todo Decide if /search should continue to redirect to /search/$default, // or just perform the appropriate search. if ($default_page = $this->searchPageRepository->getDefaultSearchPage()) { $routes['search.view'] = new Route('/search', array('_content' => 'Drupal\\search\\Controller\\SearchController::redirectSearchPage', '_title' => 'Search', 'entity' => $default_page), array('_entity_access' => 'entity.view', '_permission' => 'search content'), array('parameters' => array('entity' => array('type' => 'entity:search_page')))); } $active_pages = $this->searchPageRepository->getActiveSearchPages(); foreach ($active_pages as $entity_id => $entity) { $routes["search.view_{$entity_id}"] = new Route('/search/' . $entity->getPath(), array('_content' => 'Drupal\\search\\Controller\\SearchController::view', '_title' => 'Search', 'entity' => $entity_id), array('_entity_access' => 'entity.view', '_permission' => 'search content'), array('parameters' => array('entity' => array('type' => 'entity:search_page')))); } return $routes; }