Redaxscript\View\CommentForm::render PHP Method

render() public method

render the view
Since: 3.0.0
public render ( integer $articleId = null ) : string
$articleId integer identifier of the article
return string
    public function render($articleId = null)
    {
        $output = Hook::trigger('commentFormStart');
        /* html elements */
        $titleElement = new Html\Element();
        $titleElement->init('h2', ['class' => 'rs-title-content'])->text($this->_language->get('comment_new'));
        $formElement = new Html\Form($this->_registry, $this->_language);
        $formElement->init(['button' => ['submit' => ['name' => get_class()]]], ['captcha' => Db::getSetting('captcha') > 0]);
        /* create the form */
        $formElement->append('<fieldset>')->legend()->append('<ul><li>')->label('* ' . $this->_language->get('author'), ['for' => 'author'])->text(['id' => 'author', 'name' => 'author', 'readonly' => $this->_registry->get('myName') ? 'readonly' : null, 'required' => 'required', 'value' => $this->_registry->get('myName')])->append('</li><li>')->label('* ' . $this->_language->get('email'), ['for' => 'email'])->email(['id' => 'email', 'name' => 'email', 'readonly' => $this->_registry->get('myEmail') ? 'readonly' : null, 'required' => 'required', 'value' => $this->_registry->get('myEmail')])->append('</li><li>')->label($this->_language->get('url'), ['for' => 'url'])->url(['id' => 'url', 'name' => 'url'])->append('</li><li>')->label('* ' . $this->_language->get('text'), ['for' => 'text'])->textarea(['class' => 'rs-js-auto-resize rs-js-editor-textarea rs-field-textarea', 'id' => 'text', 'name' => 'text', 'required' => 'required'])->append('</li>');
        if (Db::getSetting('captcha') > 0) {
            $formElement->append('<li>')->captcha('task')->append('</li>');
        }
        $formElement->append('</ul></fieldset>');
        if (Db::getSetting('captcha') > 0) {
            $formElement->captcha('solution');
        }
        $formElement->hidden(['name' => 'article', 'value' => $articleId])->token()->submit()->reset();
        /* collect output */
        $output .= $titleElement . $formElement;
        $output .= Hook::trigger('commentFormEnd');
        return $output;
    }

Usage Example

 /**
  * testRender
  *
  * @since 3.0.0
  *
  * @param string $articleId
  * @param array $expectArray
  *
  * @dataProvider providerRender
  */
 public function testRender($articleId = null, $expectArray = [])
 {
     /* setup */
     $commentForm = new View\CommentForm($this->_registry, $this->_language);
     /* actual */
     $actual = $commentForm->render($articleId);
     /* compare */
     $this->assertStringStartsWith($expectArray['start'], $actual);
     $this->assertStringEndsWith($expectArray['end'], $actual);
 }
CommentForm