xref: /dokuwiki/inc/Form/TextareaElement.php (revision 5b99afc341c66e4c03243d01c27793895fe370f8)
1<?php
2namespace dokuwiki\Form;
3
4/**
5 * Class TextareaElement
6 * @package dokuwiki\Form
7 */
8class TextareaElement extends InputElement {
9
10    /**
11     * @var string the actual text within the area
12     */
13    protected $text;
14
15    /**
16     * @param string $name The name of this form element
17     * @param string $label The label text for this element
18     */
19    public function __construct($name, $label) {
20        parent::__construct('textarea', $name, $label);
21        $this->attr('dir', 'auto');
22    }
23
24    /**
25     * Get or set the element's value
26     *
27     * This is the preferred way of setting the element's value
28     *
29     * @param null|string $value
30     * @return string|$this
31     */
32    public function val($value = null) {
33        if($value !== null) {
34            $this->text = $value;
35            return $this;
36        }
37        return $this->text;
38    }
39
40    /**
41     * The HTML representation of this element
42     *
43     * @return string
44     */
45    protected function mainElementHTML() {
46        if($this->useInput) $this->prefillInput();
47        return '<textarea ' . buildAttributes($this->attrs()) . '>' .
48        formText($this->val()) . '</textarea>';
49    }
50
51}
52