本文整理汇总了PHP中API::GraphItem方法的典型用法代码示例。如果您正苦于以下问题:PHP API::GraphItem方法的具体用法?PHP API::GraphItem怎么用?PHP API::GraphItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类API
的用法示例。
在下文中一共展示了API::GraphItem方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: inherit
protected function inherit($graph, $hostids = null)
{
$graphTemplates = API::Template()->get(array('itemids' => zbx_objectValues($graph['gitems'], 'itemid'), 'output' => API_OUTPUT_SHORTEN, 'nopermissions' => true));
if (empty($graphTemplates)) {
return true;
}
$graphTemplate = reset($graphTemplates);
$chdHosts = API::Host()->get(array('templateids' => $graphTemplate['templateid'], 'output' => array('hostid', 'host'), 'preservekeys' => true, 'hostids' => $hostids, 'nopermissions' => true, 'templated_hosts' => true));
$graph = $this->get(array('graphids' => $graph['graphid'], 'nopermissions' => true, 'filter' => array('flags' => null), 'selectItems' => API_OUTPUT_EXTEND, 'selectGraphItems' => API_OUTPUT_EXTEND, 'output' => API_OUTPUT_EXTEND));
$graph = reset($graph);
foreach ($chdHosts as $chdHost) {
$tmpGraph = $graph;
$tmpGraph['templateid'] = $graph['graphid'];
if (!($tmpGraph['gitems'] = get_same_graphitems_for_host($tmpGraph['gitems'], $chdHost['hostid']))) {
self::exception(ZBX_API_ERROR_PARAMETERS, _s('Graph "%1$s" cannot inherit. No required items on "%2$s".', $tmpGraph['name'], $chdHost['host']));
}
if ($tmpGraph['ymax_itemid'] > 0) {
$ymaxItemid = get_same_graphitems_for_host(array(array('itemid' => $tmpGraph['ymax_itemid'])), $chdHost['hostid']);
if (!$ymaxItemid) {
self::exception(ZBX_API_ERROR_PARAMETERS, _s('Graph "%1$s" cannot inherit. No required items on "%2$s" (Ymax value item).', $tmpGraph['name'], $chdHost['host']));
}
$ymaxItemid = reset($ymaxItemid);
$tmpGraph['ymax_itemid'] = $ymaxItemid['itemid'];
}
if ($tmpGraph['ymin_itemid'] > 0) {
$yminItemid = get_same_graphitems_for_host(array(array('itemid' => $tmpGraph['ymin_itemid'])), $chdHost['hostid']);
if (!$yminItemid) {
self::exception(ZBX_API_ERROR_PARAMETERS, _s('Graph "%1$s" cannot inherit. No required items on "%2$s" (Ymin value item).', $tmpGraph['name'], $chdHost['host']));
}
$yminItemid = reset($yminItemid);
$tmpGraph['ymin_itemid'] = $yminItemid['itemid'];
}
// check if templated graph exists
$chdGraphs = $this->get(array('filter' => array('templateid' => $tmpGraph['graphid'], 'flags' => array(ZBX_FLAG_DISCOVERY_CHILD, ZBX_FLAG_DISCOVERY_NORMAL)), 'output' => API_OUTPUT_EXTEND, 'selectGraphItems' => API_OUTPUT_EXTEND, 'preservekeys' => true, 'hostids' => $chdHost['hostid']));
if ($chdGraph = reset($chdGraphs)) {
if (zbx_strtolower($tmpGraph['name']) != zbx_strtolower($chdGraph['name']) && $this->exists(array('name' => $tmpGraph['name'], 'hostids' => $chdHost['hostid']))) {
self::exception(ZBX_API_ERROR_PARAMETERS, _s('Graph "%1$s" already exists on "%2$s".', $tmpGraph['name'], $chdHost['host']));
} elseif ($chdGraph['flags'] != $tmpGraph['flags']) {
self::exception(ZBX_API_ERROR_PARAMETERS, _('Graph with same name but other type exist.'));
}
$tmpGraph['graphid'] = $chdGraph['graphid'];
$this->updateReal($tmpGraph, $chdGraph);
} else {
$chdGraph = $this->get(array('filter' => array('name' => $tmpGraph['name'], 'flags' => null), 'output' => API_OUTPUT_EXTEND, 'selectGraphItems' => API_OUTPUT_EXTEND, 'preservekeys' => true, 'nopermissions' => true, 'hostids' => $chdHost['hostid']));
if ($chdGraph = reset($chdGraph)) {
if ($chdGraph['templateid'] != 0) {
self::exception(ZBX_API_ERROR_PARAMETERS, _s('Graph "%1$s" already exists on "%2$s" (inherited from another template).', $tmpGraph['name'], $chdHost['host']));
} elseif ($chdGraph['flags'] != $tmpGraph['flags']) {
self::exception(ZBX_API_ERROR_PARAMETERS, _('Graph with same name but other type exist.'));
}
$chdGraphItems = API::GraphItem()->get(array('graphids' => $chdGraph['graphid'], 'output' => API_OUTPUT_EXTEND, 'preservekeys' => true, 'expandData' => true, 'nopermissions' => true));
if (count($chdGraphItems) == count($tmpGraph['gitems'])) {
foreach ($tmpGraph['gitems'] as $gitem) {
foreach ($chdGraphItems as $chdItem) {
if ($gitem['key_'] == $chdItem['key_'] && bccomp($chdHost['hostid'], $chdItem['hostid']) == 0) {
continue 2;
}
}
self::exception(ZBX_API_ERROR_PARAMETERS, _s('Graph "%1$s" already exists on "%2$s" (items are not identical).', $tmpGraph['name'], $chdHost['host']));
}
$tmpGraph['graphid'] = $chdGraph['graphid'];
$this->updateReal($tmpGraph, $chdGraph);
} else {
self::exception(ZBX_API_ERROR_PARAMETERS, _s('Graph "%1$s" already exists on "%2$s" (items are not identical).', $tmpGraph['name'], $chdHost['host']));
}
} else {
$graphid = $this->createReal($tmpGraph);
$tmpGraph['graphid'] = $graphid;
}
}
$this->inherit($tmpGraph);
}
}
示例2: array
$items_list = API::GraphItem()->get(array("graphids" => $graphids, "output" => "extend"));
}
} else {
//查询分组里面的所有机器
$host_ids = array();
$hosts = API::Host()->get(array("output" => "extend", "monitored_hosts" => true, "with_monitored_items" => 1, "groupids" => array($group_class)));
foreach ($hosts as $each_host) {
$host_ids[] = $each_host['hostid'];
}
//查询分组下的所有机器的所有图形
$graphs = API::Graph()->get(array("hostids" => $host_ids, "output" => "extend", "sortfield" => "name"));
foreach ($graphs as &$each) {
$graphids[] = $each['graphid'];
}
if (!is_null($graphids)) {
$items_list = API::GraphItem()->get(array("graphids" => $graphids, "output" => "extend"));
}
}
$list = array('list_item' => $items_list, 'parame' => array('stime' => strtotime($stime), 'period' => $period, 'sizeX' => $width, 'item_name_search' => $itemkey));
$format_list = API::ItemValue()->getItemListFormat($list);
$format_list = (array) $format_list;
foreach ($format_list as &$format) {
$format = (array) $format;
if (is_array($format)) {
foreach ($format as $key_obj => &$value_obj) {
if (is_object($value_obj)) {
$value_obj = (array) $value_obj;
}
}
}
}
示例3: getPreviewOutput
/**
* Returns output for preview of graph prototype.
*
* @return CTag
*/
protected function getPreviewOutput()
{
$graphPrototype = $this->getGraphPrototype();
switch ($graphPrototype['graphtype']) {
case GRAPH_TYPE_NORMAL:
case GRAPH_TYPE_STACKED:
$url = 'chart3.php';
break;
case GRAPH_TYPE_EXPLODED:
case GRAPH_TYPE_3D_EXPLODED:
case GRAPH_TYPE_3D:
case GRAPH_TYPE_PIE:
$url = 'chart7.php';
break;
default:
show_error_message(_('Graph prototype not found.'));
exit;
}
$graphPrototypeItems = API::GraphItem()->get(['output' => ['gitemid', 'itemid', 'sortorder', 'flags', 'type', 'calc_fnc', 'drawtype', 'yaxisside', 'color'], 'graphids' => [$graphPrototype['graphid']]]);
$queryParams = ['items' => $graphPrototypeItems, 'graphtype' => $graphPrototype['graphtype'], 'period' => 3600, 'legend' => $graphPrototype['show_legend'], 'graph3d' => $graphPrototype['show_3d'], 'width' => $this->screenitem['width'], 'height' => $this->screenitem['height'], 'name' => $graphPrototype['name']];
$url .= '?' . http_build_query($queryParams);
return new CSpan(new CImg($url));
}
示例4: get_hosts_by_graphid
} else {
$parentTemplate = get_hosts_by_graphid($parentGraph['graphid']);
$parentTemplate = DBfetch($parentTemplate);
$link = new CLink($parentTemplate['name'], 'graphs.php?form=update&graphid=' . $parentGraph['graphid'] . '&hostid=' . $parentTemplate['hostid']);
}
if (isset($link)) {
$data['templates'][] = $link;
$data['templates'][] = SPACE . RARR . SPACE;
}
$parentGraphid = $parentGraph['templateid'];
} while ($parentGraphid != 0);
$data['templates'] = array_reverse($data['templates']);
array_shift($data['templates']);
}
// items
$data['items'] = API::GraphItem()->get(array('output' => array('gitemid', 'graphid', 'itemid', 'type', 'drawtype', 'yaxisside', 'calc_fnc', 'color', 'sortorder'), 'graphids' => $data['graphid'], 'sortfield' => 'gitemid'));
} else {
$data['name'] = get_request('name', '');
$data['graphtype'] = get_request('graphtype', GRAPH_TYPE_NORMAL);
if ($data['graphtype'] == GRAPH_TYPE_PIE || $data['graphtype'] == GRAPH_TYPE_EXPLODED) {
$data['width'] = get_request('width', 400);
$data['height'] = get_request('height', 300);
} else {
$data['width'] = get_request('width', 900);
$data['height'] = get_request('height', 200);
}
$data['ymin_type'] = get_request('ymin_type', GRAPH_YAXIS_TYPE_CALCULATED);
$data['ymax_type'] = get_request('ymax_type', GRAPH_YAXIS_TYPE_CALCULATED);
$data['yaxismin'] = get_request('yaxismin', 0);
$data['yaxismax'] = get_request('yaxismax', 100);
$data['ymin_itemid'] = get_request('ymin_itemid', 0);
示例5: get_hosts_by_graphid
} else {
$parentTemplate = get_hosts_by_graphid($parentGraph['graphid']);
$parentTemplate = DBfetch($parentTemplate);
$link = new CLink($parentTemplate['name'], 'graphs.php?form=update&graphid=' . $parentGraph['graphid'] . '&hostid=' . $parentTemplate['hostid']);
}
if (isset($link)) {
$data['templates'][] = $link;
$data['templates'][] = SPACE . RARR . SPACE;
}
$parentGraphid = $parentGraph['templateid'];
} while ($parentGraphid != 0);
$data['templates'] = array_reverse($data['templates']);
array_shift($data['templates']);
}
// items
$data['items'] = API::GraphItem()->get(array('graphids' => $data['graphid'], 'sortfield' => 'gitemid', 'output' => API_OUTPUT_EXTEND, 'expandData' => true));
} else {
$data['name'] = get_request('name', '');
$data['graphtype'] = get_request('graphtype', GRAPH_TYPE_NORMAL);
if ($data['graphtype'] == GRAPH_TYPE_PIE || $data['graphtype'] == GRAPH_TYPE_EXPLODED) {
$data['width'] = get_request('width', 400);
$data['height'] = get_request('height', 300);
} else {
$data['width'] = get_request('width', 900);
$data['height'] = get_request('height', 200);
}
$data['ymin_type'] = get_request('ymin_type', GRAPH_YAXIS_TYPE_CALCULATED);
$data['ymax_type'] = get_request('ymax_type', GRAPH_YAXIS_TYPE_CALCULATED);
$data['yaxismin'] = get_request('yaxismin', '0.00');
$data['yaxismax'] = get_request('yaxismax', '100.00');
$data['ymin_itemid'] = get_request('ymin_itemid', 0);
示例6: addRelatedObjects
protected function addRelatedObjects(array $options, array $result)
{
$result = parent::addRelatedObjects($options, $result);
$graphids = array_keys($result);
// adding GraphItems
if ($options['selectGraphItems'] !== null && $options['selectGraphItems'] !== API_OUTPUT_COUNT) {
$gitems = API::GraphItem()->get(array('nodeids' => $options['nodeids'], 'output' => $this->outputExtend('graphs_items', array('graphid', 'gitemid'), $options['selectGraphItems']), 'graphids' => $graphids, 'nopermissions' => true, 'preservekeys' => true));
$relationMap = $this->createRelationMap($gitems, 'graphid', 'gitemid');
$gitems = $this->unsetExtraFields($gitems, array('graphid', 'gitemid'), $options['selectGraphItems']);
$result = $relationMap->mapMany($result, $gitems, 'gitems');
}
// adding HostGroups
if ($options['selectGroups'] !== null && $options['selectGroups'] !== API_OUTPUT_COUNT) {
$relationMap = new CRelationMap();
// discovered items
$dbRules = DBselect('SELECT gi.graphid,hg.groupid' . ' FROM graphs_items gi,items i,hosts_groups hg' . ' WHERE ' . dbConditionInt('gi.graphid', $graphids) . ' AND gi.itemid=i.itemid' . ' AND i.hostid=hg.hostid');
while ($relation = DBfetch($dbRules)) {
$relationMap->addRelation($relation['graphid'], $relation['groupid']);
}
$groups = API::HostGroup()->get(array('nodeids' => $options['nodeids'], 'output' => $options['selectGroups'], 'groupids' => $relationMap->getRelatedIds(), 'nopermissions' => true, 'preservekeys' => true));
$result = $relationMap->mapMany($result, $groups, 'groups');
}
// adding Hosts
if ($options['selectHosts'] !== null && $options['selectHosts'] !== API_OUTPUT_COUNT) {
$relationMap = new CRelationMap();
// discovered items
$dbRules = DBselect('SELECT gi.graphid,i.hostid' . ' FROM graphs_items gi,items i' . ' WHERE ' . dbConditionInt('gi.graphid', $graphids) . ' AND gi.itemid=i.itemid');
while ($relation = DBfetch($dbRules)) {
$relationMap->addRelation($relation['graphid'], $relation['hostid']);
}
$hosts = API::Host()->get(array('nodeids' => $options['nodeids'], 'output' => $options['selectHosts'], 'hostids' => $relationMap->getRelatedIds(), 'templated_hosts' => true, 'nopermissions' => true, 'preservekeys' => true));
$result = $relationMap->mapMany($result, $hosts, 'hosts');
}
// adding Templates
if ($options['selectTemplates'] !== null && $options['selectTemplates'] !== API_OUTPUT_COUNT) {
$relationMap = new CRelationMap();
// discovered items
$dbRules = DBselect('SELECT gi.graphid,i.hostid' . ' FROM graphs_items gi,items i' . ' WHERE ' . dbConditionInt('gi.graphid', $graphids) . ' AND gi.itemid=i.itemid');
while ($relation = DBfetch($dbRules)) {
$relationMap->addRelation($relation['graphid'], $relation['hostid']);
}
$templates = API::Template()->get(array('nodeids' => $options['nodeids'], 'output' => $options['selectTemplates'], 'templateids' => $relationMap->getRelatedIds(), 'nopermissions' => true, 'preservekeys' => true));
$result = $relationMap->mapMany($result, $templates, 'templates');
}
return $result;
}