diff core/lib/Drupal/Core/Routing/AdminContext.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/lib/Drupal/Core/Routing/AdminContext.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,49 @@
+<?php
+
+namespace Drupal\Core\Routing;
+
+use Symfony\Component\Routing\Route;
+
+/**
+ * Provides a helper class to determine whether the route is an admin one.
+ */
+class AdminContext {
+
+  /**
+   * The route match.
+   *
+   * @var \Drupal\Core\Routing\RouteMatchInterface
+   */
+  protected $routeMatch;
+
+  /**
+   * Construct a new admin context helper instance.
+   *
+   * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
+   *   The route match.
+   */
+  public function __construct(RouteMatchInterface $route_match) {
+    $this->routeMatch = $route_match;
+  }
+
+  /**
+   * Determines whether the active route is an admin one.
+   *
+   * @param \Symfony\Component\Routing\Route $route
+   *   (optional) The route to determine whether it is an admin one. Per default
+   *   this falls back to the route object on the active request.
+   *
+   * @return bool
+   *   Returns TRUE if the route is an admin one, otherwise FALSE.
+   */
+  public function isAdminRoute(Route $route = NULL) {
+    if (!$route) {
+      $route = $this->routeMatch->getRouteObject();
+      if (!$route) {
+        return FALSE;
+      }
+    }
+    return (bool) $route->getOption('_admin_route');
+  }
+
+}