Ad Widget

Collapse

Добавление дополнительного поля к узлу с

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Boss
    Junior Member
    • Oct 2014
    • 4

    #1

    Добавление дополнительного поля к узлу с

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

    #2
    В стандартном шаблоне 3 поля url_a, url_b,url_c. Вам мало?

    Comment

    Working...