コード例 #1
0
ファイル: add_contact.php プロジェクト: jsib/intranet
function show_form_add_contact($contact = array(), $messages = array())
{
    //Определяем значение переменной
    $message_html = show_messages($messages);
    /*Подключаем шаблон*/
    return template_get("contacts/add_contact", array('name' => $contact['name'], 'message' => $message_html));
}
コード例 #2
0
function local_showMessage()
{
    global $ZBX_MESSAGES;
    if (CSession::keyExists('messageOk') || CSession::keyExists('messageError')) {
        if (CSession::keyExists('messages')) {
            $ZBX_MESSAGES = CSession::getValue('messages');
            CSession::unsetValue(['messages']);
        }
        if (CSession::keyExists('messageOk')) {
            show_messages(true, CSession::getValue('messageOk'));
        } else {
            show_messages(false, null, CSession::getValue('messageError'));
        }
        CSession::unsetValue(['messageOk', 'messageError']);
    }
}
コード例 #3
0
ファイル: popup_gitem.php プロジェクト: phedders/zabbix
include_once 'include/page_header.php';
//		VAR			TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
$fields = array('dstfrm' => array(T_ZBX_STR, O_MAND, P_SYS, NOT_EMPTY, null), 'graphid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null), 'gid' => array(T_ZBX_INT, O_OPT, P_SYS, BETWEEN(0, 65535), null), 'graphtype' => array(T_ZBX_INT, O_OPT, null, IN('0,1,2,3'), 'isset({save})'), 'list_name' => array(T_ZBX_STR, O_OPT, P_SYS, NOT_EMPTY, 'isset({save})&&isset({gid})'), 'itemid' => array(T_ZBX_INT, O_OPT, null, DB_ID . '({}!=0)', 'isset({save})'), 'color' => array(T_ZBX_CLR, O_OPT, null, null, 'isset({save})'), 'drawtype' => array(T_ZBX_INT, O_OPT, null, IN(graph_item_drawtypes()), 'isset({save})&&(({graphtype} == 0) || ({graphtype} == 1))'), 'sortorder' => array(T_ZBX_INT, O_OPT, null, BETWEEN(0, 65535), 'isset({save})&&(({graphtype} == 0) || ({graphtype} == 1))'), 'yaxisside' => array(T_ZBX_INT, O_OPT, null, IN('0,1'), 'isset({save})&&(({graphtype} == 0) || ({graphtype} == 1))'), 'calc_fnc' => array(T_ZBX_INT, O_OPT, null, IN('1,2,4,7,9'), 'isset({save})'), 'type' => array(T_ZBX_INT, O_OPT, null, IN('0,1,2'), 'isset({save})'), 'periods_cnt' => array(T_ZBX_INT, O_OPT, null, BETWEEN(0, 360), 'isset({save})'), 'only_hostid' => array(T_ZBX_INT, O_OPT, null, DB_ID, null), 'monitored_hosts' => array(T_ZBX_INT, O_OPT, null, IN('0,1'), null), 'add' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'save' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'form' => array(T_ZBX_STR, O_OPT, P_SYS, null, null), 'form_refresh' => array(T_ZBX_STR, O_OPT, null, null, null));
check_fields($fields);
insert_js_function('add_graph_item');
insert_js_function('update_graph_item');
$_REQUEST['drawtype'] = get_request('drawtype', 0);
$_REQUEST['yaxisside'] = get_request('yaxisside', 0);
$_REQUEST['sortorder'] = get_request('sortorder', 0);
$graphid = get_request('graphid', false);
if (isset($_REQUEST['type']) && $_REQUEST['type'] == GRAPH_ITEM_SUM && $graphid !== false) {
    $sql = 'SELECT COUNT(itemid) as items' . ' FROM graphs_items ' . ' WHERE type=' . GRAPH_ITEM_SUM . ' AND graphid=' . $graphid . ' AND itemid<>' . $_REQUEST['itemid'];
    $res = DBselect($sql);
    while ($rows = DBfetch($res)) {
        if (isset($rows['items']) && $rows['items'] > 0) {
            show_messages(false, null, S_ANOTHER_ITEM_SUM);
            if (isset($_REQUEST['save'])) {
                unset($_REQUEST['save']);
            }
            $_REQUEST['type'] = GRAPH_ITEM_SIMPLE;
        }
    }
}
if (isset($_REQUEST['save']) && !isset($_REQUEST['gid'])) {
    $script = "add_graph_item('" . $_REQUEST['dstfrm'] . "','" . $_REQUEST['itemid'] . "','" . $_REQUEST['color'] . "'," . $_REQUEST['drawtype'] . "," . $_REQUEST['sortorder'] . "," . $_REQUEST['yaxisside'] . "," . $_REQUEST['calc_fnc'] . "," . $_REQUEST['type'] . "," . $_REQUEST['periods_cnt'] . ");\n";
    insert_js($script);
}
if (isset($_REQUEST['save']) && isset($_REQUEST['gid'])) {
    $script = "update_graph_item('" . $_REQUEST['dstfrm'] . "','" . $_REQUEST['list_name'] . "','" . $_REQUEST['gid'] . "','" . $_REQUEST['itemid'] . "','" . $_REQUEST['color'] . "'," . $_REQUEST['drawtype'] . "," . $_REQUEST['sortorder'] . "," . $_REQUEST['yaxisside'] . "," . $_REQUEST['calc_fnc'] . "," . $_REQUEST['type'] . "," . $_REQUEST['periods_cnt'] . ");\n";
    insert_js($script);
} else {
コード例 #4
0
ファイル: tr_comments.php プロジェクト: jbfavre/debian-zabbix
$trigger = API::Trigger()->get(['triggerids' => $_REQUEST['triggerid'], 'output' => API_OUTPUT_EXTEND, 'expandDescription' => true]);
if (!$trigger) {
    access_deny();
}
$trigger = reset($trigger);
/*
 * Actions
 */
if (hasRequest('update')) {
    DBstart();
    $result = DBexecute('UPDATE triggers' . ' SET comments=' . zbx_dbstr(getRequest('comments')) . ' WHERE triggerid=' . zbx_dbstr(getRequest('triggerid')));
    $trigger['comments'] = $_REQUEST['comments'];
    if ($result) {
        add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_TRIGGER, _('Trigger') . ' [' . $_REQUEST['triggerid'] . '] [' . $trigger['description'] . '] ' . _('Comments') . ' [' . $_REQUEST['comments'] . ']');
    }
    $result = DBend($result);
    show_messages($result, _('Description updated'), _('Cannot update description'));
} elseif (isset($_REQUEST['cancel'])) {
    jsRedirect('tr_status.php');
    exit;
}
/*
 * Display
 */
$triggerEditable = API::Trigger()->get(['triggerids' => $_REQUEST['triggerid'], 'output' => ['triggerid'], 'editable' => true]);
$data = ['triggerid' => getRequest('triggerid'), 'trigger' => $trigger, 'isTriggerEditable' => !empty($triggerEditable), 'isCommentExist' => !empty($trigger['comments'])];
// render view
$triggerCommentView = new CView('monitoring.triggerComment', $data);
$triggerCommentView->render();
$triggerCommentView->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
コード例 #5
0
ファイル: media_types.php プロジェクト: rennhak/zabbix
        /* ADD */
        /*			$action = AUDIT_ACTION_ADD;*/
        $result = add_mediatype($_REQUEST["type"], $_REQUEST["description"], get_request("smtp_server"), get_request("smtp_helo"), get_request("smtp_email"), get_request("exec_path"), get_request("gsm_modem"), get_request('username'), get_request('password'));
        show_messages($result, S_ADDED_NEW_MEDIA_TYPE, S_NEW_MEDIA_TYPE_WAS_NOT_ADDED);
    }
    if ($result) {
        /*			add_audit($action,AUDIT_RESOURCE_MEDIA_TYPE,
        				"Media type [".$_REQUEST["description"]."]");
        */
        unset($_REQUEST["form"]);
    }
} elseif (isset($_REQUEST["delete"]) && isset($_REQUEST["mediatypeid"])) {
    /* DELETE */
    /*		$mediatype=get_mediatype_by_mediatypeid($_REQUEST["mediatypeid"]);*/
    $result = delete_mediatype($_REQUEST["mediatypeid"]);
    show_messages($result, S_MEDIA_TYPE_DELETED, S_MEDIA_TYPE_WAS_NOT_DELETED);
    if ($result) {
        /*			add_audit(AUDIT_ACTION_DELETE,AUDIT_RESOURCE_MEDIA_TYPE,
        				"Media type [".$mediatype["description"]."]");
        */
        unset($_REQUEST["form"]);
    }
}
$form = new CForm();
$form->SetMethod('get');
$form->AddItem(new CButton("form", S_CREATE_MEDIA_TYPE));
$row_count = 0;
$numrows = new CSpan(null, 'info');
$numrows->addOption('name', 'numrows');
$header = get_table_header(array(S_CONFIGURATION_OF_MEDIA_TYPES_BIG, new CSpan(SPACE . SPACE . '|' . SPACE . SPACE, 'divider'), S_FOUND . ': ', $numrows));
show_table_header($header, $form);
コード例 #6
0
ファイル: blocks.inc.php プロジェクト: phedders/zabbix
function make_status_of_zbx()
{
    $table = new CTableInfo();
    $table->setHeader(array(S_PARAMETER, S_VALUE, S_DETAILS));
    show_messages();
    //because in function get_status(); function clear_messages() is called when fsockopen() fails.
    $status = get_status();
    $table->addRow(array(S_ZABBIX_SERVER_IS_RUNNING, new CSpan($status['zabbix_server'], $status['zabbix_server'] == S_YES ? 'off' : 'on'), ' - '));
    //	$table->addRow(array(S_VALUES_STORED,$status['history_count']));$table->addRow(array(S_TRENDS_STORED,$status['trends_count']));
    $title = new CSpan(S_NUMBER_OF_HOSTS);
    $title->setAttribute('title', 'asdad');
    $table->addRow(array(S_NUMBER_OF_HOSTS, $status['hosts_count'], array(new CSpan($status['hosts_count_monitored'], 'off'), ' / ', new CSpan($status['hosts_count_not_monitored'], 'on'), ' / ', new CSpan($status['hosts_count_template'], 'unknown'))));
    $title = new CSpan(S_NUMBER_OF_ITEMS);
    $title->setAttribute('title', S_NUMBER_OF_ITEMS_TOOLTIP);
    $table->addRow(array($title, $status['items_count'], array(new CSpan($status['items_count_monitored'], 'off'), ' / ', new CSpan($status['items_count_disabled'], 'on'), ' / ', new CSpan($status['items_count_not_supported'], 'unknown'))));
    $title = new CSpan(S_NUMBER_OF_TRIGGERS);
    $title->setAttribute('title', S_NUMBER_OF_TRIGGERS_TOOLTIP);
    $table->addRow(array($title, $status['triggers_count'], array($status['triggers_count_enabled'], ' / ', $status['triggers_count_disabled'] . SPACE . SPACE . '[', new CSpan($status['triggers_count_on'], 'on'), ' / ', new CSpan($status['triggers_count_unknown'], 'unknown'), ' / ', new CSpan($status['triggers_count_off'], 'off'), ']')));
    /*	$table->addRow(array(S_NUMBER_OF_EVENTS,$status['events_count'],' - '));
    	$table->addRow(array(S_NUMBER_OF_ALERTS,$status['alerts_count'],' - '));*/
    //Log Out 10min
    $sql = 'SELECT DISTINCT u.userid, MAX(s.lastaccess) as lastaccess, MAX(u.autologout) as autologout, s.status ' . ' FROM users u ' . ' LEFT JOIN sessions s ON s.userid=u.userid AND s.status=' . ZBX_SESSION_ACTIVE . ' WHERE ' . DBin_node('u.userid') . ' GROUP BY u.userid,s.status';
    $db_users = DBSelect($sql);
    $usr_cnt = 0;
    $online_cnt = 0;
    while ($user = DBFetch($db_users)) {
        $online_time = $user['autologout'] == 0 || ZBX_USER_ONLINE_TIME < $user['autologout'] ? ZBX_USER_ONLINE_TIME : $user['autologout'];
        if (!is_null($user['lastaccess']) && $user['lastaccess'] + $online_time >= time() && ZBX_SESSION_ACTIVE == $user['status']) {
            $online_cnt++;
        }
        $usr_cnt++;
    }
    $table->addRow(array(S_NUMBER_OF_USERS, $usr_cnt, new CSpan($online_cnt, 'green')));
    $table->addRow(array(S_REQUIRED_SERVER_PERFORMANCE_NVPS, $status['qps_total'], ' - '));
    $table->setFooter(new CCol(S_UPDATED . ': ' . date("H:i:s", time())));
    return $table;
}
コード例 #7
0
ファイル: adm.regexps.php プロジェクト: jbfavre/debian-zabbix
        $regExps[$regExpId] = getRegexp($regExpId);
    }
    DBstart();
    $result = DBexecute('DELETE FROM regexps WHERE ' . dbConditionInt('regexpid', $regExpIds));
    $regExpCount = count($regExpIds);
    if ($result) {
        foreach ($regExps as $regExpId => $regExp) {
            add_audit(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_REGEXP, 'Id [' . $regExpId . '] ' . _('Name') . ' [' . $regExp['name'] . ']');
        }
        unset($_REQUEST['form'], $_REQUEST['regexpid']);
    }
    $result = DBend($result);
    if ($result) {
        uncheckTableRows();
    }
    show_messages($result, _n('Regular expression deleted', 'Regular expressions deleted', $regExpCount), _n('Cannot delete regular expression', 'Cannot delete regular expressions', $regExpCount));
}
/*
 * Display
 */
