Chris@0: links; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Sets the breadcrumb links. Chris@0: * Chris@0: * @param \Drupal\Core\Link[] $links Chris@0: * The breadcrumb links. Chris@0: * Chris@0: * @return $this Chris@0: * Chris@0: * @throws \LogicException Chris@0: * Thrown when setting breadcrumb links after they've already been set. Chris@0: */ Chris@0: public function setLinks(array $links) { Chris@0: if (!empty($this->links)) { Chris@0: throw new \LogicException('Once breadcrumb links are set, only additional breadcrumb links can be added.'); Chris@0: } Chris@0: Chris@0: $this->links = $links; Chris@0: Chris@0: return $this; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Appends a link to the end of the ordered list of breadcrumb links. Chris@0: * Chris@0: * @param \Drupal\Core\Link $link Chris@0: * The link appended to the breadcrumb. Chris@0: * Chris@0: * @return $this Chris@0: */ Chris@0: public function addLink(Link $link) { Chris@0: $this->links[] = $link; Chris@0: Chris@0: return $this; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function toRenderable() { Chris@0: $build = [ Chris@0: '#cache' => [ Chris@0: 'contexts' => $this->cacheContexts, Chris@0: 'tags' => $this->cacheTags, Chris@0: 'max-age' => $this->cacheMaxAge, Chris@0: ], Chris@0: ]; Chris@0: if (!empty($this->links)) { Chris@0: $build += [ Chris@0: '#theme' => 'breadcrumb', Chris@0: '#links' => $this->links, Chris@0: ]; Chris@0: } Chris@0: return $build; Chris@0: } Chris@0: Chris@0: }