Same name and namespace in other branches
  1. 8.x-1.x src/TitleResolver.php \Drupal\easy_breadcrumb\TitleResolver::getTitle()

Fichier

src/TitleResolver.php, line 72

Classe

TitleResolver
Class TitleResolver.

Namespace

Drupal\easy_breadcrumb

Code

public function getTitle(Request $request, Route $route) {
    $url = Url::fromUri("internal:" . $request->getRequestUri());
    $route_parts = explode(".", $url->getRouteName());
    $entity = NULL;
    $params = $url->getRouteParameters();
    if ($route_parts[0] === 'entity' && $route_parts[2] === 'canonical') {
        $entity_type = $route_parts[1];
        $entity = $this->entityTypeManager
            ->getStorage($entity_type)
            ->load($params[$entity_type]);
    }
    if ($entity !== NULL) {
        $current_langcode = $this->languageManager
            ->getCurrentLanguage()
            ->getId();
        if ($entity instanceof TranslatableInterface && $entity->hasTranslation($current_langcode)) {
            $entity = $entity->getTranslation($current_langcode);
        }
        $alternative_title_field = $this->config
            ->get(EasyBreadcrumbConstants::ALTERNATIVE_TITLE_FIELD);
        if ($entity instanceof FieldableEntityInterface && $entity->hasField($alternative_title_field) && !$entity->get($alternative_title_field)
            ->isEmpty()) {
            return Xss::filter($entity->get($alternative_title_field)->value);
        }
    }
    return parent::getTitle($request, $route);
}