'breadcrumb', 'data-base-target' => '_main' ); /** * @param Renderer $renderer * @return static */ public static function create(Renderer $renderer) { $bp = $renderer->getBusinessProcess(); $breadcrumb = new static; $breadcrumb->add(Element::create('li')->add( Link::create($bp->getTitle(), $renderer->getBaseUrl()) )); $path = $renderer->getCurrentPath(); $parts = array(); while ($node = array_pop($path)) { array_unshift( $parts, static::renderNode($bp->getNode($node), $path, $renderer) ); } $breadcrumb->addContent($parts); return $breadcrumb; } /** * @param BpNode $parent * @return NodeTile */ protected static function renderNode(BpNode $node, $path, Renderer $renderer) { // TODO: something more generic than NodeTile? $p = new NodeTile($renderer, (string) $node, $node, $path); $p->attributes()->add('class', $renderer->getNodeClasses($node)); $p->setTag('li'); return $p; } }