content = array(); parent::__construct( new NavigationRenderer($navigation, true), RecursiveIteratorIterator::SELF_FIRST ); } /** * {@inheritdoc} */ public function setElementTag($tag) { $this->getInnerIterator()->setElementTag($tag); return $this; } /** * {@inheritdoc} */ public function getElementTag() { return $this->getInnerIterator()->getElementTag(); } /** * {@inheritdoc} */ public function setCssClass($class) { $this->getInnerIterator()->setCssClass($class); return $this; } /** * {@inheritdoc} */ public function getCssClass() { return $this->getInnerIterator()->getCssClass(); } /** * {@inheritdoc} */ public function setHeading($heading) { $this->getInnerIterator()->setHeading($heading); return $this; } /** * {@inheritdoc} */ public function getHeading() { return $this->getInnerIterator()->getHeading(); } /** * {@inheritdoc} */ public function beginIteration() { $this->content[] = $this->getInnerIterator()->beginMarkup(); } /** * {@inheritdoc} */ public function endIteration() { $this->content[] = $this->getInnerIterator()->endMarkup(); } /** * {@inheritdoc} */ public function beginChildren() { $this->content[] = $this->getInnerIterator()->beginChildrenMarkup(); } /** * {@inheritdoc} */ public function endChildren() { $this->content[] = $this->getInnerIterator()->endChildrenMarkup(); $this->content[] = $this->getInnerIterator()->endItemMarkup(); } /** * {@inheritdoc} */ public function render() { foreach ($this as $item) { /** @var NavigationItem $item */ if ($item->shouldRender()) { $this->content[] = $this->getInnerIterator()->beginItemMarkup($item); $this->content[] = $item->render(); if (! $item->hasChildren()) { $this->content[] = $this->getInnerIterator()->endItemMarkup(); } } } return join("\n", $this->content); } /** * {@inheritdoc} */ public function __toString() { try { return $this->render(); } catch (Exception $e) { return IcingaException::describe($e); } } }