Пример #1
0
    }
    DBend($result);
}
/*
 * Display
 */
$form = new CForm();
$form->cleanItems();
$cmbConf = new CComboBox('configDropDown', 'adm.other.php', 'redirect(this.options[this.selectedIndex].value);');
$cmbConf->addItems(array('adm.gui.php' => _('GUI'), 'adm.housekeeper.php' => _('Housekeeping'), 'adm.images.php' => _('Images'), 'adm.iconmapping.php' => _('Icon mapping'), 'adm.regexps.php' => _('Regular expressions'), 'adm.macros.php' => _('Macros'), 'adm.valuemapping.php' => _('Value mapping'), 'adm.workingtime.php' => _('Working time'), 'adm.triggerseverities.php' => _('Trigger severities'), 'adm.triggerdisplayoptions.php' => _('Trigger displaying options'), 'adm.other.php' => _('Other')));
$form->addItem($cmbConf);
$cnf_wdgt = new CWidget();
$cnf_wdgt->addPageHeader(_('OTHER CONFIGURATION PARAMETERS'), $form);
$data = array();
$data['form_refresh'] = get_request('form_refresh', 0);
if ($data['form_refresh']) {
    $data['config']['discovery_groupid'] = get_request('discovery_groupid');
    $data['config']['alert_usrgrpid'] = get_request('alert_usrgrpid');
    $data['config']['refresh_unsupported'] = get_request('refresh_unsupported');
    $data['config']['snmptrap_logging'] = get_request('snmptrap_logging');
} else {
    $data['config'] = select_config(false);
}
$data['discovery_groups'] = API::HostGroup()->get(array('output' => array('usrgrpid', 'name'), 'filter' => array('flags' => ZBX_FLAG_DISCOVERY_NORMAL), 'editable' => true));
order_result($data['discovery_groups'], 'name');
$data['alert_usrgrps'] = DBfetchArray(DBselect('SELECT u.usrgrpid,u.name' . ' FROM usrgrp u' . whereDbNode('u.usrgrpid')));
order_result($data['alert_usrgrps'], 'name');
$otherForm = new CView('administration.general.other.edit', $data);
$cnf_wdgt->addItem($otherForm->render());
$cnf_wdgt->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
Пример #2
0
/**
 * Get data for item edit page.
 *
 * @param bool $options['is_discovery_rule']
 *
 * @return array
 */
