You are here

SearchViewRoute.php in Google Search Appliance 8

File

src/Routing/SearchViewRoute.php
View source
<?php

namespace Drupal\google_appliance\Routing;

use Drupal;
use Symfony\Component\Routing\Route;

/**
 * Class DynamicRoute.
 */
class SearchViewRoute {
  const ROUTE_NAME = 'google_appliance.search_view';

  /**
   * Module settings.
   *
   * @var \Drupal\Core\Config\ImmutableConfig
   */
  protected $settings;

  /**
   * SearchViewRoute constructor.
   *
   * @todo: Proper D.I.
   */
  public function __construct() {
    $this->settings = Drupal::configFactory()
      ->get('google_appliance.settings');
  }

  /**
   * Get route dynamically from system settings.
   */
  public function getRoute() {
    $gsaDisplaySettings = $this->settings
      ->get('display_settings');
    $drupalPath = $gsaDisplaySettings['drupal_path'];
    $title = $gsaDisplaySettings['search_title'];
    if ($drupalPath === NULL) {
      return NULL;
    }
    $routes[self::ROUTE_NAME] = new Route('/' . $drupalPath . '/{search_query}/{result_sort}', [
      '_title' => $title,
      '_controller' => '\\Drupal\\google_appliance\\Controller\\SearchViewController::get',
      'search_query' => '',
      'result_sort' => '',
    ], [
      '_permission' => 'access google appliance content',
    ]);
    return $routes;
  }

}

Classes

Namesort descending Description
SearchViewRoute Class DynamicRoute.