setId(zbx_formatDomId($name)); $this->setAttribute('name', $name); $this->setAttribute('rows', !empty($options['rows']) ? $options['rows'] : ZBX_TEXTAREA_STANDARD_ROWS); if (isset($options['readonly'])) { $this->setReadonly($options['readonly']); } $this->addItem($value); // set maxlength if (!empty($options['maxlength'])) { $this->setMaxlength($options['maxlength']); } } public function setReadonly($value) { if ($value) { $this->setAttribute('readonly', 'readonly'); } else { $this->removeAttribute('readonly'); } return $this; } public function setValue($value = '') { $this->addItem($value); return $this; } public function setRows($value) { $this->setAttribute('rows', $value); return $this; } public function setCols($value) { $this->setAttribute('cols', $value); return $this; } public function setMaxlength($maxlength) { $this->setAttribute('maxlength', $maxlength); return $this; } public function disableSpellcheck(): self { $this->setAttribute('spellcheck', 'false'); return $this; } public function setWidth($value) { $this->addStyle('width: '.$value.'px;'); return $this; } public function setAdaptiveWidth($value) { $this->addStyle('max-width: '.$value.'px;'); $this->addStyle('width: 100%;'); return $this; } public function setEnabled($value) { if ($value) { $this->removeAttribute('disabled'); } else { $this->setAttribute('disabled', 'disabled'); } return $this; } }