You are here

public function TranslationJobBreadcrumbBuilder::build in Lingotek Translation 4.0.x

Same name and namespace in other branches
  1. 8.2 src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  2. 3.0.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  3. 3.1.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  4. 3.2.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  5. 3.3.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  6. 3.4.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  7. 3.5.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  8. 3.6.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  9. 3.7.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()
  10. 3.8.x src/Breadcrumb/TranslationJobBreadcrumbBuilder.php \Drupal\lingotek\Breadcrumb\TranslationJobBreadcrumbBuilder::build()

Builds the breadcrumb.

Parameters

\Drupal\Core\Routing\RouteMatchInterface $route_match: The current route match.

Return value

\Drupal\Core\Breadcrumb\Breadcrumb A breadcrumb.

Overrides BreadcrumbBuilderInterface::build

File

src/Breadcrumb/TranslationJobBreadcrumbBuilder.php, line 71

Class

TranslationJobBreadcrumbBuilder

Namespace

Drupal\lingotek\Breadcrumb

Code

public function build(RouteMatchInterface $route_match) {
  $breadcrumb = new Breadcrumb();
  $access = $this->accessManager
    ->check($route_match, $this->currentUser, NULL, TRUE);
  $breadcrumb
    ->addCacheableDependency($access);
  $breadcrumb
    ->addCacheContexts([
    'url.path',
  ]);
  $links = [];
  if ($access
    ->isAllowed()) {
    if ($route_match
      ->getRouteName() !== 'lingotek.translation_jobs') {
      $title = $this->titleResolver
        ->getTitle($this->request, $route_match
        ->getRouteObject());
      $route = $route_match
        ->getRouteMatchFromRequest($this->request);
      $links[] = Link::createFromRoute($title, $route_match
        ->getRouteName(), [
        'job_id' => $route
          ->getParameter('job_id'),
      ]);
    }
    $links[] = Link::createFromRoute($this
      ->t('Translation Jobs'), 'lingotek.translation_jobs');
    $links[] = Link::createFromRoute($this
      ->t('Lingotek Translation Dashboard'), 'lingotek.dashboard');
    $links[] = Link::createFromRoute($this
      ->t('Administration'), 'system.admin');
  }
  $links[] = Link::createFromRoute($this
    ->t('Home'), '<front>');
  return $breadcrumb
    ->setLinks(array_reverse($links));
}