You are here

public function PanelsEverywherePageDisplayVariantSubscriber::onSelectPageDisplayVariant in Panels Everywhere 8.4

Same name and namespace in other branches
  1. 8 src/EventSubscriber/PanelsEverywherePageDisplayVariantSubscriber.php \Drupal\panels_everywhere\EventSubscriber\PanelsEverywherePageDisplayVariantSubscriber::onSelectPageDisplayVariant()

Selects the page display variant.

Parameters

\Drupal\Core\Render\PageDisplayVariantSelectionEvent $event: The event to process.

File

src/EventSubscriber/PanelsEverywherePageDisplayVariantSubscriber.php, line 44

Class

PanelsEverywherePageDisplayVariantSubscriber
Selects the appropriate page display variant from 'site_template'.

Namespace

Drupal\panels_everywhere\EventSubscriber

Code

public function onSelectPageDisplayVariant(PageDisplayVariantSelectionEvent $event) {
  $route = $event
    ->getRouteMatch()
    ->getRouteObject();

  // if this is an admin path, do not process it
  if ($route
    ->getOption('_admin_route')) {
    return;
  }
  if ($variant = $this
    ->getVariantPlugin($route)) {
    $event
      ->setPluginId($variant
      ->getPluginId());
    $event
      ->setPluginConfiguration($variant
      ->getConfiguration());
    $event
      ->setContexts($variant
      ->getContexts());
    $event
      ->stopPropagation();
  }
}