function getItemFormData($options = array())
{
    $ifm = get_request('filter_macro');
    $ifv = get_request('filter_value');
    $data = array('form' => get_request('form'), 'form_refresh' => get_request('form_refresh'), 'is_discovery_rule' => !empty($options['is_discovery_rule']), 'parent_discoveryid' => get_request('parent_discoveryid', !empty($options['is_discovery_rule']) ? get_request('itemid', null) : null), 'itemid' => get_request('itemid', null), 'limited' => false, 'interfaceid' => get_request('interfaceid', 0), 'name' => get_request('name', ''), 'description' => get_request('description', ''), 'key' => get_request('key', ''), 'hostname' => get_request('hostname', null), 'delay' => get_request('delay', ZBX_ITEM_DELAY_DEFAULT), 'history' => get_request('history', 90), 'status' => get_request('status', isset($_REQUEST['form_refresh']) ? 1 : 0), 'type' => get_request('type', 0), 'snmp_community' => get_request('snmp_community', 'public'), 'snmp_oid' => get_request('snmp_oid', 'interfaces.ifTable.ifEntry.ifInOctets.1'), 'port' => get_request('port', ''), 'value_type' => get_request('value_type', ITEM_VALUE_TYPE_UINT64), 'data_type' => get_request('data_type', ITEM_DATA_TYPE_DECIMAL), 'trapper_hosts' => get_request('trapper_hosts', ''), 'units' => get_request('units', ''), 'valuemapid' => get_request('valuemapid', 0), 'params' => get_request('params', ''), 'multiplier' => get_request('multiplier', 0), 'delta' => get_request('delta', 0), 'trends' => get_request('trends', DAY_IN_YEAR), 'new_application' => get_request('new_application', ''), 'applications' => get_request('applications', array()), 'delay_flex' => get_request('delay_flex', array()), 'new_delay_flex' => get_request('new_delay_flex', array('delay' => 50, 'period' => ZBX_DEFAULT_INTERVAL)), 'snmpv3_contextname' => get_request('snmpv3_contextname', ''), 'snmpv3_securityname' => get_request('snmpv3_securityname', ''), 'snmpv3_securitylevel' => get_request('snmpv3_securitylevel', 0), 'snmpv3_authprotocol' => get_request('snmpv3_authprotocol', ITEM_AUTHPROTOCOL_MD5), 'snmpv3_authpassphrase' => get_request('snmpv3_authpassphrase', ''), 'snmpv3_privprotocol' => get_request('snmpv3_privprotocol', ITEM_PRIVPROTOCOL_DES), 'snmpv3_privpassphrase' => get_request('snmpv3_privpassphrase', ''), 'ipmi_sensor' => get_request('ipmi_sensor', ''), 'authtype' => get_request('authtype', 0), 'username' => get_request('username', ''), 'password' => get_request('password', ''), 'publickey' => get_request('publickey', ''), 'privatekey' => get_request('privatekey', ''), 'formula' => get_request('formula', 1), 'logtimefmt' => get_request('logtimefmt', ''), 'inventory_link' => get_request('inventory_link', 0), 'add_groupid' => get_request('add_groupid', get_request('groupid', 0)), 'valuemaps' => null, 'possibleHostInventories' => null, 'alreadyPopulated' => null, 'lifetime' => get_request('lifetime', 30), 'filter' => isset($ifm, $ifv) ? $ifm . ':' . $ifv : '', 'initial_item_type' => null, 'templates' => array());
    // hostid
    if (!empty($data['parent_discoveryid'])) {
        $discoveryRule = API::DiscoveryRule()->get(array('itemids' => $data['parent_discoveryid'], 'output' => API_OUTPUT_EXTEND, 'editable' => true));
        $discoveryRule = reset($discoveryRule);
        $data['hostid'] = $discoveryRule['hostid'];
    } else {
        $data['hostid'] = get_request('hostid', 0);
    }
    // types, http items only for internal processes
    $data['types'] = item_type2str();
    unset($data['types'][ITEM_TYPE_HTTPTEST]);
    if (!empty($options['is_discovery_rule'])) {
        unset($data['types'][ITEM_TYPE_AGGREGATE], $data['types'][ITEM_TYPE_CALCULATED], $data['types'][ITEM_TYPE_SNMPTRAP]);
    }
    // item
    if (!empty($data['itemid'])) {
        if ($data['is_discovery_rule']) {
            $data['item'] = API::DiscoveryRule()->get(array('itemids' => $data['itemid'], 'output' => API_OUTPUT_EXTEND, 'hostids' => $data['hostid'], 'editable' => true));
        } else {
            $data['item'] = API::Item()->get(array('itemids' => $data['itemid'], 'filter' => array('flags' => null), 'output' => array('itemid', 'type', 'snmp_community', 'snmp_oid', 'hostid', 'name', 'key_', 'delay', 'history', 'trends', 'status', 'value_type', 'trapper_hosts', 'units', 'multiplier', 'delta', 'snmpv3_securityname', 'snmpv3_securitylevel', 'snmpv3_authpassphrase', 'snmpv3_privpassphrase', 'formula', 'logtimefmt', 'templateid', 'valuemapid', 'delay_flex', 'params', 'ipmi_sensor', 'data_type', 'authtype', 'username', 'password', 'publickey', 'privatekey', 'filter', 'interfaceid', 'port', 'description', 'inventory_link', 'lifetime', 'snmpv3_authprotocol', 'snmpv3_privprotocol', 'snmpv3_contextname')));
        }
        $data['item'] = reset($data['item']);
        $data['hostid'] = !empty($data['hostid']) ? $data['hostid'] : $data['item']['hostid'];
        $data['limited'] = $data['item']['templateid'] != 0;
        // get templates
        $itemid = $data['itemid'];
        do {
            $params = array('itemids' => $itemid, 'output' => array('itemid', 'templateid'), 'selectHosts' => array('name'));
            if ($data['is_discovery_rule']) {
                $item = API::DiscoveryRule()->get($params);
            } else {
                $params['selectDiscoveryRule'] = array('itemid');
                $params['filter'] = array('flags' => null);
                $item = API::Item()->get($params);
            }
            $item = reset($item);
            if (!empty($item)) {
                $host = reset($item['hosts']);
                if (!empty($item['hosts'])) {
                    $host['name'] = CHtml::encode($host['name']);
                    if (bccomp($data['itemid'], $itemid) == 0) {
                    } elseif ($data['is_discovery_rule']) {
                        $data['templates'][] = new CLink($host['name'], 'host_discovery.php?form=update&itemid=' . $item['itemid'], 'highlight underline weight_normal');
                        $data['templates'][] = SPACE . RARR . SPACE;
                    } elseif ($item['discoveryRule']) {
                        $data['templates'][] = new CLink($host['name'], 'disc_prototypes.php?form=update&itemid=' . $item['itemid'] . '&parent_discoveryid=' . $item['discoveryRule']['itemid'], 'highlight underline weight_normal');
                        $data['templates'][] = SPACE . RARR . SPACE;
                    } else {
                        $data['templates'][] = new CLink($host['name'], 'items.php?form=update&itemid=' . $item['itemid'], 'highlight underline weight_normal');
                        $data['templates'][] = SPACE . RARR . SPACE;
                    }
                }
                $itemid = $item['templateid'];
            } else {
                break;
            }
        } while ($itemid != 0);
        $data['templates'] = array_reverse($data['templates']);
        array_shift($data['templates']);
    }
    // caption
    if (!empty($data['is_discovery_rule'])) {
        $data['caption'] = _('Discovery rule');
    } else {
        $data['caption'] = !empty($data['parent_discoveryid']) ? _('Item prototype') : _('Item');
    }
    // hostname
    if (empty($data['is_discovery_rule']) && empty($data['hostname'])) {
        if (!empty($data['hostid'])) {
            $hostInfo = API::Host()->get(array('hostids' => $data['hostid'], 'output' => array('name'), 'templated_hosts' => true));
            $hostInfo = reset($hostInfo);
            $data['hostname'] = $hostInfo['name'];
        } else {
            $data['hostname'] = _('not selected');
        }
    }
    // fill data from item
    if (!empty($data['itemid']) && !isset($_REQUEST['form_refresh']) || $data['limited'] && !isset($_REQUEST['form_refresh'])) {
        $data['name'] = $data['item']['name'];
        $data['description'] = $data['item']['description'];
        $data['key'] = $data['item']['key_'];
        $data['interfaceid'] = $data['item']['interfaceid'];
        $data['type'] = $data['item']['type'];
        $data['snmp_community'] = $data['item']['snmp_community'];
        $data['snmp_oid'] = $data['item']['snmp_oid'];
        $data['port'] = $data['item']['port'];
        $data['value_type'] = $data['item']['value_type'];
        $data['data_type'] = $data['item']['data_type'];
        $data['trapper_hosts'] = $data['item']['trapper_hosts'];
        $data['units'] = $data['item']['units'];
        $data['valuemapid'] = $data['item']['valuemapid'];
        $data['multiplier'] = $data['item']['multiplier'];
        $data['hostid'] = $data['item']['hostid'];
        $data['params'] = $data['item']['params'];
        $data['snmpv3_contextname'] = $data['item']['snmpv3_contextname'];
        $data['snmpv3_securityname'] = $data['item']['snmpv3_securityname'];
        $data['snmpv3_securitylevel'] = $data['item']['snmpv3_securitylevel'];
        $data['snmpv3_authprotocol'] = $data['item']['snmpv3_authprotocol'];
        $data['snmpv3_authpassphrase'] = $data['item']['snmpv3_authpassphrase'];
        $data['snmpv3_privprotocol'] = $data['item']['snmpv3_privprotocol'];
        $data['snmpv3_privpassphrase'] = $data['item']['snmpv3_privpassphrase'];
        $data['ipmi_sensor'] = $data['item']['ipmi_sensor'];
        $data['authtype'] = $data['item']['authtype'];
        $data['username'] = $data['item']['username'];
        $data['password'] = $data['item']['password'];
        $data['publickey'] = $data['item']['publickey'];
        $data['privatekey'] = $data['item']['privatekey'];
        $data['formula'] = $data['item']['formula'];
        $data['logtimefmt'] = $data['item']['logtimefmt'];
        $data['inventory_link'] = $data['item']['inventory_link'];
        $data['new_application'] = get_request('new_application', '');
        $data['lifetime'] = $data['item']['lifetime'];
        $data['filter'] = $data['item']['filter'];
        if (!$data['limited'] || !isset($_REQUEST['form_refresh'])) {
            $data['delay'] = $data['item']['delay'];
            if (($data['type'] == ITEM_TYPE_TRAPPER || $data['type'] == ITEM_TYPE_SNMPTRAP) && $data['delay'] == 0) {
                $data['delay'] = ZBX_ITEM_DELAY_DEFAULT;
            }
            $data['history'] = $data['item']['history'];
            $data['status'] = $data['item']['status'];
            $data['delta'] = $data['item']['delta'];
            $data['trends'] = $data['item']['trends'];
            $db_delay_flex = $data['item']['delay_flex'];
            if (isset($db_delay_flex)) {
                $arr_of_dellays = explode(';', $db_delay_flex);
                foreach ($arr_of_dellays as $one_db_delay) {
                    $arr_of_delay = explode('/', $one_db_delay);
                    if (!isset($arr_of_delay[0]) || !isset($arr_of_delay[1])) {
                        continue;
                    }
                    array_push($data['delay_flex'], array('delay' => $arr_of_delay[0], 'period' => $arr_of_delay[1]));
                }
            }
            $data['applications'] = array_unique(zbx_array_merge($data['applications'], get_applications_by_itemid($data['itemid'])));
        }
    }
    // applications
    if (count($data['applications']) == 0) {
        array_push($data['applications'], 0);
    }
    $data['db_applications'] = DBfetchArray(DBselect('SELECT DISTINCT a.applicationid,a.name' . ' FROM applications a' . ' WHERE a.hostid=' . zbx_dbstr($data['hostid'])));
    order_result($data['db_applications'], 'name');
    // interfaces
    $data['interfaces'] = API::HostInterface()->get(array('hostids' => $data['hostid'], 'output' => API_OUTPUT_EXTEND));
    // valuemapid
    if ($data['limited']) {
        if (!empty($data['valuemapid'])) {
            if ($map_data = DBfetch(DBselect('SELECT v.name FROM valuemaps v WHERE v.valuemapid=' . zbx_dbstr($data['valuemapid'])))) {
                $data['valuemaps'] = $map_data['name'];
            }
        }
    } else {
        $data['valuemaps'] = DBfetchArray(DBselect('SELECT v.*' . ' FROM valuemaps v' . whereDbNode('v.valuemapid')));
        order_result($data['valuemaps'], 'name');
    }
    // possible host inventories
    if (empty($data['parent_discoveryid'])) {
        $data['possibleHostInventories'] = getHostInventories();
        // get already populated fields by other items
        $data['alreadyPopulated'] = API::item()->get(array('output' => array('inventory_link'), 'filter' => array('hostid' => $data['hostid']), 'nopermissions' => true));
        $data['alreadyPopulated'] = zbx_toHash($data['alreadyPopulated'], 'inventory_link');
    }
    // template
    $data['is_template'] = isTemplate($data['hostid']);
    // unset snmpv3 fields
    if ($data['type'] != ITEM_TYPE_SNMPV3) {
        $data['snmpv3_contextname'] = '';
        $data['snmpv3_securityname'] = '';
        $data['snmpv3_securitylevel'] = ITEM_SNMPV3_SECURITYLEVEL_NOAUTHNOPRIV;
        $data['snmpv3_authprotocol'] = ITEM_AUTHPROTOCOL_MD5;
        $data['snmpv3_authpassphrase'] = '';
        $data['snmpv3_privprotocol'] = ITEM_PRIVPROTOCOL_DES;
        $data['snmpv3_privpassphrase'] = '';
    }
    // unset ssh auth fields
    if ($data['type'] != ITEM_TYPE_SSH) {
        $data['authtype'] = ITEM_AUTHTYPE_PASSWORD;
        $data['publickey'] = '';
        $data['privatekey'] = '';
    }
    return $data;
}
Пример #3
0
 $cmbPeriod->addItem('daily', _('Daily'));
 $cmbPeriod->addItem('weekly', _('Weekly'));
 $cmbPeriod->addItem('monthly', _('Monthly'));
 $cmbPeriod->addItem('yearly', _('Yearly'));
 $form->addItem($cmbPeriod);
 if ($period != 'yearly') {
     $form->addItem(SPACE . _('Year') . SPACE);
     $cmbYear = new CComboBox('year', $year, 'submit();');
     for ($y = $minYear; $y <= date('Y'); $y++) {
         $cmbYear->addItem($y, $y);
     }
     $form->addItem($cmbYear);
 }
 show_table_header(_('Notifications'), $form);
 $header = array();
 $db_users = DBselect('SELECT u.*' . ' FROM users u' . whereDbNode('u.userid') . ' ORDER BY u.alias,u.userid');
 while ($user_data = DBfetch($db_users)) {
     $header[] = new CCol($user_data['alias'], 'vertical_rotation');
     $users[$user_data['userid']] = $user_data['alias'];
 }
 $intervals = array();
 switch ($period) {
     case 'yearly':
         $minTime = mktime(0, 0, 0, 1, 1, $minYear);
         $dateFormat = REPORT4_ANNUALLY_DATE_FORMAT;
         array_unshift($header, new CCol(_('Year'), 'center'));
         for ($i = $minYear; $i <= date('Y'); $i++) {
             $intervals[mktime(0, 0, 0, 1, 1, $i)] = mktime(0, 0, 0, 1, 1, $i + 1);
         }
         break;
     case 'monthly':
Пример #4
0
        $db_slides = DBselect('SELECT s.* FROM slides s WHERE s.slideshowid=' . zbx_dbstr($data['slideshowid']) . ' ORDER BY s.step');
        while ($slide = DBfetch($db_slides)) {
            $data['slides'][$slide['step']] = array('slideid' => $slide['slideid'], 'screenid' => $slide['screenid'], 'delay' => $slide['delay']);
        }
    }
    // get slides without delay
    $data['slides_without_delay'] = $data['slides'];
    for ($i = 0, $size = count($data['slides_without_delay']); $i < $size; $i++) {
        unset($data['slides_without_delay'][$i]['delay']);
    }
    // render view
    $slideshowView = new CView('configuration.slideconf.edit', $data);
    $slideshowView->render();
    $slideshowView->show();
} else {
    $data['slides'] = DBfetchArray(DBselect('SELECT s.slideshowid,s.name,s.delay,COUNT(sl.slideshowid) AS cnt' . ' FROM slideshows s' . ' LEFT JOIN slides sl ON sl.slideshowid=s.slideshowid' . whereDbNode('s.slideshowid') . ' GROUP BY s.slideshowid,s.name,s.delay'));
    order_result($data['slides'], getPageSortField('name'), getPageSortOrder());
    $data['paging'] = getPagingLine($data['slides'], array('slideshowid'));
    // nodes
    if ($data['displayNodes'] = is_array(get_current_nodeid())) {
        foreach ($data['slides'] as &$slide) {
            $slide['nodename'] = get_node_name_by_elid($slide['slideshowid'], true);
        }
        unset($slide);
    }
    // render view
    $slideshowView = new CView('configuration.slideconf.list', $data);
    $slideshowView->render();
    $slideshowView->show();
}
require_once dirname(__FILE__) . '/include/page_footer.php';
Пример #5
0
    if ($_REQUEST['favobj'] == 'timelinefixedperiod') {
        if (isset($_REQUEST['favid'])) {
            CProfile::update('web.slides.timelinefixed', $_REQUEST['favid'], PROFILE_TYPE_INT);
        }
    }
}
if ($page['type'] == PAGE_TYPE_JS || $page['type'] == PAGE_TYPE_HTML_BLOCK) {
    require_once dirname(__FILE__) . '/include/page_footer.php';
    exit;
}
/*
 * Display
 */
