public function renderContent(array $menu) { $deferredRendering = (bool) $this->arguments['deferred']; if (0 === count($menu) && false === $deferredRendering) { return null; } if (true === $deferredRendering) { $tagContent = $this->autoRender($menu); $this->tag->setContent($tagContent); $deferredContent = $this->tag->render(); $this->viewHelperVariableContainer->addOrUpdate('FluidTYPO3\\Vhs\\ViewHelpers\\Menu\\AbstractMenuViewHelper', 'deferredString', $deferredContent); $this->viewHelperVariableContainer->addOrUpdate('FluidTYPO3\\Vhs\\ViewHelpers\\Menu\\AbstractMenuViewHelper', 'deferredArray', $menu); $output = $this->renderChildren(); $this->unsetDeferredVariableStorage(); } else { $content = $this->renderChildren(); if (0 < strlen(trim($content))) { $output = $content; } elseif ((bool) $this->arguments['hideIfEmpty'] === true) { $output = ''; } else { $output = $this->renderTag($this->getWrappingTagName(), $this->autoRender($menu)); } } return $output; }