Update to Drupal 8.0.0-beta15. For more information, see: https://www.drupal.org/node/2563023
This commit is contained in:
parent
2720a9ec4b
commit
f3791f1da3
1898 changed files with 54300 additions and 11481 deletions
|
@ -9,6 +9,7 @@ namespace Drupal\system;
|
|||
|
||||
use Drupal\Component\Utility\Unicode;
|
||||
use Drupal\Core\Access\AccessManagerInterface;
|
||||
use Drupal\Core\Breadcrumb\Breadcrumb;
|
||||
use Drupal\Core\Breadcrumb\BreadcrumbBuilderInterface;
|
||||
use Drupal\Core\Config\ConfigFactoryInterface;
|
||||
use Drupal\Core\Controller\TitleResolverInterface;
|
||||
|
@ -125,6 +126,7 @@ class PathBasedBreadcrumbBuilder implements BreadcrumbBuilderInterface {
|
|||
* {@inheritdoc}
|
||||
*/
|
||||
public function build(RouteMatchInterface $route_match) {
|
||||
$breadcrumb = new Breadcrumb();
|
||||
$links = array();
|
||||
|
||||
// General path-based breadcrumbs. Use the actual request path, prior to
|
||||
|
@ -139,17 +141,21 @@ class PathBasedBreadcrumbBuilder implements BreadcrumbBuilderInterface {
|
|||
// /user is just a redirect, so skip it.
|
||||
// @todo Find a better way to deal with /user.
|
||||
$exclude['/user'] = TRUE;
|
||||
// Because this breadcrumb builder is entirely path-based, vary by the
|
||||
// 'url.path' cache context.
|
||||
$breadcrumb->setCacheContexts(['url.path']);
|
||||
while (count($path_elements) > 1) {
|
||||
array_pop($path_elements);
|
||||
// Copy the path elements for up-casting.
|
||||
$route_request = $this->getRequestForPath('/' . implode('/', $path_elements), $exclude);
|
||||
if ($route_request) {
|
||||
$route_match = RouteMatch::createFromRequest($route_request);
|
||||
$access = $this->accessManager->check($route_match, $this->currentUser);
|
||||
if ($access) {
|
||||
$access = $this->accessManager->check($route_match, $this->currentUser, NULL, TRUE);
|
||||
// The set of breadcrumb links depends on the access result, so merge
|
||||
// the access result's cacheability metadata.
|
||||
$breadcrumb = $breadcrumb->addCacheableDependency($access);
|
||||
if ($access->isAllowed()) {
|
||||
$title = $this->titleResolver->getTitle($route_request, $route_match->getRouteObject());
|
||||
}
|
||||
if ($access) {
|
||||
if (!isset($title)) {
|
||||
// Fallback to using the raw path component as the title if the
|
||||
// route is missing a _title or _title_callback attribute.
|
||||
|
@ -165,7 +171,8 @@ class PathBasedBreadcrumbBuilder implements BreadcrumbBuilderInterface {
|
|||
// Add the Home link, except for the front page.
|
||||
$links[] = Link::createFromRoute($this->t('Home'), '<front>');
|
||||
}
|
||||
return array_reverse($links);
|
||||
|
||||
return $breadcrumb->setLinks(array_reverse($links));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Reference in a new issue