Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 16 |
| CommentBreadcrumbBuilder | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
42 | |
0.00% |
0 / 16 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| applies | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 2 |
|||
| build | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 12 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\comment\CommentBreadcrumbBuilder. | |
| */ | |
| namespace Drupal\comment; | |
| use Drupal\Core\Breadcrumb\BreadcrumbBuilderInterface; | |
| use Drupal\Core\Breadcrumb\Breadcrumb; | |
| use Drupal\Core\Entity\EntityManagerInterface; | |
| use Drupal\Core\Link; | |
| use Drupal\Core\Routing\RouteMatchInterface; | |
| use Drupal\Core\StringTranslation\StringTranslationTrait; | |
| /** | |
| * Class to define the comment breadcrumb builder. | |
| */ | |
| class CommentBreadcrumbBuilder implements BreadcrumbBuilderInterface { | |
| use StringTranslationTrait; | |
| /** | |
| * The comment storage. | |
| * | |
| * @var \Drupal\Core\Entity\EntityStorageInterface | |
| */ | |
| protected $storage; | |
| /** | |
| * Constructs the CommentBreadcrumbBuilder. | |
| * | |
| * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager | |
| * The entity manager. | |
| */ | |
| public function __construct(EntityManagerInterface $entity_manager) { | |
| $this->storage = $entity_manager->getStorage('comment'); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function applies(RouteMatchInterface $route_match) { | |
| return $route_match->getRouteName() == 'comment.reply' && $route_match->getParameter('entity'); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function build(RouteMatchInterface $route_match) { | |
| $breadcrumb = new Breadcrumb(); | |
| $breadcrumb->addCacheContexts(['route']); | |
| $breadcrumb->addLink(Link::createFromRoute($this->t('Home'), '<front>')); | |
| $entity = $route_match->getParameter('entity'); | |
| $breadcrumb->addLink(new Link($entity->label(), $entity->urlInfo())); | |
| $breadcrumb->addCacheableDependency($entity); | |
| if (($pid = $route_match->getParameter('pid')) && ($comment = $this->storage->load($pid))) { | |
| /** @var \Drupal\comment\CommentInterface $comment */ | |
| $breadcrumb->addCacheableDependency($comment); | |
| // Display link to parent comment. | |
| // @todo Clean-up permalink in https://www.drupal.org/node/2198041 | |
| $breadcrumb->addLink(new Link($comment->getSubject(), $comment->urlInfo())); | |
| } | |
| return $breadcrumb; | |
| } | |
| } |