本文整理汇总了PHP中CMacrosResolverHelper::resolveItemKeys方法的典型用法代码示例。如果您正苦于以下问题:PHP CMacrosResolverHelper::resolveItemKeys方法的具体用法?PHP CMacrosResolverHelper::resolveItemKeys怎么用?PHP CMacrosResolverHelper::resolveItemKeys使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMacrosResolverHelper
的用法示例。
在下文中一共展示了CMacrosResolverHelper::resolveItemKeys方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: array_keys
$hostIds = array_keys($hosts);
$applications = null;
// if an application filter is set, fetch the applications and then use them to filter items
if ($filter['application'] !== '') {
$applications = API::Application()->get(array('output' => API_OUTPUT_EXTEND, 'hostids' => $hostIds, 'search' => array('name' => $filter['application']), 'preservekeys' => true));
}
$items = API::Item()->get(array('hostids' => array_keys($hosts), 'output' => array('itemid', 'name', 'type', 'value_type', 'units', 'hostid', 'state', 'valuemapid', 'status', 'error', 'trends', 'history', 'delay', 'key_', 'flags'), 'selectApplications' => array('applicationid'), 'selectItemDiscovery' => array('ts_delete'), 'applicationids' => $applications !== null ? zbx_objectValues($applications, 'applicationid') : null, 'webitems' => true, 'filter' => array('status' => array(ITEM_STATUS_ACTIVE)), 'preservekeys' => true));
// if the applications haven't been loaded when filtering, load them based on the retrieved items to avoid
// fetching applications from hosts that may not be displayed
if ($applications === null) {
$applications = API::Application()->get(array('output' => API_OUTPUT_EXTEND, 'hostids' => array_keys(array_flip(zbx_objectValues($items, 'hostid'))), 'search' => array('name' => $filter['application']), 'preservekeys' => true));
}
}
if ($items) {
// macros
$items = CMacrosResolverHelper::resolveItemKeys($items);
$items = CMacrosResolverHelper::resolveItemNames($items);
// filter items by name
foreach ($items as $key => $item) {
if ($filter['select'] !== '') {
$haystack = mb_strtolower($item['name_expanded']);
$needle = mb_strtolower($filter['select']);
if (mb_strpos($haystack, $needle) === false) {
unset($items[$key]);
}
}
}
if ($items) {
// get history
$history = Manager::History()->getLast($items, 2, ZBX_HISTORY_PERIOD);
// filter items without history
示例2: explode_exp
function explode_exp($expressionCompressed, $html = false, $resolveMacro = false, $sourceHost = null, $destinationHost = null)
{
$expressionExpanded = $html ? array() : '';
$trigger = array();
for ($i = 0, $state = '', $max = zbx_strlen($expressionCompressed); $i < $max; $i++) {
if ($expressionCompressed[$i] == '{') {
if ($expressionCompressed[$i + 1] == '$') {
$state = 'USERMACRO';
$userMacro = '';
} elseif ($expressionCompressed[$i + 1] == '#') {
$state = 'LLDMACRO';
$lldMacro = '';
} else {
$state = 'FUNCTIONID';
$functionId = '';
continue;
}
} elseif ($expressionCompressed[$i] == '}') {
if ($state == 'USERMACRO') {
$state = '';
$userMacro .= '}';
if ($resolveMacro) {
$functionData['expression'] = $userMacro;
$userMacro = CMacrosResolverHelper::resolveTriggerExpressionUserMacro($functionData);
}
if ($html) {
$expressionExpanded[] = $userMacro;
} else {
$expressionExpanded .= $userMacro;
}
continue;
} elseif ($state == 'LLDMACRO') {
$state = '';
$lldMacro .= '}';
if ($html) {
$expressionExpanded[] = $lldMacro;
} else {
$expressionExpanded .= $lldMacro;
}
continue;
} elseif ($functionId == 'TRIGGER.VALUE') {
$state = '';
if ($html) {
$expressionExpanded[] = '{' . $functionId . '}';
} else {
$expressionExpanded .= '{' . $functionId . '}';
}
continue;
}
$state = '';
$error = true;
if (is_numeric($functionId)) {
$functionData = DBfetch(DBselect('SELECT h.host,h.hostid,i.itemid,i.key_,f.function,f.triggerid,f.parameter,i.itemid,i.status,i.type,i.flags' . ' FROM items i,functions f,hosts h' . ' WHERE f.functionid=' . zbx_dbstr($functionId) . ' AND i.itemid=f.itemid' . ' AND h.hostid=i.hostid'));
if ($functionData) {
$error = false;
if ($resolveMacro) {
$trigger = $functionData;
// expand macros in item key
$items = CMacrosResolverHelper::resolveItemKeys(array($functionData));
$item = reset($items);
$functionData['key_'] = $item['key_expanded'];
// expand macros in function parameter
$functionParameters = CMacrosResolverHelper::resolveFunctionParameters(array($functionData));
$functionParameter = reset($functionParameters);
$functionData['parameter'] = $functionParameter['parameter_expanded'];
}
if ($sourceHost !== null && $destinationHost !== null && $sourceHost === $functionData['host']) {
$functionData['host'] = $destinationHost;
}
if ($html) {
if ($functionData['status'] == ITEM_STATUS_DISABLED) {
$style = 'disabled';
} elseif ($functionData['status'] == ITEM_STATUS_ACTIVE) {
$style = 'enabled';
} else {
$style = 'unknown';
}
if ($functionData['flags'] == ZBX_FLAG_DISCOVERY_CREATED || $functionData['type'] == ITEM_TYPE_HTTPTEST) {
$link = new CSpan($functionData['host'] . ':' . $functionData['key_'], $style);
} elseif ($functionData['flags'] == ZBX_FLAG_DISCOVERY_PROTOTYPE) {
$link = new CLink($functionData['host'] . ':' . $functionData['key_'], 'disc_prototypes.php?form=update&itemid=' . $functionData['itemid'] . '&parent_discoveryid=' . $trigger['discoveryRuleid'] . '&switch_node=' . id2nodeid($functionData['itemid']), $style);
} else {
$link = new CLink($functionData['host'] . ':' . $functionData['key_'], 'items.php?form=update&itemid=' . $functionData['itemid'] . '&switch_node=' . id2nodeid($functionData['itemid']), $style);
}
$expressionExpanded[] = array('{', $link, '.', bold($functionData['function'] . '('), $functionData['parameter'], bold(')'), '}');
} else {
$expressionExpanded .= '{' . $functionData['host'] . ':' . $functionData['key_'] . '.' . $functionData['function'] . '(' . $functionData['parameter'] . ')}';
}
}
}
if ($error) {
if ($html) {
$expressionExpanded[] = new CSpan('*ERROR*', 'on');
} else {
$expressionExpanded .= '*ERROR*';
}
}
continue;
}
switch ($state) {
//.........这里部分代码省略.........