Source
<?php
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
class CTextAreaFlexible extends CTextArea {
/**
* Default CSS class name for textarea element.
*/
const ZBX_STYLE_CLASS = 'textarea-flexible';
/**
* An options array.
*
* @var array
*/
protected $options = [
'add_post_js' => true,
'maxlength' => 255,
'readonly' => false,
'rows' => 1
];
/**
* CTextAreaFlexible constructor.
*
* @param string $name
* @param string $value (optional)
* @param array $options (optional)
* @param bool $options['add_post_js'] (optional)
* @param int $options['maxlength'] (optional)
* @param bool $options['readonly'] (optional)
* @param int $options['rows'] (optional)
*/
public function __construct($name, $value = '', array $options = []) {
$this->options = array_merge($this->options, $options);
parent::__construct($name, $value, $this->options);
$this->addClass(self::ZBX_STYLE_CLASS);
if ($this->options['add_post_js']) {
zbx_add_post_js($this->getPostJS());
}
}
/**
* Get content of all Javascript code.
*
* @return string Javascript code.
*/
public function getPostJS() {