3 namespace Drupal\entity_browser\Routing;
5 use Drupal\Core\Extension\ModuleHandlerInterface;
6 use Drupal\Core\Routing\Enhancer\RouteEnhancerInterface;
7 use Symfony\Component\HttpFoundation\Request;
8 use Symfony\Component\Routing\Route;
11 * Enhances Entity browser edit/add form routes to display a message if ctools is missing.
13 class CtoolsFallbackRouteEnhancer implements RouteEnhancerInterface {
16 * The module handler service.
18 * @var \Drupal\Core\Extension\ModuleHandlerInterface
20 protected $moduleHandler;
23 * Constructs a CtoolsFallbackRouteEnhancer object.
25 * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
26 * Module handler service.
28 public function __construct(ModuleHandlerInterface $module_handler) {
29 $this->moduleHandler = $module_handler;
35 public function enhance(array $defaults, Request $request) {
36 if (!$this->moduleHandler->moduleExists('ctools')) {
37 $defaults['_controller'] = '\Drupal\entity_browser\Controllers\CtoolsFallback::displayMessage';
46 public function applies(Route $route) {
47 return $route->hasDefault('_entity_wizard') && strpos($route->getDefault('_entity_wizard'), 'entity_browser.') === 0;