if ($from < 0) { $from = $to + $from; } $period = $to - $from; $prev_from = $from - $period; $graphfile = $config['temp_dir'] . '/' . strgen() . '.png'; $type = $graphtype['type']; $subtype = $graphtype['subtype']; if ($auth !== true && $auth != 1) { $auth = is_client_authorized($_SERVER['REMOTE_ADDR']); } require $config['install_dir'] . "/html/includes/graphs/{$type}/auth.inc.php"; if ($auth === true && is_custom_graph($type, $subtype, $device)) { include $config['install_dir'] . "/html/includes/graphs/custom.inc.php"; } else { if ($auth === true && is_mib_graph($type, $subtype)) { include $config['install_dir'] . "/html/includes/graphs/{$type}/mib.inc.php"; } elseif ($auth === true && is_file($config['install_dir'] . "/html/includes/graphs/{$type}/{$subtype}.inc.php")) { include $config['install_dir'] . "/html/includes/graphs/{$type}/{$subtype}.inc.php"; } else { graph_error("{$type}*{$subtype} "); // Graph Template Missing"); } } function graph_error($string) { global $vars, $config, $debug, $graphfile; $vars['bg'] = 'FFBBBB'; include 'includes/graphs/common.inc.php'; $rrd_options .= ' HRULE:0#555555'; $rrd_options .= " --title='" . $string . "'";
function get_graph_subtypes($type, $device = null) { global $config; $types = array(); // find the subtypes defined in files if ($handle = opendir($config['install_dir'] . "/html/includes/graphs/{$type}/")) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file != "auth.inc.php" && strstr($file, ".inc.php")) { $types[] = str_replace(".inc.php", "", $file); } } closedir($handle); } // find the MIB subtypes foreach ($config['graph_types'] as $type => $unused1) { foreach ($config['graph_types'][$type] as $subtype => $unused2) { if (is_mib_graph($type, $subtype) && $device != null && is_device_graph($device, $subtype)) { $types[] = $subtype; } } } sort($types); return $types; }
foreach ($menu_options as $option => $text) { echo $sep; if ($vars['format'] == 'graph_' . $option) { echo '<span class="pagemenu-selected">'; } echo '<a href="' . generate_url($vars, array('format' => 'graph_' . $option, 'from' => '-24h', 'to' => 'now')) . '">' . $text . '</a>'; if ($vars['format'] == 'graph_' . $option) { echo '</span>'; } $sep = " | "; } echo '<div class="devices-float-right">'; $graphs_types = '<select name="type" id="type" onchange="window.open(this.options[this.selectedIndex].value,\'_top\')" class="devices-graphs-select">'; $type = 'device'; foreach (get_graph_subtypes($type) as $avail_type) { $display_type = is_mib_graph($type, $avail_type) ? $avail_type : nicecase($avail_type); if ('graph_' . $avail_type == $vars['format']) { $is_selected = 'selected'; } else { $is_selected = ''; } $graphs_types .= '<option value="' . generate_url($vars, array('format' => 'graph_' . $avail_type)) . '" ' . $is_selected . '>' . $display_type . '</option>'; } $graphs_types .= '</select>'; echo $graphs_types; if (isset($vars['searchbar']) && $vars['searchbar'] == "hide") { echo '<a href="' . generate_url($vars, array('searchbar' => '')) . '">Restore Search</a>'; } else { echo '<a href="' . generate_url($vars, array('searchbar' => 'hide')) . '">Remove Search</a>'; } echo " | ";