You are here

public function AdminPathConfigEntityConverter::applies in Drupal 10

Same name in this branch
  1. 10 core/lib/Drupal/Core/ParamConverter/AdminPathConfigEntityConverter.php \Drupal\Core\ParamConverter\AdminPathConfigEntityConverter::applies()
  2. 10 core/lib/Drupal/Core/ProxyClass/ParamConverter/AdminPathConfigEntityConverter.php \Drupal\Core\ProxyClass\ParamConverter\AdminPathConfigEntityConverter::applies()
Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/ParamConverter/AdminPathConfigEntityConverter.php \Drupal\Core\ParamConverter\AdminPathConfigEntityConverter::applies()
  2. 9 core/lib/Drupal/Core/ParamConverter/AdminPathConfigEntityConverter.php \Drupal\Core\ParamConverter\AdminPathConfigEntityConverter::applies()

File

core/lib/Drupal/Core/ParamConverter/AdminPathConfigEntityConverter.php, line 87

Class

AdminPathConfigEntityConverter
Makes sure the unmodified ConfigEntity is loaded on admin pages.

Namespace

Drupal\Core\ParamConverter

Code

public function applies($definition, $name, Route $route) {
  if (isset($definition['with_config_overrides']) && $definition['with_config_overrides']) {
    return FALSE;
  }
  if (parent::applies($definition, $name, $route)) {
    $entity_type_id = substr($definition['type'], strlen('entity:'));

    // If the entity type is dynamic, defer checking to self::convert().
    if (strpos($entity_type_id, '{') === 0) {
      return TRUE;
    }

    // As we only want to override EntityConverter for ConfigEntities, find
    // out whether the current entity is a ConfigEntity.
    $entity_type = $this->entityTypeManager
      ->getDefinition($entity_type_id);
    if ($entity_type
      ->entityClassImplements(ConfigEntityInterface::class)) {
      return $this->adminContext
        ->isAdminRoute($route);
    }
  }
  return FALSE;
}