if (isset($_REQUEST['form'])) {
    $data = ['form_refresh' => getRequest('form_refresh'), 'regexpid' => getRequest('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'])));
        $data['name'] = $regExp['name'];
        $data['test_string'] = $regExp['test_string'];
        $data['expressions'] = DBfetchArray(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']) . ' ORDER BY e.expression_type'));
    } else {
        $data['name'] = getRequest('name', '');
        $data['test_string'] = getRequest('test_string', '');
        $data['expressions'] = getRequest('expressions', [['expression' => '', 'expression_type' => EXPRESSION_TYPE_INCLUDED, 'exp_delimiter' => ',', 'case_sensitive' => 0]]);
コード例 #8
0
ファイル: sysmaps.php プロジェクト: phedders/zabbix
    } else {
        if ($_REQUEST['go'] == 'delete') {
            $result = true;
            $maps = get_request('maps', array());
            DBstart();
            foreach ($maps as $mapid) {
                $result &= delete_sysmap($mapid);
                if (!$result) {
                    break;
                }
            }
            $result = DBend($result);
            if ($result) {
                unset($_REQUEST["form"]);
            }
            show_messages($result, S_MAP_DELETED, S_CANNOT_DELETE_MAP);
        }
    }
}
$form = new CForm();
$form->SetMethod('get');
$form->AddItem(new CButton("form", S_CREATE_MAP));
show_table_header(S_CONFIGURATION_OF_NETWORK_MAPS, $form);
echo SBR;
if (isset($_REQUEST["form"])) {
    insert_map_form();
} else {
    $form = new CForm();
    $form->setName('frm_maps');
    $numrows = new CSpan(null, 'info');
    $numrows->setAttribute('name', 'numrows');
コード例 #9
0
ファイル: func.inc.php プロジェクト: TonywalkerCN/Zabbix
function show_error_message($msg)
{
    show_messages(false, '', $msg);
}
コード例 #10
0
    $actionSuccessful = true;
    $updatedItemCount = 0;
    DBstart();
    foreach ($applications as $application) {
        foreach ($application['items'] as $item) {
            $actionSuccessful &= $enableApplicationItems ? activate_item($item['itemid']) : disable_item($item['itemid']);
            $updatedItemCount++;
        }
    }
    $actionSuccessful = DBend($actionSuccessful);
    if ($actionSuccessful) {
        uncheckTableRows($pageFilter->hostid);
    }
    $messageSuccess = $enableApplicationItems ? _n('Item enabled', 'Items enabled', $updatedItemCount) : _n('Item disabled', 'Items disabled', $updatedItemCount);
    $messageFailed = $enableApplicationItems ? _n('Cannot enable item', 'Cannot enable items', $updatedItemCount) : _n('Cannot disable item', 'Cannot disable items', $updatedItemCount);
    show_messages($actionSuccessful, $messageSuccess, $messageFailed);
}
/*
 * Display
 */
