diff --git a/src/Fields/TextAreaField.php b/src/Fields/TextAreaField.php new file mode 100644 index 0000000..69050d6 --- /dev/null +++ b/src/Fields/TextAreaField.php @@ -0,0 +1,41 @@ + + */ +class TextAreaField extends AbstractVisibleField +{ + private $value = ''; + + public function __construct($form, $name, $value = '') + { + parent::__construct($form, 'textarea', $name); + + $this->setValue($value); + } + + /** + * Возвращает ранее заданное значение поля + * @return string + */ + public function value() + { + return $this->value; + } + + /** + * Устанавливает новое значение для поля + * @param mixed $newValue новое значение + * @return $this + */ + public function setValue($newValue) + { + $this->value = strval($newValue); + } +} diff --git a/src/Form.php b/src/Form.php index a2db03a..8b7ff40 100644 --- a/src/Form.php +++ b/src/Form.php @@ -9,6 +9,7 @@ use Artmark\Forms\Attributes\MultipartAttribute; use Artmark\Forms\Fields\HiddenField; use Artmark\Forms\Fields\TextField; +use Artmark\Forms\Fields\TextAreaField; use Artmark\Forms\Fields\EmailField; use Artmark\Forms\Fields\PasswordField; use Artmark\Forms\Fields\CheckboxField; @@ -136,6 +137,21 @@ class Form extends AbstractVisibleHtml return $field; } + + /** + * Создаёт в форме текстовое поле типа textarea с именем $name и значением $value + * @param string $name + * @param string $value + * @return TextAreaField + */ + public function newTextArea($name, $value = '') + { + $field = new TextAreaField($this, $name, $value); + + $this->registerField($field); + + return $field; + } /** * Создаёт в форме поле-флаг с именем $name