$digits = $item['value_type'] == ITEM_VALUE_TYPE_FLOAT ? 2 : 0; if (isset($lastHistory['value']) && isset($prevHistory['value']) && ($item['value_type'] == ITEM_VALUE_TYPE_FLOAT || $item['value_type'] == ITEM_VALUE_TYPE_UINT64) && bcsub($lastHistory['value'], $prevHistory['value'], $digits) != 0) { $change = ''; if ($lastHistory['value'] - $prevHistory['value'] > 0) { $change = '+'; } // for 'unixtime' change should be calculated as uptime $change .= convert_units(array('value' => bcsub($lastHistory['value'], $prevHistory['value'], $digits), 'units' => $item['units'] == 'unixtime' ? 'uptime' : $item['units'])); $change = nbsp($change); } else { $change = UNKNOWN_VALUE; } // column "action" $showLink = ($config['hk_history_global'] && $config['hk_history'] == 0 || $item['history'] == 0) && ($config['hk_trends_global'] && $config['hk_trends'] == 0 || $item['trends'] == 0); $checkbox = new CCheckBox('itemids[' . $item['itemid'] . ']', null, null, $item['itemid']); $checkbox->removeAttribute('id'); if ($item['value_type'] == ITEM_VALUE_TYPE_FLOAT || $item['value_type'] == ITEM_VALUE_TYPE_UINT64) { $actions = $showLink ? UNKNOWN_VALUE : new CLink(_('Graph'), 'history.php?action=' . HISTORY_GRAPH . '&itemids[]=' . $item['itemid']); } else { $actions = $showLink ? UNKNOWN_VALUE : new CLink(_('History'), 'history.php?action=' . HISTORY_VALUES . '&itemids[]=' . $item['itemid']); $checkbox->setEnabled(false); } $stateCss = $item['state'] == ITEM_STATE_NOTSUPPORTED ? 'unknown' : ''; $host = $hosts[$item['hostid']]; if ($filter['showDetails']) { // item key $itemKey = $item['type'] == ITEM_TYPE_HTTPTEST || $item['flags'] == ZBX_FLAG_DISCOVERY_CREATED ? new CSpan($item['key_expanded'], 'enabled') : new CLink($item['key_expanded'], 'items.php?form=update&itemid=' . $item['itemid'], 'enabled'); // info if ($item['status'] == ITEM_STATUS_ACTIVE && $item['error'] !== '') { $info = new CDiv(null, 'status_icon iconerror'); $info->setHint($item['error'], 'on');