Neos\Neos\ViewHelpers\ContentElement\EditableViewHelper::render PHP Метод

render() публичный Метод

In live workspace this just renders a tag; for logged in users with access to the Backend this also adds required attributes for the editing.
public render ( string $property, string $tag = 'div', Neos\ContentRepository\Domain\Model\NodeInterface $node = null ) : string
$property string Name of the property to render. Note: If this tag has child nodes, they overrule this argument!
$tag string The name of the tag that should be wrapped around the property. By default this is a
$node Neos\ContentRepository\Domain\Model\NodeInterface The node of the content element. Optional, will be resolved from the TypoScript context by default.
Результат string The rendered property with a wrapping tag. In the user workspace this adds some required attributes for the RTE to work
    public function render($property, $tag = 'div', NodeInterface $node = null)
    {
        $this->tag->setTagName($tag);
        $this->tag->forceClosingTag(true);
        $content = $this->renderChildren();
        if ($node === null) {
            $node = $this->getNodeFromTypoScriptContext();
        }
        if ($node === null) {
            throw new ViewHelperException('A node is required, but one was not supplied and could not be found in the TypoScript context.', 1408521638);
        }
        if ($content === null) {
            if (!$this->templateVariableContainer->exists($property)) {
                throw new ViewHelperException(sprintf('The property "%1$s" was not set as a template variable. If you use this ViewHelper in a partial, make sure to pass the node property "%1$s" as an argument.', $property), 1384507046);
            }
            $content = $this->templateVariableContainer->get($property);
        }
        $this->tag->setContent($content);
        return $this->contentElementEditableService->wrapContentProperty($node, $property, $this->tag->render());
    }

Usage Example

 /**
  * @test
  */
 public function renderUsesTheNodeArgumentIfSet()
 {
     $this->templateVariables = array('someProperty' => 'somePropertyValue');
     $this->tagBuilder->expects($this->once())->method('render');
     $this->injectDependenciesIntoViewHelper($this->editableViewHelper);
     $this->editableViewHelper->render('someProperty', 'div', $this->mockNode);
 }