if (isset($_REQUEST['form'])) {
    $data = array('applicationid' => getRequest('applicationid'), 'form' => getRequest('form'), 'form_refresh' => getRequest('form_refresh', 0));
    if (isset($data['applicationid']) && !isset($_REQUEST['form_refresh'])) {
        $dbApplication = reset($dbApplication);
        $data['appname'] = $dbApplication['name'];
        $data['hostid'] = $dbApplication['hostid'];
    } else {
        $data['appname'] = getRequest('appname', '');
        $data['hostid'] = getRequest('hostid');
    }
    // render view
コード例 #11
0
ファイル: adm.images.php プロジェクト: jbfavre/debian-zabbix
        show_messages($result, $msgOk, $msgFail);
    } catch (Exception $e) {
        DBend(false);
        error($e->getMessage());
        show_error_message($msgFail);
    }
} elseif (isset($_REQUEST['delete']) && isset($_REQUEST['imageid'])) {
    DBstart();
    $image = get_image_by_imageid($_REQUEST['imageid']);
    $result = API::Image()->delete([getRequest('imageid')]);
    if ($result) {
        add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_IMAGE, 'Image [' . $image['name'] . '] deleted');
        unset($_REQUEST['form'], $image, $_REQUEST['imageid']);
    }
    $result = DBend($result);
    show_messages($result, _('Image deleted'), _('Cannot delete image'));
}
/*
 * Display
 */
$data = ['form' => getRequest('form')];
if (!empty($data['form'])) {
    if (isset($_REQUEST['imageid'])) {
        $data['imageid'] = $_REQUEST['imageid'];
        $data['imagename'] = $dbImage['name'];
        $data['imagetype'] = $dbImage['imagetype'];
    } else {
        $data['imageid'] = null;
        $data['imagename'] = getRequest('name', '');
        $data['imagetype'] = getRequest('imagetype', IMAGE_TYPE_ICON);
    }
コード例 #12
0
        add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_ITEM, _('Item') . ' [' . $item['key_'] . '] [' . $id . '] ' . _('Host') . ' [' . $host['host'] . '] ' . _('History cleared'));
    }
    $go_result = DBend($go_result);
    show_messages($go_result, _('History cleared'), $go_result);
} elseif ($_REQUEST['go'] == 'delete' && isset($_REQUEST['group_itemid'])) {
    DBstart();
    $group_itemid = $_REQUEST['group_itemid'];
    $itemsToDelete = API::Item()->get(array('output' => array('key_', 'itemid'), 'selectHosts' => array('name'), 'itemids' => $group_itemid, 'preservekeys' => true));
    $go_result = API::Item()->delete($group_itemid);
    if ($go_result) {
        foreach ($itemsToDelete as $item) {
            $host = reset($item['hosts']);
            add_audit(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_ITEM, _('Item') . ' [' . $item['key_'] . '] [' . $item['itemid'] . '] ' . _('Host') . ' [' . $host['name'] . ']');
        }
    }
    show_messages(DBend($go_result), _('Items deleted'), _('Cannot delete items'));
}
if ($_REQUEST['go'] != 'none' && !empty($go_result)) {
    $url = new CUrl();
    $path = $url->getPath();
    insert_js('cookie.eraseArray("' . $path . '")');
}
/*
 * Display
 */
if (isset($_REQUEST['form']) && str_in_array($_REQUEST['form'], array(_('Create item'), 'update', 'clone'))) {
    $data = getItemFormData();
    $data['page_header'] = _('CONFIGURATION OF ITEMS');
    // render view
    $itemView = new CView('configuration.item.edit', $data);
    $itemView->render();
コード例 #13
0
    if ($actHosts) {
        DBstart();
        $result = updateHostStatus($actHosts, $status);
        $result = DBend($result);
        $updated = count($actHosts);
        $messageSuccess = $enable ? _n('Host enabled', 'Hosts enabled', $updated) : _n('Host disabled', 'Hosts disabled', $updated);
        $messageFailed = $enable ? _n('Cannot enable host', 'Cannot enable hosts', $updated) : _n('Cannot disable host', 'Cannot disable hosts', $updated);
        ################################################################
        # update racktables object
        require_once 'racktablesapi.php';
        $response = updateObjectStatus($hostNames, $status);
        if (isset($response['error'])) {
            show_messages(false, '', "Updating racktables object is failed. Error message:" . $response['error']);
        }
        ################################################################
        show_messages($result, $messageSuccess, $messageFailed);
        clearCookies($result);
    }
}
/*
 * Display
 */
