You are here

public function LanguageSelectionPageSubscriber::redirectToLanguageSelectionPage in Language Selection Page 8.2

Event callback.

Parameters

\Symfony\Component\HttpKernel\Event\FilterResponseEvent $event: The event object.

Return value

bool Returns FALSE.

File

src/EventSubscriber/LanguageSelectionPageSubscriber.php, line 111

Class

LanguageSelectionPageSubscriber
Provides a LanguageSelectionPageSubscriber.

Namespace

Drupal\language_selection_page\EventSubscriber

Code

public function redirectToLanguageSelectionPage(FilterResponseEvent $event) {
  $this->event = $event;
  $config = $this->configFactory
    ->get('language_selection_page.negotiation');
  $manager = $this->languageSelectionPageConditionManager;
  foreach ($manager
    ->getDefinitions() as $def) {

    /** @var ExecutableInterface $condition_plugin */
    $condition_plugin = $manager
      ->createInstance($def['id'], $config
      ->get());
    if (!$manager
      ->execute($condition_plugin)) {
      return FALSE;
    }
  }
  if (!$this
    ->getLanguage()) {
    $request = $this->event
      ->getRequest();
    $url = sprintf('%s?destination=%s', $request
      ->getBasePath() . $config
      ->get('path'), $this->currentPath
      ->getPath($request));
    $response = new RedirectResponse($url);
    $event
      ->setResponse($response);
  }
  return FALSE;
}