tag in the * form HTML. * * Usage * * * new TextareaField( * $name = "description", * $title = "Description", * $rows = 8, * $cols = 3, * $value = "This is the default description" * ); * * * @package forms * @subpackage fields-basic */ class TextareaField extends FormField { protected $template = 'TextareaField'; protected $rows, $cols; /** * Create a new textarea field. * * @param $name Field name * @param $title Field title * @param $value The current value */ function __construct($name, $title = null, $value = '') { if(count(func_get_args()) > 3) Deprecation::notice('3.0', 'Use setRows() and setCols() instead of constructor arguments'); parent::__construct($name, $title, $value); } function getAttributes() { return array_merge( parent::getAttributes(), array( 'rows' => $this->rows, 'cols' => $this->cols, 'value' => null, 'type' => null ) ); } function getTemplate() { return ($this->isReadonly()) ? "{$this->template}_Readonly" : $this->template; } /** * Performs a readonly transformation on this field. You should still be able * to copy from this field, and it should still send when you submit * the form it's attached to. * The element shouldn't be both disabled and readonly at the same time. */ function performReadonlyTransformation() { $clone = clone $this; $clone->setReadonly(true); $clone->setDisabled(false); return $clone; } /** * Performs a disabled transformation on this field. You shouldn't be able to * copy from this field, and it should not send any data when you submit the * form it's attached to. * The element shouldn't be both disabled and readonly at the same time. */ function performDisabledTransformation() { $clone = clone $this; $clone->setDisabled(true); $clone->setReadonly(false); return $clone; } function Type() { return parent::Type() . ($this->readonly ? ' readonly' : ''); } /** * Set the number of rows in the textarea * * @param int */ function setRows($rows) { $this->rows = $rows; } /** * Set the number of columns in the textarea * * @return int */ function setColumns($cols) { $this->cols = $cols; } function Value() { return htmlentities($this->value, ENT_COMPAT, 'UTF-8'); } }