$hostsWidget = new CWidget();
$pageFilter = new CPageFilter(array('groups' => array('real_hosts' => true, 'editable' => true), 'groupid' => get_request('groupid', null)));
$_REQUEST['groupid'] = $pageFilter->groupid;
$_REQUEST['hostid'] = get_request('hostid', 0);
if ($_REQUEST['go'] == 'massupdate' && isset($_REQUEST['hosts'])) {
    $hostsWidget->addPageHeader(_('CONFIGURATION OF HOSTS'));
    $data = array('hosts' => get_request('hosts', array()), 'visible' => get_request('visible', array()), 'mass_replace_tpls' => get_request('mass_replace_tpls'), 'mass_clear_tpls' => get_request('mass_clear_tpls'), 'groups' => get_request('groups', array()), 'newgroup' => get_request('newgroup', ''), 'status' => get_request('status', HOST_STATUS_MONITORED), 'proxy_hostid' => get_request('proxy_hostid', ''), 'ipmi_authtype' => get_request('ipmi_authtype', -1), 'ipmi_privilege' => get_request('ipmi_privilege', 2), 'ipmi_username' => get_request('ipmi_username', ''), 'ipmi_password' => get_request('ipmi_password', ''), 'inventory_mode' => get_request('inventory_mode', HOST_INVENTORY_DISABLED), 'host_inventory' => get_request('host_inventory', array()), 'templates' => get_request('templates', array()));
    // sort templates
    natsort($data['templates']);
コード例 #14
0
ファイル: conf.import.php プロジェクト: jbfavre/debian-zabbix
            if (array_key_exists('deleteMissing', $rule)) {
                $requestRules[$ruleName]['deleteMissing'] = false;
            }
        }
        if (!isset($requestRules[$ruleName]['updateExisting']) && isset($rule['updateExisting'])) {
            $requestRules[$ruleName]['updateExisting'] = false;
        }
        if (!isset($requestRules[$ruleName]['createMissing']) && isset($rule['createMissing'])) {
            $requestRules[$ruleName]['createMissing'] = false;
        }
        if (!isset($requestRules[$ruleName]['deleteMissing']) && isset($rule['deleteMissing'])) {
            $requestRules[$ruleName]['deleteMissing'] = false;
        }
    }
    $data['rules'] = $requestRules;
}
if (isset($_FILES['import_file'])) {
    $result = false;
    // CUploadFile throws exceptions, so we need to catch them
    try {
        $file = new CUploadFile($_FILES['import_file']);
        $result = API::Configuration()->import(['format' => CImportReaderFactory::fileExt2ImportFormat($file->getExtension()), 'source' => $file->getContent(), 'rules' => $data['rules']]);
    } catch (Exception $e) {
        error($e->getMessage());
    }
    show_messages($result, _('Imported successfully'), _('Import failed'));
}
$view = new CView('conf.import', $data);
$view->render();
$view->show();
require_once dirname(__FILE__) . '/include/page_footer.php';
コード例 #15
0
ファイル: screenedit.php プロジェクト: SandipSingh14/Zabbix_
    } else {
        $screenItem['x'] = get_request('x');
        $screenItem['y'] = get_request('y');
        $result = API::ScreenItem()->create($screenItem);
        show_messages($result, _('Item added'), _('Cannot add item'));
    }
    DBend($result);
    if ($result) {
        add_audit_details(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_SCREEN, $screen['screenid'], $screen['name'], 'Cell changed ' . (isset($_REQUEST['screenitemid']) ? 'screen itemid "' . $_REQUEST['screenitemid'] . '"' : '') . (isset($_REQUEST['x']) && isset($_REQUEST['y']) ? ' coordinates "' . $_REQUEST['x'] . ',' . $_REQUEST['y'] . '"' : '') . (isset($_REQUEST['resourcetype']) ? ' resource type "' . $_REQUEST['resourcetype'] . '"' : ''));
        unset($_REQUEST['form']);
    }
} elseif (isset($_REQUEST['delete'])) {
    DBstart();
    $screenitemid = API::ScreenItem()->delete($_REQUEST['screenitemid']);
    $result = DBend($screenitemid);
    show_messages($result, _('Item deleted'), _('Cannot delete item'));
    if ($result && !empty($screenitemid)) {
        $screenitemid = reset($screenitemid);
        $screenitemid = reset($screenitemid);
        add_audit_details(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_SCREEN, $screen['screenid'], $screen['name'], 'Screen itemid "' . $screenitemid . '"');
    }
    unset($_REQUEST['x']);
} elseif (isset($_REQUEST['add_row'])) {
    DBexecute('UPDATE screens SET vsize=(vsize+1) WHERE screenid=' . zbx_dbstr($screen['screenid']));
    $add_row = get_request('add_row', 0);
    if ($screen['vsize'] > $add_row) {
        DBexecute('UPDATE screens_items SET y=(y+1) WHERE screenid=' . zbx_dbstr($screen['screenid']) . ' AND y>=' . zbx_dbstr($add_row));
    }
    add_audit_details(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_SCREEN, $screen['screenid'], $screen['name'], 'Row added');
} elseif (isset($_REQUEST['add_col'])) {
    DBexecute('UPDATE screens SET hsize=(hsize+1) WHERE screenid=' . zbx_dbstr($screen['screenid']));
コード例 #16
0
ファイル: nodes.php プロジェクト: itnihao/zatree-2.2
    } else {
        DBstart();
        $nodeid = add_node(get_request('new_nodeid'), get_request('name'), get_request('ip'), get_request('port'), get_request('nodetype'), get_request('masterid'));
        $result = DBend($nodeid);
        show_messages($result, _('Node added'), _('Cannot add node'));
        $audit_action = AUDIT_ACTION_ADD;
    }
    if ($result) {
        add_audit($audit_action, AUDIT_RESOURCE_NODE, 'Node [' . $_REQUEST['name'] . '] id [' . $nodeid . ']');
        unset($_REQUEST['form']);
    }
} elseif (isset($_REQUEST['delete'])) {
    DBstart();
    $result = delete_node($_REQUEST['nodeid']);
    $result = DBend($result);
    show_messages($result, _('Node deleted'), _('Cannot delete node'));
    if ($result) {
        add_audit(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_NODE, 'Node [' . $node['name'] . '] id [' . $node['nodeid'] . ']');
        unset($_REQUEST['form'], $node);
    }
}
/*
 * Display
 */
if (isset($_REQUEST['form'])) {
    $data = array('nodeid' => get_request('nodeid'), 'masterNode' => DBfetch(DBselect('SELECT n.name FROM nodes n WHERE n.masterid IS NULL AND n.nodetype=' . ZBX_NODE_MASTER)));
    if (get_request('nodeid') && !isset($_REQUEST['form_refresh'])) {
        $data['new_nodeid'] = $node['nodeid'];
        $data['name'] = $node['name'];
        $data['ip'] = $node['ip'];
        $data['port'] = $node['port'];
コード例 #17
0
ファイル: profile.php プロジェクト: TonywalkerCN/Zabbix
        $result = API::User()->updateProfile($user);
        if ($result && CwebUser::$data['type'] > USER_TYPE_ZABBIX_USER) {
            $result = API::User()->updateMedia(array('users' => $user, 'medias' => $user['user_medias']));
        }
        $result = DBend($result);
        if (!$result) {
            error(API::User()->resetErrors());
        }
        if ($result) {
            DBstart();
            add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_USER, 'User alias [' . CWebUser::$data['alias'] . '] Name [' . CWebUser::$data['name'] . ']' . ' Surname [' . CWebUser::$data['surname'] . '] profile id [' . CWebUser::$data['userid'] . ']');
            DBend(true);
            ob_end_clean();
            redirect(CWebUser::$data['last_page']['url']);
        } else {
            show_messages($result, _('User updated'), _('Cannot update user'));
        }
    }
}
ob_end_flush();
/*
 * Display
 */
$data = getUserFormData(CWebUser::$data['userid'], true);
$data['userid'] = CWebUser::$data['userid'];
$data['form'] = getRequest('form');
$data['form_refresh'] = getRequest('form_refresh', 0);
$data['autologout'] = getRequest('autologout');
// render view
$usersView = new CView('administration.users.edit', $data);
$usersView->render();
コード例 #18
0
ファイル: tr_comments.php プロジェクト: rennhak/zabbix
$page["title"] = "S_TRIGGER_COMMENTS";
$page["file"] = "tr_comments.php";
include_once "include/page_header.php";
//		VAR			TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
$fields = array("triggerid" => array(T_ZBX_INT, O_MAND, P_SYS, DB_ID, null), "comments" => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'), "save" => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), "cancel" => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null));
check_fields($fields);
$sql = 'SELECT * ' . ' FROM items i, functions f ' . ' WHERE i.itemid=f.itemid ' . ' AND f.triggerid=' . $_REQUEST['triggerid'] . ' AND ' . DBin_node('f.triggerid');
if (!($db_data = DBfetch(DBselect($sql)))) {
    fatal_error(S_NO_TRIGGER_DEFINED);
}
$available_triggers = get_accessible_triggers(PERM_READ_ONLY, array($db_data['hostid']));
if (!isset($available_triggers[$_REQUEST['triggerid']])) {
    access_deny();
}
$trigger_hostid = $db_data['hostid'];
if (isset($_REQUEST["save"])) {
    $result = update_trigger_comments($_REQUEST["triggerid"], $_REQUEST["comments"]);
    show_messages($result, S_COMMENT_UPDATED, S_CANNOT_UPDATE_COMMENT);
    if ($result) {
        add_audit(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_TRIGGER, S_TRIGGER . " [" . $_REQUEST["triggerid"] . "] [" . expand_trigger_description($_REQUEST["triggerid"]) . "] " . S_COMMENTS . " [" . $_REQUEST["comments"] . "]");
    }
} else {
    if (isset($_REQUEST["cancel"])) {
        redirect('tr_status.php?hostid=' . $trigger_hostid);
        exit;
    }
}
show_table_header(S_TRIGGER_COMMENTS_BIG);
echo SBR;
insert_trigger_comment_form($_REQUEST["triggerid"]);
include_once "include/page_footer.php";
コード例 #19
0
    $result = DBend($result);
    $updated = count($groupItemId);
    $messageSuccess = $enable ? _n('Item prototype enabled', 'Item prototypes enabled', $updated) : _n('Item prototype disabled', 'Item prototypes disabled', $updated);
    $messageFailed = $enable ? _n('Cannot enable item prototype', 'Cannot enable item prototypes', $updated) : _n('Cannot disable item prototype', 'Cannot disable item prototypes', $updated);
    if ($result) {
        uncheckTableRows(getRequest('parent_discoveryid'));
    }
    show_messages($result, $messageSuccess, $messageFailed);
} elseif (hasRequest('action') && getRequest('action') == 'itemprototype.massdelete' && hasRequest('group_itemid')) {
    DBstart();
    $result = API::Itemprototype()->delete(getRequest('group_itemid'));
    $result = DBend($result);
    if ($result) {
        uncheckTableRows(getRequest('parent_discoveryid'));
    }
    show_messages($result, _('Item prototypes deleted'), _('Cannot delete item prototypes'));
}
/*
 * Display
 */
