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