setType($type); if ($name !== null) { $this->setId(zbx_formatDomId($name)); $this->setAttribute('name', $name); } $this->setAttribute('value', $value); } public function setType($type) { $this->setAttribute('type', $type); return $this; } public function setReadonly($value) { if ($value) { $this->setAttribute('readonly', 'readonly'); $this->setAttribute('tabindex', '-1'); } else { $this->removeAttribute('readonly'); $this->removeAttribute('tabindex'); } return $this; } /** * Prevent browser to autocomplete input element. */ public function disableAutocomplete() { $this->setAttribute('autocomplete', 'off'); return $this; } /** * Enable or disable the element. * * @param bool $value */ public function setEnabled($value) { if ($value) { $this->removeAttribute('disabled'); } else { $this->setAttribute('disabled', 'disabled'); } return $this; } public function removeAttribute($name) { if ($name === 'disabled') { $this->enabled = false; } return parent::removeAttribute($name); } public function setAttribute($name, $value) { if ($name === 'disabled') { $this->enabled = ($value !== 'disabled'); } return parent::setAttribute($name, $value); } }