if (isset($_REQUEST['form'])) {
    $itemPrototype = [];
    if (hasRequest('itemid')) {
        $itemPrototype = API::ItemPrototype()->get(['itemids' => getRequest('itemid'), 'output' => ['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', 'interfaceid', 'port', 'description', 'snmpv3_authprotocol', 'snmpv3_privprotocol', 'snmpv3_contextname']]);
        $itemPrototype = reset($itemPrototype);
    }
    $data = getItemFormData($itemPrototype);
    $data['config'] = select_config();
    // render view
    $itemView = new CView('configuration.item.prototype.edit', $data);
    $itemView->render();
コード例 #20
0
ファイル: edit_contact.php プロジェクト: jsib/intranet
function show_form_edit_contact($contact = array(), $messages = array(), $photomessage = '')
{
    //Подключаем глобальные переменные
    global $MonthsShort;
    //Определяем значение переменной
    $message_html = show_messages($messages);
    //Определяем переменную
    $show_contact_html = "<a href='/manager.php?action=show_contact&contact={$contact['user_id']}' style='font-size:8pt;'>Просмотреть</a>";
    /*Получаем статус*/
    $statusRES = db_query("SELECT * FROM `phpbb_profile_fields_data` WHERE `user_id`={$contact['user_id']}");
    db_count($statusRES) > 0 ? $status = db_fetch($statusRES)['pf_status'] : ($status = '');
    //Переключатель "Есть подчиненные"
    if ($contact['chief'] == 1) {
        $chief = "checked";
    } else {
        $chief = "";
    }
    //Переключатель "Я могу редактировать графики работ"
    if ($contact['timetable_editor'] == 1) {
        $timetable_editor = "checked";
    } else {
        $timetable_editor = "";
    }
    //Переключатель "Не показывать в контактах"
    if ($contact['user_type'] == 9) {
        $nocontact = "checked";
    } else {
        $nocontact = "";
    }
    //Переключатель "Есть подчиненные"
    if ($contact['notimetable'] == 1) {
        $notimetable = "checked";
    } else {
        $notimetable = "";
    }
    //Переключатель "Инженер"
    if ($contact['engineer'] == 1) {
        $engineer = "checked";
    } else {
        $engineer = "";
    }
    //Переключатель "Руководитель инженеров"
    if ($contact['engineer_chief'] == 1) {
        $engineer_chief = "checked";
    } else {
        $engineer_chief = "";
    }
    //Переключатель "Специальный сотрудник производства"
    if ($contact['spec_prod_staff'] == 1) {
        $spec_prod_staff = "checked";
    } else {
        $spec_prod_staff = "";
    }
    /*Получаем список складов/офисов*/
    $points_html = get_points_options($contact);
    /*Получаем список руководителей*/
    $mychiefs_html = get_chiefs_options($contact);
    /*Получаем список редакторов для графика работ*/
    $timetable_editors_html = get_timetable_editors_options($contact);
    /*Переключатели "Следующий" и "Предыдущий"*/
    $switch = switch_next_previous($contact['user_id']);
    //НАЧАЛО: Установка алиаса для HR-manager-а
    if ($contact['timetable_editor'] == 1) {
        $hrmanager_alias_html = template_get("contacts/hrmanager_alias", array('hrmanager_alias' => $contact['hrmanager_alias']));
    } else {
        $hrmanager_alias_html = "";
    }
    //КОНЕЦ: Установка алиаса для HR-manager-а
    //Запрос к БД
    $contact_hire_date = db_short_easy("SELECT `hire` FROM `phpbb_users` WHERE `user_id`=" . $contact['user_id']);
    //Получаем список месяцев
    $hire_months_options = get_hire_months_options($contact);
    //НАЧАЛО: Получаем список годов
    strtotime($contact_hire_date) ? $contact_hire_year = (int) date("Y", strtotime($contact_hire_date)) : ($contact_hire_year = (int) date("Y"));
    $hire_years_options = "";
    for ($yearFOR = (int) date("Y"); $yearFOR >= 1995; $yearFOR--) {
        if ($contact_hire_year == $yearFOR) {
            $selectedFOR = "selected";
        } else {
            $selectedFOR = "";
        }
        $hire_years_options .= "<option value='" . $yearFOR . "' " . $selectedFOR . ">" . $yearFOR . "</option>";
    }
    //КОНЕЦ: Получаем список годов
    /*Подключаем шаблон*/
    return template_get("contacts/edit_contact", array('action' => "/manager.php?action=edit_contact&contact=" . $contact['user_id'], 'name' => $contact['username'], 'occupation' => $contact['user_occ'], 'email' => $contact['user_email'], 'skype' => $contact['user_skype'], 'officephone' => $contact['user_officephone'], 'extphone' => $contact['user_extphone'], 'workmobilephone' => $contact['user_workmobilephone'], 'privatemobilephone' => $contact['user_privatemobilephone'], 'location' => $contact['user_from'], 'status' => $status, 'message' => $message_html, 'points' => $points_html, 'showcontact' => $show_contact_html, 'previous' => "/manager.php?action=edit_contact&contact={$switch['previous_id']}", 'next' => "/manager.php?action=edit_contact&contact={$switch['next_id']}", 'current' => $switch['current'] + 1 . " из " . $switch['contacts_num'], 'chief' => $chief, 'mychiefs' => $mychiefs_html, 'nocontact' => $nocontact, 'notimetable' => $notimetable, 'engineer' => $engineer, 'engineer_chief' => $engineer_chief, 'spec_prod_staff' => $spec_prod_staff, 'timetable_editor' => $timetable_editor, 'timetable_editors' => $timetable_editors_html, 'photo' => get_user_avatar($contact['user_avatar'], $contact['user_avatar_type'], $contact['user_avatar_width'], $contact['user_avatar_height']), 'photomessage' => $photomessage, 'hrmanager_alias' => $hrmanager_alias_html, 'hire_months_options' => $hire_months_options, 'hire_years_options' => $hire_years_options));
}
コード例 #21
0
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
**/
require_once dirname(__FILE__) . '/include/config.inc.php';
$page['title'] = _('Configuration of trigger displaying options');
$page['file'] = 'adm.triggerdisplayoptions.php';
$page['hist_arg'] = array();
require_once dirname(__FILE__) . '/include/page_header.php';
$fields = array('problem_unack_color' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'), 'problem_ack_color' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'), 'ok_unack_color' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'), 'ok_ack_color' => array(T_ZBX_STR, O_OPT, null, null, 'isset({save})'), 'problem_unack_style' => array(T_ZBX_INT, O_OPT, null, IN('1'), null), 'problem_ack_style' => array(T_ZBX_INT, O_OPT, null, IN('1'), null), 'ok_unack_style' => array(T_ZBX_INT, O_OPT, null, IN('1'), null), 'ok_ack_style' => array(T_ZBX_INT, O_OPT, null, IN('1'), null), 'ok_period' => array(T_ZBX_INT, O_OPT, null, null, 'isset({save})'), 'blink_period' => array(T_ZBX_INT, O_OPT, null, null, 'isset({save})'), 'save' => array(T_ZBX_STR, O_OPT, P_SYS | P_ACT, null, null), 'form' => array(T_ZBX_STR, O_OPT, P_SYS, null, null), 'form_refresh' => array(T_ZBX_INT, O_OPT, null, null, null));
check_fields($fields);
if (isset($_REQUEST['save'])) {
    $configs = array('ok_period' => get_request('ok_period'), 'blink_period' => get_request('blink_period'), 'problem_unack_color' => get_request('problem_unack_color'), 'problem_ack_color' => get_request('problem_ack_color'), 'ok_unack_color' => get_request('ok_unack_color'), 'ok_ack_color' => get_request('ok_ack_color'), 'problem_unack_style' => get_request('problem_unack_style', 0), 'problem_ack_style' => get_request('problem_ack_style', 0), 'ok_unack_style' => get_request('ok_unack_style', 0), 'ok_ack_style' => get_request('ok_ack_style', 0));
    $result = update_config($configs);
    show_messages($result, _('Configuration updated'), _('Cannot update configuration'));
}
$form = new CForm();
$form->cleanItems();
$cmbConf = new CComboBox('configDropDown', 'adm.triggerdisplayoptions.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(_('CONFIGURATION OF ZABBIX'), $form);
$data = array();
$data['form_refresh'] = get_request('form_refresh', 0);
// form has been submitted
if ($data['form_refresh']) {
    $data['ok_period'] = get_request('ok_period');
    $data['blink_period'] = get_request('blink_period');
    $data['problem_unack_color'] = get_request('problem_unack_color');
コード例 #22
0
ファイル: scripts.php プロジェクト: TonywalkerCN/Zabbix
    show_messages($result, _('Script deleted'), _('Cannot delete script'));
} elseif (hasRequest('action') && getRequest('action') == 'script.massdelete' && hasRequest('scripts')) {
    $scriptIds = getRequest('scripts');
    DBstart();
    $result = API::Script()->delete($scriptIds);
    if ($result) {
        foreach ($scriptIds as $scriptId) {
            add_audit(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_SCRIPT, _('Script') . ' [' . $scriptId . ']');
        }
        unset($_REQUEST['form'], $_REQUEST['scriptid']);
    }
    $result = DBend($result);
    if ($result) {
        uncheckTableRows();
    }
    show_messages($result, _('Script deleted'), _('Cannot delete script'));
}
/*
 * Display
 */
if (isset($_REQUEST['form'])) {
    $data = array('form' => getRequest('form', 1), 'form_refresh' => getRequest('form_refresh', 0), 'scriptid' => getRequest('scriptid'));
    if (!$data['scriptid'] || isset($_REQUEST['form_refresh'])) {
        $data['name'] = getRequest('name', '');
        $data['type'] = getRequest('type', ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT);
        $data['execute_on'] = getRequest('execute_on', ZBX_SCRIPT_EXECUTE_ON_SERVER);
        $data['command'] = getRequest('command', '');
        $data['commandipmi'] = getRequest('commandipmi', '');
        $data['description'] = getRequest('description', '');
        $data['usrgrpid'] = getRequest('usrgrpid', 0);
        $data['groupid'] = getRequest('groupid', 0);
コード例 #23
0
ファイル: services.php プロジェクト: phedders/zabbix
    }
    if (isset($row['serviceupid'])) {
        $services[$row['serviceupid']]['childs'][] = array('id' => $row['serviceid'], 'soft' => 0, 'linkid' => 0);
    }
    if (isset($row['servicedownid'])) {
        $services[$row['serviceid']]['childs'][] = array('id' => $row['servicedownid'], 'soft' => 1, 'linkid' => $row['linkid']);
    }
}
$treeServ = array();
createServiceTree($services, $treeServ);
//return into $treeServ parametr
//permission issue
$treeServ = del_empty_nodes($treeServ);
//----
if (isset($_REQUEST['msg']) && !empty($_REQUEST['msg'])) {
    show_messages(true, $_REQUEST['msg']);
}
//show_table_header(S_IT_SERVICES_BIG);
$tree = new CTree('service_conf_tree', $treeServ, array('caption' => bold(S_SERVICE), 'algorithm' => bold(S_STATUS_CALCULATION), 'description' => bold(S_TRIGGER)));
if ($tree) {
    $serv_wdgt = new CWidget();
    $serv_wdgt->addHeader(S_IT_SERVICES_BIG, SPACE);
    $serv_wdgt->addItem($tree->getHTML());
    $serv_wdgt->show();
} else {
    error(S_CANT_FORMAT_TREE);
}
$tr_ov_menu[] = array('test1', null, null, array('outer' => array('pum_oheader'), 'inner' => array('pum_iheader')));
$tr_ov_menu[] = array('test2', null, null, array('outer' => array('pum_oheader'), 'inner' => array('pum_iheader')));
$jsmenu = new CPUMenu($tr_ov_menu, 170);
$jsmenu->InsertJavaScript();
コード例 #24
0
ファイル: screenconf.php プロジェクト: itnihao/Zabbix_
                add_audit_details(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_SCREEN, $screen['screenid'], $screen['name']);
            }
        }
    } else {
        $goResult = API::TemplateScreen()->delete($screenids);
        if ($goResult) {
            $templatedScreens = API::TemplateScreen()->get(array('screenids' => $screenids, 'output' => API_OUTPUT_EXTEND, 'editable' => true));
            foreach ($templatedScreens as $screen) {
                add_audit_details(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_SCREEN, $screen['screenid'], $screen['name']);
            }
        }
    }
    if ($goResult) {
        unset($_REQUEST['screenid'], $_REQUEST['form']);
    }
    show_messages($goResult, _('Screen deleted'), _('Cannot delete screen'));
    clearCookies($goResult);
}
/*
 * Display
 */
