Добрый день . Стоит задача добавить еще одно поле в узел сети. Хочу добавить в него ссылку на web интерфейс наблюдаемого устройства.
Для этого добавил в таблицу hosts строковое поле ipsource (по аналогии с полем name из этой же таблицы)
В hosts.php поправил $fields (добавил строку
)
и в $host добавил
В include\vievs\configuration.host.edit.php добавил
1)
2)
3)
В результате получилось так Ссылка
При этих изменениях, если записать напрямую в базу в поле ipsource строку, то содержимое ipsource отображается на странице настройки узла.
Но не удается сохранить эту строку после редактирования или создания нового узла назад в базу, при нажатии на кнопку Сохранить.
Может кто уже сталкивался с такой задачей и подскажет куда копать.
Для этого добавил в таблицу hosts строковое поле ipsource (по аналогии с полем name из этой же таблицы)
В hosts.php поправил $fields (добавил строку
PHP Code:
'ipsource' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'),
PHP Code:
$fields = array(
'hosts' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null),
'groups' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null),
'hostids' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null),
'groupids' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null),
'applications' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null),
'groupid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null),
'hostid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, 'isset({form})&&({form}=="update")'),
'host' => array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, 'isset({save})', _('Host name')),
'visiblename' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'),
'ipsource' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'),
'proxy_hostid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, 'isset({save})'),
'status' => array(T_ZBX_INT, O_OPT, null, IN('0,1,3'), 'isset({save})'),
.......
PHP Code:
'ipsource' => $_REQUEST['ipsource'],
PHP Code:
$host = array(
'host' => $_REQUEST['host'],
'name' => $_REQUEST['visiblename'],
'ipsource' => $_REQUEST['ipsource'],
'status' => $_REQUEST['status'],
'proxy_hostid' => get_request('proxy_hostid', 0),
.....
1)
PHP Code:
$ipsource = get_request('ipsource', '');
PHP Code:
$newgroup = get_request('newgroup', '');
$host = get_request('host', '');
$visiblename = get_request('visiblename', '');
$ipsource = get_request('ipsource', '');
$status = get_request('status', HOST_STATUS_MONITORED);
....
PHP Code:
$ipsource = $dbHost['ipsource'];
PHP Code:
if ($_REQUEST['hostid'] > 0 && !isset($_REQUEST['form_refresh'])) {
$proxy_hostid = $dbHost['proxy_hostid'];
$host = $dbHost['host'];
$visiblename = $dbHost['name'];
$ipsource = $dbHost['ipsource'];
....
PHP Code:
$ipsourceTB = new CTextBox('ipsource', $ipsource, ZBX_TEXTBOX_STANDARD_SIZE);
$ipsourceTB->setAttribute('maxlength', 64);
$hostList->addRow(_('Ip source'), $ipsourceTB);
При этих изменениях, если записать напрямую в базу в поле ipsource строку, то содержимое ipsource отображается на странице настройки узла.
Но не удается сохранить эту строку после редактирования или создания нового узла назад в базу, при нажатии на кнопку Сохранить.
Может кто уже сталкивался с такой задачей и подскажет куда копать.
Comment