$data = array('fullscreen' => $_REQUEST['fullscreen'], 'slideshows' => array());
// get slideshows
$db_slideshows = DBselect('SELECT s.slideshowid,s.name' . ' FROM slideshows s' . whereDbNode('s.slideshowid'));
while ($slideshow = DBfetch($db_slideshows)) {
    if (slideshow_accessible($slideshow['slideshowid'], PERM_READ)) {
        $data['slideshows'][$slideshow['slideshowid']] = $slideshow;
    }
}
order_result($data['slideshows'], 'name');
// get element id
$data['elementid'] = get_request('elementid', CProfile::get('web.slides.elementid', null));
CProfile::update('web.slides.elementid', $data['elementid'], PROFILE_TYPE_ID);
if (!isset($data['slideshows'][$data['elementid']])) {
    $slideshow = reset($data['slideshows']);
    $data['elementid'] = $slideshow['slideshowid'];
}
// get screen
$data['screen'] = empty($data['elementid']) ? array() : get_slideshow($data['elementid'], 0);
Пример #6
0
$regExpWidget->addPageHeader(_('CONFIGURATION OF REGULAR EXPRESSIONS'), $regExpForm);
if (isset($_REQUEST['form'])) {
    $data = array('form_refresh' => get_request('form_refresh'), 'regexpid' => get_request('regexpid'));
    if (isset($_REQUEST['regexpid']) && !isset($_REQUEST['form_refresh'])) {
        $regExp = DBfetch(DBSelect('SELECT re.name,re.test_string' . ' FROM regexps re' . ' WHERE re.regexpid=' . zbx_dbstr($_REQUEST['regexpid']) . andDbNode('re.regexpid')));
        $data['name'] = $regExp['name'];
        $data['test_string'] = $regExp['test_string'];
        $dbExpressions = DBselect('SELECT e.expressionid,e.expression,e.expression_type,e.exp_delimiter,e.case_sensitive' . ' FROM expressions e' . ' WHERE e.regexpid=' . zbx_dbstr($_REQUEST['regexpid']) . andDbNode('e.expressionid') . ' ORDER BY e.expression_type');
        $data['expressions'] = DBfetchArray($dbExpressions);
    } else {
        $data['name'] = get_request('name', '');
        $data['test_string'] = get_request('test_string', '');
        $data['expressions'] = get_request('expressions', array());
    }
    $regExpForm = new CView('administration.general.regularexpressions.edit', $data);
} else {
    $data = array('displayNodes' => is_array(get_current_nodeid()), 'cnf_wdgt' => &$regExpWidget, 'regexps' => array(), 'regexpids' => array());
    $dbRegExp = DBselect('SELECT re.* FROM regexps re ' . whereDbNode('re.regexpid'));
    while ($regExp = DBfetch($dbRegExp)) {
        $regExp['expressions'] = array();
        $regExp['nodename'] = $data['displayNodes'] ? get_node_name_by_elid($regExp['regexpid'], true) : '';
        $data['regexps'][$regExp['regexpid']] = $regExp;
        $data['regexpids'][$regExp['regexpid']] = $regExp['regexpid'];
    }
    order_result($data['regexps'], 'name');
    $data['db_exps'] = DBfetchArray(DBselect('SELECT e.*' . ' FROM expressions e' . ' WHERE ' . dbConditionInt('e.regexpid', $data['regexpids']) . andDbNode('e.expressionid') . ' ORDER BY e.expression_type'));
    $regExpForm = new CView('administration.general.regularexpressions.list', $data);
}
$regExpWidget->addItem($regExpForm->render());
$regExpWidget->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
Пример #7
0
    }
    $data['selected_usrgrp'] = get_request('selusrgrp', 0);
    // sort group rights
    order_result($data['group_rights'], 'name');
    // get users
    if ($data['selected_usrgrp'] > 0) {
        $sqlFrom = ',users_groups g';
        $sqlWhere = ' WHERE ' . dbConditionInt('u.userid', $data['group_users']) . ' OR (u.userid=g.userid AND g.usrgrpid=' . zbx_dbstr($data['selected_usrgrp']) . andDbNode('u.userid') . ')';
    } else {
        $sqlFrom = '';
        $sqlWhere = whereDbNode('u.userid');
    }
    $data['users'] = DBfetchArray(DBselect('SELECT DISTINCT u.userid,u.alias,u.name,u.surname' . ' FROM users u' . $sqlFrom . $sqlWhere));
    order_result($data['users'], 'alias');
    // get user groups
    $data['usergroups'] = DBfetchArray(DBselect('SELECT ug.usrgrpid,ug.name' . ' FROM usrgrp ug' . whereDbNode('usrgrpid')));
    order_result($data['usergroups'], 'name');
    // render view
    $userGroupsView = new CView('administration.usergroups.edit', $data);
    $userGroupsView->render();
    $userGroupsView->show();
} else {
    $data = array('displayNodes' => is_array(get_current_nodeid()));
    $sortfield = getPageSortField('name');
    $data['usergroups'] = API::UserGroup()->get(array('output' => API_OUTPUT_EXTEND, 'selectUsers' => API_OUTPUT_EXTEND, 'sortfield' => $sortfield, 'limit' => $config['search_limit'] + 1));
    // sorting & paging
    order_result($data['usergroups'], $sortfield, getPageSortOrder());
    $data['paging'] = getPagingLine($data['usergroups'], array('usrgrpid'));
    // nodes
    if ($data['displayNodes']) {
        foreach ($data['usergroups'] as &$userGroup) {
Пример #8
0
        $data['initial_item_type'] = $initialItemType;
        $data['multiple_interface_types'] = count(array_unique($usedInterfacesTypes)) > 1;
    }
    // application
    if (count($data['applications']) == 0) {
        array_push($data['applications'], 0);
    }
    if (!empty($data['hostid'])) {
        $data['db_applications'] = DBfetchArray(DBselect('SELECT a.applicationid,a.name' . ' FROM applications a' . ' WHERE a.hostid=' . zbx_dbstr($data['hostid'])));
        order_result($data['db_applications'], 'name');
    }
    // item types
    $data['itemTypes'] = item_type2str();
    unset($data['itemTypes'][ITEM_TYPE_HTTPTEST]);
    // valuemap
    $data['valuemaps'] = DBfetchArray(DBselect('SELECT v.valuemapid,v.name' . ' FROM valuemaps v' . whereDbNode('v.valuemapid')));
    order_result($data['valuemaps'], 'name');
    // render view
    $itemView = new CView('configuration.item.massupdate', $data);
    $itemView->render();
    $itemView->show();
} elseif ($_REQUEST['go'] == 'copy_to' && isset($_REQUEST['group_itemid'])) {
    $data = array('group_itemid' => get_request('group_itemid', array()), 'hostid' => get_request('hostid', 0), 'copy_type' => get_request('copy_type', 0), 'copy_groupid' => get_request('copy_groupid', 0), 'copy_targetid' => get_request('copy_targetid', array()));
    if (!is_array($data['group_itemid']) || is_array($data['group_itemid']) && count($data['group_itemid']) < 1) {
        error(_('Incorrect list of items.'));
    } else {
        // group
        $data['groups'] = API::HostGroup()->get(array('output' => API_OUTPUT_EXTEND));
        order_result($data['groups'], 'name');
        // hosts
        if ($data['copy_type'] == 0) {
Пример #9
0
            info(_n('There is "%1$d" group with Internal GUI access.', 'There are "%1$d" groups with Internal GUI access.', $result['cnt_usrgrp']));
        }
        if (update_config($config)) {
            // reset all sessions
            if ($isAuthenticationTypeChanged) {
                DBexecute('UPDATE sessions SET status=' . ZBX_SESSION_PASSIVE . ' WHERE sessionid<>' . zbx_dbstr(CWebUser::$data['sessionid']));
            }
            $isAuthenticationTypeChanged = false;
            add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_ZABBIX_CONFIG, _('Authentication method changed to HTTP'));
            show_message(_('Authentication method changed to HTTP'));
        } else {
            show_error_message(_('Cannot change authentication method to HTTP'));
        }
    }
}
show_messages();
/*
 * Display
 */