if (isset($_REQUEST['form'])) {
    $data = array('form' => get_request('form', null), 'screenid' => get_request('screenid', null), 'templateid' => get_request('templateid', null));
    // screen
    if (!empty($data['screenid'])) {
        $options = array('screenids' => $data['screenid'], 'editable' => true, 'output' => API_OUTPUT_EXTEND);
        if (!empty($data['templateid'])) {
            $screens = API::TemplateScreen()->get($options);
        } else {
            $screens = API::Screen()->get($options);
        }
コード例 #25
0
ファイル: host_discovery.php プロジェクト: itnihao/zatree-2.2
        clearCookies($result, $_REQUEST['hostid']);
    }
} elseif (str_in_array(getRequest('go'), array('activate', 'disable')) && hasRequest('g_hostdruleid')) {
    $groupHostDiscoveryRuleId = getRequest('g_hostdruleid');
    $enable = getRequest('go') == 'activate';
    DBstart();
    $result = $enable ? activate_item($groupHostDiscoveryRuleId) : disable_item($groupHostDiscoveryRuleId);
    $result = DBend($result);
    $updated = count($groupHostDiscoveryRuleId);
    $messageSuccess = $enable ? _n('Discovery rule enabled', 'Discovery rules enabled', $updated) : _n('Discovery rule disabled', 'Discovery rules disabled', $updated);
    $messageFailed = $enable ? _n('Cannot enable discovery rules', 'Cannot enable discovery rules', $updated) : _n('Cannot disable discovery rules', 'Cannot disable discovery rules', $updated);
    show_messages($result, $messageSuccess, $messageFailed);
    clearCookies($result, getRequest('hostid'));
} elseif ($_REQUEST['go'] == 'delete' && isset($_REQUEST['g_hostdruleid'])) {
    $goResult = API::DiscoveryRule()->delete($_REQUEST['g_hostdruleid']);
    show_messages($goResult, _('Discovery rules deleted'), _('Cannot delete discovery rules'));
    clearCookies($goResult, $_REQUEST['hostid']);
}
/*
 * Display
 */
if (isset($_REQUEST['form'])) {
    $data = getItemFormData(array('is_discovery_rule' => true));
    $data['page_header'] = _('CONFIGURATION OF DISCOVERY RULES');
    // render view
    $itemView = new CView('configuration.item.edit', $data);
    $itemView->render();
    $itemView->show();
} else {
    $data = array('hostid' => get_request('hostid', 0), 'host' => $host, 'showErrorColumn' => $host['status'] != HOST_STATUS_TEMPLATE);
    $sortfield = getPageSortField('name');
コード例 #26
0
ファイル: users.php プロジェクト: rennhak/zabbix
                                 $group = get_group_by_usrgrpid($_REQUEST['usrgrpid']);
                                 $result = change_group_gui_access($_REQUEST['usrgrpid'], $_REQUEST['set_gui_access']);
                                 show_messages($result, S_GROUP . ' "' . $group['name'] . '" ' . S_GUI_ACCESS_UPDATED, S_CANNOT_UPDATE_GUI_ACCESS);
                                 if ($result) {
                                     $audit_action = $_REQUEST['set_gui_access'] == GROUP_GUI_ACCESS_DISABLED ? AUDIT_ACTION_DISABLE : AUDIT_ACTION_UPDATE;
                                     add_audit($audit_action, AUDIT_RESOURCE_USER_GROUP, 'GUI access for group name [' . $group['name'] . ']');
                                     unset($_REQUEST['usrgrpid']);
                                 }
                                 unset($_REQUEST['form']);
                             } else {
                                 if (isset($_REQUEST['set_users_status']) && isset($_REQUEST['usrgrpid'])) {
                                     $group = get_group_by_usrgrpid($_REQUEST['usrgrpid']);
                                     $result = change_group_status($_REQUEST['usrgrpid'], $_REQUEST['set_users_status']);
                                     $status_msg1 = $_REQUEST['set_users_status'] == GROUP_STATUS_ENABLED ? S_ENABLED : S_DISABLED;
                                     $status_msg2 = $_REQUEST['set_users_status'] == GROUP_STATUS_ENABLED ? S_ENABLE : S_DISABLE;
                                     show_messages($result, S_GROUP . SPACE . '"' . $group['name'] . '"' . SPACE . $status_msg1, S_CANNOT . SPACE . $status_msg2 . SPACE . S_GROUP);
                                     if ($result) {
                                         $audit_action = $_REQUEST['set_users_status'] == GROUP_STATUS_ENABLED ? AUDIT_ACTION_ENABLE : AUDIT_ACTION_DISABLE;
                                         add_audit($audit_action, AUDIT_RESOURCE_USER_GROUP, 'Group name [' . $group['name'] . ']');
                                         unset($_REQUEST['usrgrpid']);
                                     }
                                     unset($_REQUEST['form']);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #27
0
ファイル: blocks.inc.php プロジェクト: SandipSingh14/Zabbix_
function make_status_of_zbx()
{
    global $ZBX_SERVER, $ZBX_SERVER_PORT;
    $table = new CTableInfo();
    $table->setHeader(array(_('Parameter'), _('Value'), _('Details')));
    show_messages();
    // because in function get_status(); function clear_messages() is called when fsockopen() fails.
    $status = get_status();
    $table->addRow(array(_('Zabbix server is running'), new CSpan($status['zabbix_server'], $status['zabbix_server'] == _('Yes') ? 'off' : 'on'), isset($ZBX_SERVER, $ZBX_SERVER_PORT) ? $ZBX_SERVER . ':' . $ZBX_SERVER_PORT : _('Zabbix server IP or port is not set!')));
    $title = new CSpan(_('Number of hosts (monitored/not monitored/templates)'));
    $title->setAttribute('title', 'asdad');
    $table->addRow(array(_('Number of hosts (monitored/not monitored/templates)'), $status['hosts_count'], array(new CSpan($status['hosts_count_monitored'], 'off'), ' / ', new CSpan($status['hosts_count_not_monitored'], 'on'), ' / ', new CSpan($status['hosts_count_template'], 'unknown'))));
    $title = new CSpan(_('Number of items (monitored/disabled/not supported)'));
    $title->setAttribute('title', _('Only items assigned to enabled hosts are counted'));
    $table->addRow(array($title, $status['items_count'], array(new CSpan($status['items_count_monitored'], 'off'), ' / ', new CSpan($status['items_count_disabled'], 'on'), ' / ', new CSpan($status['items_count_not_supported'], 'unknown'))));
    $title = new CSpan(_('Number of triggers (enabled/disabled) [problem/ok]'));
    $title->setAttribute('title', _('Only triggers assigned to enabled hosts and depending on enabled items are counted'));
    $table->addRow(array($title, $status['triggers_count'], array($status['triggers_count_enabled'], ' / ', $status['triggers_count_disabled'], ' [', new CSpan($status['triggers_count_on'], 'on'), ' / ', new CSpan($status['triggers_count_off'], 'off'), ']')));
    $table->addRow(array(_('Number of users (online)'), $status['users_count'], new CSpan($status['users_online'], 'green')));
    $table->addRow(array(_('Required server performance, new values per second'), $status['qps_total'], ' - '));
    // check requirements
    if (CWebUser::$data['type'] == USER_TYPE_SUPER_ADMIN) {
        $frontendSetup = new FrontendSetup();
        $reqs = $frontendSetup->checkRequirements();
        foreach ($reqs as $req) {
            if ($req['result'] != FrontendSetup::CHECK_OK) {
                $class = $req['result'] == FrontendSetup::CHECK_WARNING ? 'notice' : 'fail';
                $table->addRow(array(new CSpan($req['name'], $class), new CSpan($req['current'], $class), new CSpan($req['error'], $class)));
            }
        }
    }
    $script = new CJSScript(get_js("jQuery('#hat_stszbx_footer').html('" . _s('Updated: %s', zbx_date2str(_('H:i:s'))) . "')"));
    return new CDiv(array($table, $script));
}
コード例 #28
0
ファイル: forms.inc.php プロジェクト: omidmt/zabbix-greenplum
/**
 * Generate data for the trigger configuration form.
 *
 * @param string $exprAction	expression constructor action, see remakeExpression() for a list of supported values
 *
 * @return array
 */
function getTriggerFormData($exprAction)
{
    $data = array('form' => getRequest('form'), 'form_refresh' => getRequest('form_refresh'), 'parent_discoveryid' => getRequest('parent_discoveryid'), 'dependencies' => getRequest('dependencies', array()), 'db_dependencies' => array(), 'triggerid' => getRequest('triggerid'), 'expression' => getRequest('expression', ''), 'expr_temp' => getRequest('expr_temp', ''), 'description' => getRequest('description', ''), 'type' => getRequest('type', 0), 'priority' => getRequest('priority', 0), 'status' => getRequest('status', 0), 'comments' => getRequest('comments', ''), 'url' => getRequest('url', ''), 'input_method' => getRequest('input_method', IM_ESTABLISHED), 'limited' => false, 'templates' => array(), 'hostid' => getRequest('hostid', 0));
    if (!empty($data['triggerid'])) {
        // get trigger
        $options = array('output' => API_OUTPUT_EXTEND, 'selectHosts' => array('hostid'), 'triggerids' => $data['triggerid']);
        $trigger = $data['parent_discoveryid'] ? API::TriggerPrototype()->get($options) : API::Trigger()->get($options);
        $data['trigger'] = reset($trigger);
        // get templates
        $tmp_triggerid = $data['triggerid'];
        do {
            $db_triggers = DBfetch(DBselect('SELECT t.triggerid,t.templateid,id.parent_itemid,h.name,h.hostid' . ' FROM triggers t' . ' LEFT JOIN functions f ON t.triggerid=f.triggerid' . ' LEFT JOIN items i ON f.itemid=i.itemid' . ' LEFT JOIN hosts h ON i.hostid=h.hostid' . ' LEFT JOIN item_discovery id ON i.itemid=id.itemid' . ' WHERE t.triggerid=' . zbx_dbstr($tmp_triggerid)));
            if (bccomp($data['triggerid'], $tmp_triggerid) != 0) {
                // parent trigger prototype link
                if ($data['parent_discoveryid']) {
                    $link = 'trigger_prototypes.php?form=update&triggerid=' . $db_triggers['triggerid'] . '&parent_discoveryid=' . $db_triggers['parent_itemid'] . '&hostid=' . $db_triggers['hostid'];
                } else {
                    $link = 'triggers.php?form=update&triggerid=' . $db_triggers['triggerid'] . '&hostid=' . $db_triggers['hostid'];
                }
                $data['templates'][] = new CLink(CHtml::encode($db_triggers['name']), $link, 'highlight underline weight_normal');
                $data['templates'][] = SPACE . '&rArr;' . SPACE;
            }
            $tmp_triggerid = $db_triggers['templateid'];
        } while ($tmp_triggerid != 0);
        $data['templates'] = array_reverse($data['templates']);
        array_shift($data['templates']);
        $data['limited'] = $data['trigger']['templateid'] != 0;
        // select first host from triggers if gived not match
        $hosts = $data['trigger']['hosts'];
        if (count($hosts) > 0 && !in_array(array('hostid' => $data['hostid']), $hosts)) {
            $host = reset($hosts);
            $data['hostid'] = $host['hostid'];
        }
    }
    if (!empty($data['triggerid']) && !isset($_REQUEST['form_refresh']) || $data['limited']) {
        $data['expression'] = explode_exp($data['trigger']['expression']);
        if (!$data['limited'] || !isset($_REQUEST['form_refresh'])) {
            $data['description'] = $data['trigger']['description'];
            $data['type'] = $data['trigger']['type'];
            $data['priority'] = $data['trigger']['priority'];
            $data['status'] = $data['trigger']['status'];
            $data['comments'] = $data['trigger']['comments'];
            $data['url'] = $data['trigger']['url'];
            $db_triggers = DBselect('SELECT t.triggerid,t.description' . ' FROM triggers t,trigger_depends d' . ' WHERE t.triggerid=d.triggerid_up' . ' AND d.triggerid_down=' . zbx_dbstr($data['triggerid']));
            while ($trigger = DBfetch($db_triggers)) {
                if (uint_in_array($trigger['triggerid'], $data['dependencies'])) {
                    continue;
                }
                array_push($data['dependencies'], $trigger['triggerid']);
            }
        }
    }
    if ($data['input_method'] == IM_TREE) {
        $analyze = analyzeExpression($data['expression']);
        if ($analyze !== false) {
            list($data['outline'], $data['eHTMLTree']) = $analyze;
            if ($exprAction !== null && $data['eHTMLTree'] != null) {
                $new_expr = remakeExpression($data['expression'], $_REQUEST['expr_target_single'], $exprAction, $data['expr_temp']);
                if ($new_expr !== false) {
                    $data['expression'] = $new_expr;
                    $analyze = analyzeExpression($data['expression']);
                    if ($analyze !== false) {
                        list($data['outline'], $data['eHTMLTree']) = $analyze;
                    } else {
                        show_messages(false, '', _('Expression Syntax Error.'));
                    }
                    $data['expr_temp'] = '';
                } else {
                    show_messages(false, '', _('Expression Syntax Error.'));
                }
            }
            $data['expression_field_name'] = 'expr_temp';
            $data['expression_field_value'] = $data['expr_temp'];
            $data['expression_field_readonly'] = true;
        } else {
            show_messages(false, '', _('Expression Syntax Error.'));
            $data['input_method'] = IM_ESTABLISHED;
        }
    }
    if ($data['input_method'] != IM_TREE) {
        $data['expression_field_name'] = 'expression';
        $data['expression_field_value'] = $data['expression'];
        $data['expression_field_readonly'] = $data['limited'];
    }
    if (empty($data['parent_discoveryid'])) {
        $data['db_dependencies'] = API::Trigger()->get(array('triggerids' => $data['dependencies'], 'output' => array('triggerid', 'flags', 'description'), 'preservekeys' => true, 'selectHosts' => array('hostid', 'name')));
        foreach ($data['db_dependencies'] as &$dependency) {
            if (count($dependency['hosts']) > 1) {
                order_result($dependency['hosts'], 'name', ZBX_SORT_UP);
            }
            $dependency['hosts'] = array_values($dependency['hosts']);
            $dependency['hostid'] = $dependency['hosts'][0]['hostid'];
        }
        unset($dependency);
        order_result($data['db_dependencies'], 'description');
    }
    return $data;
}
コード例 #29
0
ファイル: page_header.php プロジェクト: phedders/zabbix
    $table->setCellSpacing(0);
    $table->setCellPadding(0);
    $history = get_user_history();
    $tr = new CRow(new CCol('History:', 'caption'));
    $tr->addItem($history);
    $table->addRow($tr);
    $table->Show();
} else {
    if ($page['type'] == PAGE_TYPE_HTML && !defined('ZBX_PAGE_NO_MENU')) {
        echo SBR;
    }
}
//------------------------------------ </HISTORY> ---------------------------------------
unset($ZBX_MENU);
unset($table, $top_page_row, $menu_table, $node_form);
unset($main_menu_row);
unset($db_nodes, $node_data);
unset($sub_menu_table, $sub_menu_rows);
if ($denyed_page_requested) {
    access_deny();
}
if (version_compare(phpversion(), '5.1.0RC1', '>=') && $page['type'] == PAGE_TYPE_HTML) {
    $tmezone = ini_get('date.timezone');
    if (empty($tmezone)) {
        info('Timezone for PHP is not set. Please set "date.timezone" option in php.ini.');
        date_default_timezone_set('UTC');
    }
    unset($tmezone);
}
show_messages();
コード例 #30
0
ファイル: hostgroups.php プロジェクト: phedders/zabbix
                    $result = true;
                    $status = $_REQUEST['go'] == 'activate' ? HOST_STATUS_MONITORED : HOST_STATUS_NOT_MONITORED;
                    $groups = get_request('groups', array());
                    $db_hosts = DBselect('select h.hostid, hg.groupid ' . ' from hosts_groups hg, hosts h' . ' where h.hostid=hg.hostid ' . ' and h.status in (' . HOST_STATUS_MONITORED . ',' . HOST_STATUS_NOT_MONITORED . ')' . ' and ' . DBin_node('h.hostid'));
                    DBstart();
                    while ($db_host = DBfetch($db_hosts)) {
                        if (!uint_in_array($db_host['groupid'], $groups)) {
                            continue;
                        }
                        $host = get_host_by_hostid($db_host['hostid']);
                        $result &= update_host_status($db_host['hostid'], $status);
                        /*			add_audit(AUDIT_ACTION_UPDATE,AUDIT_RESOURCE_HOST,
                        				'Old status ['.$host['status'].'] '.'New status ['.$status.']');*/
                    }
                    $result = DBend($result);
                    show_messages($result, S_HOST_STATUS_UPDATED, S_CANNOT_UPDATE_HOST);
                    unset($_REQUEST['activate']);
                }
            }
        }
    }
}
/*** --->>> ACTIONS <<<--- ***/
$frmForm = new CForm();
$frmForm->setMethod('get');
if (!isset($_REQUEST['form'])) {
    $frmForm->addItem(new CButton('form', S_CREATE_GROUP));
}
show_table_header(S_CONFIGURATION_OF_GROUPS, $frmForm);
if (isset($_REQUEST['form'])) {
    echo SBR;