$data = array('form_refresh' => get_request('form_refresh'), 'config' => $config, 'is_authentication_type_changed' => $isAuthenticationTypeChanged, 'user' => get_request('user', CWebUser::$data['alias']), 'user_password' => get_request('user_password', ''), 'user_list' => null, 'change_bind_password' => get_request('change_bind_password'));
// get tab title
$data['title'] = authentication2str($config['authentication_type']);
// get user list
if (getUserGuiAccess(CWebUser::$data['userid']) == GROUP_GUI_ACCESS_INTERNAL) {
    $data['user_list'] = DBfetchArray(DBselect('SELECT u.alias,u.userid' . ' FROM users u' . whereDbNode('u.userid') . ' ORDER BY u.alias'));
}
// render view
$authenticationView = new CView('administration.authentication.edit', $data);
$authenticationView->render();
$authenticationView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
Пример #10
0
            $severity[$i] = $i;
        }
    }
} else {
    $severity = get_request('severity', array(0, 1, 2, 3, 4, 5));
}
$media = get_request('media', -1);
$sendto = get_request('sendto', '');
$mediatypeid = get_request('mediatypeid', 0);
$active = get_request('active', 0);
$period = get_request('period', ZBX_DEFAULT_INTERVAL);
$frmMedia = new CFormTable(_('New media'));
$frmMedia->addVar('media', $media);
$frmMedia->addVar('dstfrm', $_REQUEST['dstfrm']);
$cmbType = new CComboBox('mediatypeid', $mediatypeid);
$types = DBfetchArrayAssoc(DBselect('SELECT mt.mediatypeid,mt.description' . ' FROM media_type mt' . whereDbNode('mt.mediatypeid')), 'mediatypeid');
CArrayHelper::sort($types, array('description'));
foreach ($types as $mediaTypeId => $type) {
    $cmbType->addItem($mediaTypeId, get_node_name_by_elid($type['mediatypeid'], null, NAME_DELIMITER) . $type['description']);
}
$frmMedia->addRow(_('Type'), $cmbType);
$frmMedia->addRow(_('Send to'), new CTextBox('sendto', $sendto, 48));
$frmMedia->addRow(_('When active'), new CTextBox('period', $period, 48));
$frm_row = array();
foreach (getSeverityCaption() as $i => $caption) {
    $frm_row[] = array(new CCheckBox('severity[' . $i . ']', str_in_array($i, $severity), null, $i), $caption);
    $frm_row[] = BR();
}
$frmMedia->addRow(_('Use if severity'), $frm_row);
$cmbStat = new CComboBox('active', $active);
$cmbStat->addItem(0, _('Enabled'));
Пример #11
0
            $data['mappings'] = get_request('mappings', array());
        }
        $valueMapCount = DBfetch(DBselect('SELECT COUNT(i.itemid) AS cnt FROM items i WHERE i.valuemapid=' . zbx_dbstr($data['valuemapid'])));
        $data['confirmMessage'] = $valueMapCount['cnt'] ? _n('Delete selected value mapping? It is used for %d item!', 'Delete selected value mapping? It is used for %d items!', $valueMapCount['cnt']) : _('Delete selected value mapping?');
    }
    if (empty($data['valuemapid']) && !empty($data['form_refresh'])) {
        $data['mapname'] = get_request('mapname', '');
        $data['mappings'] = get_request('mappings', array());
    }
    order_result($data['mappings'], 'value');
    $valueMapForm = new CView('administration.general.valuemapping.edit', $data);
} else {
    $data = array('valuemaps' => array(), 'displayNodes' => is_array(get_current_nodeid()));
    $valueMapWidget->addHeader(_('Value mapping'));
    $valueMapWidget->addItem(BR());
    $dbValueMaps = DBselect('SELECT v.valuemapid,v.name' . ' FROM valuemaps v' . whereDbNode('v.valuemapid'));
    while ($dbValueMap = DBfetch($dbValueMaps)) {
        $dbValueMap['nodename'] = $data['displayNodes'] ? get_node_name_by_elid($dbValueMap['valuemapid'], true) : '';
        $data['valuemaps'][$dbValueMap['valuemapid']] = $dbValueMap;
        $data['valuemaps'][$dbValueMap['valuemapid']]['maps'] = array();
    }
    order_result($data['valuemaps'], 'name');
    $dbMaps = DBselect('SELECT m.valuemapid,m.value,m.newvalue' . ' FROM mappings m' . whereDbNode('m.mappingid'));
    while ($dbMap = DBfetch($dbMaps)) {
        $data['valuemaps'][$dbMap['valuemapid']]['maps'][] = array('value' => $dbMap['value'], 'newvalue' => $dbMap['newvalue']);
    }
    $valueMapForm = new CView('administration.general.valuemapping.list', $data);
}
$valueMapWidget->addItem($valueMapForm->render());
$valueMapWidget->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
Пример #12
0
    $screens = API::Screen()->get(array('nodeids' => $nodeId, 'output' => array('screenid', 'name'), 'editable' => $writeonly === null ? null : true));
    order_result($screens, 'name');
    foreach ($screens as $screen) {
        if (check_screen_recursion($_REQUEST['screenid'], $screen['screenid'])) {
            continue;
        }
        $name = new CLink($screen['name'], '#');
        $action = get_window_opener($dstfrm, $dstfld1, $screen[$srcfld1]) . (isset($srcfld2) ? get_window_opener($dstfrm, $dstfld2, $screen[$srcfld2]) : '');
        $name->setAttribute('onclick', $action . ' close_window(); return false;');
        $table->addRow($name);
    }
    $table->show();
} elseif ($srctbl == 'drules') {
    $table = new CTableInfo(_('No discovery rules found.'));
    $table->setHeader(_('Name'));
    $result = DBselect('SELECT d.*' . ' FROM drules d' . whereDbNode('d.druleid', $nodeId));
    while ($row = DBfetch($result)) {
        $action = get_window_opener($dstfrm, $dstfld1, $row[$srcfld1]) . (isset($srcfld2) ? get_window_opener($dstfrm, $dstfld2, $row[$srcfld2]) : '');
        $name = new CSpan($row['name'], 'link');
        $name->setAttribute('onclick', $action . ' close_window(); return false;');
        $table->addRow($name);
    }
    $table->show();
} elseif ($srctbl == 'dchecks') {
    $table = new CTableInfo(_('No discovery rules found.'));
    $table->setHeader(_('Name'));
    $dRules = API::DRule()->get(array('selectDChecks' => array('dcheckid', 'type', 'key_', 'ports'), 'output' => array('name'), 'nodeids' => $nodeId));
    foreach ($dRules as $dRule) {
        foreach ($dRule['dchecks'] as $dCheck) {
            $name = $dRule['name'] . NAME_DELIMITER . discovery_check2str($dCheck['type'], $dCheck['key_'], $dCheck['ports']);
            $action = get_window_opener($dstfrm, $dstfld1, $dCheck[$srcfld1]) . (isset($srcfld2) ? get_window_opener($dstfrm, $dstfld2, $name) : '');
Пример #13
0
/**
 * Returns the host groups that are accessible by the current user with the permission level given in $perm.
 *
 * Can return results in different formats, based on the $per_res parameter. Possible values are:
 * - PERM_RES_IDS_ARRAY - return only host group ids;
 * - PERM_RES_DATA_ARRAY - return an array of host groups.
 *
 * @param array    $userData		an array defined as array('userid' => userid, 'type' => type)
 * @param int      $perm			requested permission level
 * @param int|null $permRes			result format
 * @param int      $nodeId
 *
 * @return array
 */
function get_accessible_groups_by_user($userData, $perm, $permRes = PERM_RES_IDS_ARRAY, $nodeId = null)
{
    $userId =& $userData['userid'];
    if (!isset($userId)) {
        fatal_error(_('Incorrect user data in "get_accessible_groups_by_user".'));
    }
    if (is_null($nodeId)) {
        $nodeId = get_current_nodeid();
    }
    $userType =& $userData['type'];
    $result = array();
    $processed = array();
    if ($userType == USER_TYPE_SUPER_ADMIN) {
        $sql = 'SELECT n.nodeid AS nodeid,n.name AS node_name,hg.groupid,hg.name' . ' FROM groups hg' . ' LEFT JOIN nodes n ON ' . DBid2nodeid('hg.groupid') . '=n.nodeid' . whereDbNode('hg.groupid', $nodeId) . ' GROUP BY n.nodeid,n.name,hg.groupid,hg.name';
    } else {
        $sql = 'SELECT n.nodeid AS nodeid,n.name AS node_name,hg.groupid,hg.name,MAX(r.permission) AS permission,MIN(r.permission) AS permission_deny,g.userid' . ' FROM groups hg' . ' LEFT JOIN rights r ON r.id=hg.groupid' . ' LEFT JOIN users_groups g ON r.groupid=g.usrgrpid' . ' LEFT JOIN nodes n ON ' . DBid2nodeid('hg.groupid') . '=n.nodeid' . ' WHERE g.userid=' . zbx_dbstr($userId) . andDbNode('hg.groupid', $nodeId) . ' GROUP BY n.nodeid,n.name,hg.groupid,hg.name,g.userid';
    }
    $dbGroups = DBselect($sql);
    while ($groupData = DBfetch($dbGroups)) {
        if (zbx_empty($groupData['nodeid'])) {
            $groupData['nodeid'] = id2nodeid($groupData['groupid']);
        }
        // calculate permissions
        if ($userType == USER_TYPE_SUPER_ADMIN) {
            $groupData['permission'] = PERM_READ_WRITE;
        } elseif (isset($processed[$groupData['groupid']])) {
            if ($groupData['permission_deny'] == PERM_DENY) {
                unset($result[$groupData['groupid']]);
            } elseif ($processed[$groupData['groupid']] > $groupData['permission']) {
                unset($processed[$groupData['groupid']]);
            } else {
                continue;
            }
        }
        $processed[$groupData['groupid']] = $groupData['permission'];
        if ($groupData['permission'] < $perm) {
            continue;
        }
        switch ($permRes) {
            case PERM_RES_DATA_ARRAY:
                $result[$groupData['groupid']] = $groupData;
                break;
            default:
                $result[$groupData['groupid']] = $groupData['groupid'];
                break;
        }
    }
    unset($processed, $groupData, $dbGroups);
    if ($userType == USER_TYPE_SUPER_ADMIN) {
        CArrayHelper::sort($result, array(array('field' => 'node_name', 'order' => ZBX_SORT_UP), array('field' => 'name', 'order' => ZBX_SORT_UP)));
    } else {
        CArrayHelper::sort($result, array(array('field' => 'node_name', 'order' => ZBX_SORT_UP), array('field' => 'name', 'order' => ZBX_SORT_UP), array('field' => 'permission', 'order' => ZBX_SORT_UP)));
    }
    return $result;
}
Пример #14
0
    echo $dstfrm;
    ?>
'];
<!--
<?php 
    foreach ($new_groups as $id) {
        echo 'add_var_to_opener_obj(form,"new_groups[' . $id . ']","' . $id . '")' . "\r";
    }
    ?>
if(form){
	form.submit();
	close_window();
}
-->
</script>
<?php 
}
$form = new CForm();
$form->addVar('dstfrm', $dstfrm);
$form->setName('groups');
$table = new CTableInfo(_('No user groups found.'));
$table->setHeader(array(new CCheckBox("all_groups", NULL, "checkAll('" . $form->getName() . "','all_groups','new_groups');"), _('Name')));
$userGroups = DBfetchArray(DBselect('SELECT ug.usrgrpid,ug.name FROM usrgrp ug ' . whereDbNode('ug.usrgrpid')));
order_result($userGroups, 'name');
foreach ($userGroups as $userGroup) {
    $table->addRow(array(new CCheckBox('new_groups[' . $userGroup['usrgrpid'] . ']', isset($new_groups[$userGroup['usrgrpid']]), null, $userGroup['usrgrpid']), $userGroup['name']));
}
$table->setFooter(new CCol(new CSubmit('select', _('Select'))));
$form->addItem($table);
$form->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
Пример #15
0
function get_status()
{
    global $ZBX_SERVER, $ZBX_SERVER_PORT;
    $status = array('triggers_count' => 0, 'triggers_count_enabled' => 0, 'triggers_count_disabled' => 0, 'triggers_count_off' => 0, 'triggers_count_on' => 0, 'items_count' => 0, 'items_count_monitored' => 0, 'items_count_disabled' => 0, 'items_count_not_supported' => 0, 'hosts_count' => 0, 'hosts_count_monitored' => 0, 'hosts_count_not_monitored' => 0, 'hosts_count_template' => 0, 'users_online' => 0, 'qps_total' => 0);
    // server
    $zabbixServer = new CZabbixServer($ZBX_SERVER, $ZBX_SERVER_PORT, ZBX_SOCKET_TIMEOUT, 0);
    $status['zabbix_server'] = $zabbixServer->isRunning() ? _('Yes') : _('No');
    // triggers
    $dbTriggers = DBselect('SELECT COUNT(DISTINCT t.triggerid) AS cnt,t.status,t.value' . ' FROM triggers t' . ' INNER JOIN functions f ON t.triggerid=f.triggerid' . ' INNER JOIN items i ON f.itemid=i.itemid' . ' INNER JOIN hosts h ON i.hostid=h.hostid' . ' WHERE i.status=' . ITEM_STATUS_ACTIVE . ' AND h.status=' . HOST_STATUS_MONITORED . ' AND t.flags IN (' . ZBX_FLAG_DISCOVERY_NORMAL . ',' . ZBX_FLAG_DISCOVERY_CREATED . ')' . ' GROUP BY t.status,t.value');
    while ($dbTrigger = DBfetch($dbTriggers)) {
        switch ($dbTrigger['status']) {
            case TRIGGER_STATUS_ENABLED:
                switch ($dbTrigger['value']) {
                    case TRIGGER_VALUE_FALSE:
                        $status['triggers_count_off'] = $dbTrigger['cnt'];
                        break;
                    case TRIGGER_VALUE_TRUE:
                        $status['triggers_count_on'] = $dbTrigger['cnt'];
                        break;
                }
                break;
            case TRIGGER_STATUS_DISABLED:
                $status['triggers_count_disabled'] += $dbTrigger['cnt'];
                break;
        }
    }
    $status['triggers_count_enabled'] = $status['triggers_count_off'] + $status['triggers_count_on'];
    $status['triggers_count'] = $status['triggers_count_enabled'] + $status['triggers_count_disabled'];
    // items
    $dbItems = DBselect('SELECT COUNT(i.itemid) AS cnt,i.status,i.state' . ' FROM items i' . ' INNER JOIN hosts h ON i.hostid=h.hostid' . ' WHERE h.status=' . HOST_STATUS_MONITORED . ' AND i.flags IN (' . ZBX_FLAG_DISCOVERY_NORMAL . ',' . ZBX_FLAG_DISCOVERY_CREATED . ')' . ' AND i.type<>' . ITEM_TYPE_HTTPTEST . ' GROUP BY i.status,i.state');
    while ($dbItem = DBfetch($dbItems)) {
        if ($dbItem['status'] == ITEM_STATUS_ACTIVE) {
            if ($dbItem['state'] == ITEM_STATE_NORMAL) {
                $status['items_count_monitored'] = $dbItem['cnt'];
            } else {
                $status['items_count_not_supported'] = $dbItem['cnt'];
            }
        } elseif ($dbItem['status'] == ITEM_STATUS_DISABLED) {
            $status['items_count_disabled'] += $dbItem['cnt'];
        }
    }
    $status['items_count'] = $status['items_count_monitored'] + $status['items_count_disabled'] + $status['items_count_not_supported'];
    // hosts
    $dbHosts = DBselect('SELECT COUNT(*) AS cnt,h.status' . ' FROM hosts h' . ' WHERE ' . dbConditionInt('h.status', array(HOST_STATUS_MONITORED, HOST_STATUS_NOT_MONITORED, HOST_STATUS_TEMPLATE)) . ' AND ' . dbConditionInt('h.flags', array(ZBX_FLAG_DISCOVERY_NORMAL, ZBX_FLAG_DISCOVERY_CREATED)) . ' GROUP BY h.status');
    while ($dbHost = DBfetch($dbHosts)) {
        switch ($dbHost['status']) {
            case HOST_STATUS_MONITORED:
                $status['hosts_count_monitored'] = $dbHost['cnt'];
                break;
            case HOST_STATUS_NOT_MONITORED:
                $status['hosts_count_not_monitored'] = $dbHost['cnt'];
                break;
            case HOST_STATUS_TEMPLATE:
                $status['hosts_count_template'] = $dbHost['cnt'];
                break;
        }
    }
    $status['hosts_count'] = $status['hosts_count_monitored'] + $status['hosts_count_not_monitored'] + $status['hosts_count_template'];
    // users
    $row = DBfetch(DBselect('SELECT COUNT(*) AS usr_cnt' . ' FROM users u' . whereDbNode('u.userid')));
    $status['users_count'] = $row['usr_cnt'];
    $status['users_online'] = 0;
    $db_sessions = DBselect('SELECT s.userid,s.status,MAX(s.lastaccess) AS lastaccess' . ' FROM sessions s' . ' WHERE s.status=' . ZBX_SESSION_ACTIVE . andDbNode('s.userid') . ' GROUP BY s.userid,s.status');
    while ($session = DBfetch($db_sessions)) {
        if ($session['lastaccess'] + ZBX_USER_ONLINE_TIME >= time()) {
            $status['users_online']++;
        }
    }
    // comments: !!! Don't forget sync code with C !!!
    $row = DBfetch(DBselect('SELECT SUM(1.0/i.delay) AS qps' . ' FROM items i,hosts h' . ' WHERE i.status=' . ITEM_STATUS_ACTIVE . ' AND i.hostid=h.hostid' . ' AND h.status=' . HOST_STATUS_MONITORED . ' AND i.delay<>0'));
    $status['qps_total'] = round($row['qps'], 2);
    return $status;
}
Пример #16
0
function update_config($configs)
{
    $update = array();
    if (isset($configs['work_period'])) {
        $timePeriodValidator = new CTimePeriodValidator();
        if (!$timePeriodValidator->validate($configs['work_period'])) {
            error(_('Incorrect working time.'));
            return false;
        }
    }
    if (isset($configs['alert_usrgrpid'])) {
        if ($configs['alert_usrgrpid'] != 0 && !DBfetch(DBselect('SELECT u.usrgrpid FROM usrgrp u WHERE u.usrgrpid=' . zbx_dbstr($configs['alert_usrgrpid'])))) {
            error(_('Incorrect user group.'));
            return false;
        }
    }
    if (isset($configs['discovery_groupid'])) {
        $groupid = API::HostGroup()->get(array('groupids' => $configs['discovery_groupid'], 'output' => array('groupid'), 'preservekeys' => true));
        if (empty($groupid)) {
            error(_('Incorrect host group.'));
            return false;
        }
    }
    // checking color values to be correct hexadecimal numbers
    $colors = array('severity_color_0', 'severity_color_1', 'severity_color_2', 'severity_color_3', 'severity_color_4', 'severity_color_5', 'problem_unack_color', 'problem_ack_color', 'ok_unack_color', 'ok_ack_color');
    $colorvalidator = new CColorValidator();
    foreach ($colors as $color) {
        if (isset($configs[$color]) && !is_null($configs[$color])) {
            if (!$colorvalidator->validate($configs[$color])) {
                error($colorvalidator->getError());
                return false;
            }
        }
    }
    if (isset($configs['ok_period']) && !is_null($configs['ok_period']) && !ctype_digit($configs['ok_period'])) {
        error(_('"Display OK triggers" needs to be "0" or a positive integer.'));
        return false;
    }
    if (isset($configs['blink_period']) && !is_null($configs['blink_period']) && !ctype_digit($configs['blink_period'])) {
        error(_('"Triggers blink on status change" needs to be "0" or a positive integer.'));
        return false;
    }
    $currentConfig = select_config();
    // check duplicate severity names and if name is empty.
    $names = array();
    for ($i = 0; $i < TRIGGER_SEVERITY_COUNT; $i++) {
        $varName = 'severity_name_' . $i;
        if (!isset($configs[$varName]) || is_null($configs[$varName])) {
            $configs[$varName] = $currentConfig[$varName];
        }
        if ($configs[$varName] == '') {
            error(_('Severity name cannot be empty.'));
            return false;
        }
        if (isset($names[$configs[$varName]])) {
            error(_s('Duplicate severity name "%s".', $configs[$varName]));
            return false;
        } else {
            $names[$configs[$varName]] = 1;
        }
    }
    foreach ($configs as $key => $value) {
        if (!is_null($value)) {
            if ($key == 'alert_usrgrpid') {
                $update[] = $key . '=' . ($value == '0' ? 'NULL' : $value);
            } else {
                $update[] = $key . '=' . zbx_dbstr($value);
            }
        }
    }
    if (count($update) == 0) {
        error(_('Nothing to do.'));
        return null;
    }
    return DBexecute('UPDATE config' . ' SET ' . implode(',', $update) . whereDbNode('configid', false));
}
Пример #17
0
     $usrgrps = API::UserGroup()->get(array('usrgrpids' => $usrgrpids, 'output' => array('name')));
     order_result($usrgrps, 'name');
     $users = API::User()->get(array('userids' => $userids, 'output' => array('alias', 'name', 'surname')));
     order_result($users, 'alias');
     foreach ($users as &$user) {
         $user['fullname'] = getUserFullname($user);
     }
     unset($user);
     $jsInsert = 'addPopupValues(' . zbx_jsvalue(array('object' => 'usrgrpid', 'values' => $usrgrps)) . ');';
     $jsInsert .= 'addPopupValues(' . zbx_jsvalue(array('object' => 'userid', 'values' => $users)) . ');';
     zbx_add_post_js($jsInsert);
     $newOperationsTable->addRow(array(_('Send to User groups'), new CDiv($usrgrpList, 'objectgroup inlineblock border_dotted ui-corner-all')));
     $newOperationsTable->addRow(array(_('Send to Users'), new CDiv($userList, 'objectgroup inlineblock border_dotted ui-corner-all')));
     $mediaTypeComboBox = new CComboBox('new_operation[opmessage][mediatypeid]', $this->data['new_operation']['opmessage']['mediatypeid']);
     $mediaTypeComboBox->addItem(0, '- ' . _('All') . ' -');
     $dbMediaTypes = DBfetchArray(DBselect('SELECT mt.mediatypeid,mt.description' . ' FROM media_type mt' . whereDbNode('mt.mediatypeid')));
     order_result($dbMediaTypes, 'description');
     foreach ($dbMediaTypes as $dbMediaType) {
         $mediaTypeComboBox->addItem($dbMediaType['mediatypeid'], $dbMediaType['description']);
     }
     $newOperationsTable->addRow(array(_('Send only to'), $mediaTypeComboBox));
     $newOperationsTable->addRow(array(_('Default message'), new CCheckBox('new_operation[opmessage][default_msg]', $this->data['new_operation']['opmessage']['default_msg'], 'javascript: submit();', 1)), 'indent_top');
     if (!$this->data['new_operation']['opmessage']['default_msg']) {
         $newOperationsTable->addRow(array(_('Subject'), new CTextBox('new_operation[opmessage][subject]', $this->data['new_operation']['opmessage']['subject'], ZBX_TEXTBOX_STANDARD_SIZE)));
         $newOperationsTable->addRow(array(_('Message'), new CTextArea('new_operation[opmessage][message]', $this->data['new_operation']['opmessage']['message'])));
     } else {
         $newOperationsTable->addItem(new CVar('new_operation[opmessage][subject]', $this->data['new_operation']['opmessage']['subject']));
         $newOperationsTable->addItem(new CVar('new_operation[opmessage][message]', $this->data['new_operation']['opmessage']['message']));
     }
     break;
 case OPERATION_TYPE_COMMAND:
Пример #18
0
    }
    // get slides without delay
    $data['slides_without_delay'] = $data['slides'];
    for ($i = 0, $size = count($data['slides_without_delay']); $i < $size; $i++) {
        unset($data['slides_without_delay'][$i]['delay']);
    }
    // render view
    $slideshowView = new CView('configuration.slideconf.edit', $data);
    $slideshowView->render();
    $slideshowView->show();
} else {
    $config = select_config();
    $limit = $config['search_limit'] + 1;
    $sortfield = getPageSortField('name');
    $sortorder = getPageSortOrder();
    $data['slides'] = DBfetchArray(DBselect('SELECT s.slideshowid,s.name,s.delay,COUNT(sl.slideshowid) AS cnt' . ' FROM slideshows s' . ' LEFT JOIN slides sl ON sl.slideshowid=s.slideshowid' . whereDbNode('s.slideshowid') . ' GROUP BY s.slideshowid,s.name,s.delay' . ' ORDER BY ' . ($sortfield === 'cnt' ? 'cnt' : 's.' . $sortfield)));
    foreach ($data['slides'] as $key => $slide) {
        if (!slideshow_accessible($slide['slideshowid'], PERM_READ_WRITE)) {
            unset($data['slides'][$key]);
        }
    }
    order_result($data['slides'], $sortfield, $sortorder);
    if ($sortorder == ZBX_SORT_UP) {
        $data['slides'] = array_slice($data['slides'], 0, $limit);
    } else {
        $data['slides'] = array_slice($data['slides'], -$limit, $limit);
    }
    order_result($data['slides'], $sortfield, $sortorder);
    $data['paging'] = getPagingLine($data['slides'], array('slideshowid'));
    // nodes
    if ($data['displayNodes'] = is_array(get_current_nodeid())) {