'device', 'device' => $device['device_id'], 'tab' => 'ports', ); print_optionbar_start(); $menu_options['basic'] = 'Basic'; $menu_options['details'] = 'Details'; $menu_options['arp'] = 'ARP Table'; if (dbFetchCell("SELECT * FROM links AS L, ports AS I WHERE I.device_id = '".$device['device_id']."' AND I.port_id = L.local_port_id")) { $menu_options['neighbours'] = 'Neighbours'; } if (dbFetchCell("SELECT COUNT(*) FROM `ports` WHERE `ifType` = 'adsl'")) { $menu_options['adsl'] = 'ADSL'; } $sep = ''; foreach ($menu_options as $option => $text) { echo $sep; if ($vars['view'] == $option) { echo ""; } echo generate_link($text, $link_array, array('view' => $option)); if ($vars['view'] == $option) { echo ''; } $sep = ' | '; } unset($sep); echo ' | Graphs: '; $graph_types = array( 'bits' => 'Bits', 'upkts' => 'Unicast Packets', 'nupkts' => 'Non-Unicast Packets', 'errors' => 'Errors', 'etherlike' => 'Etherlike', ); foreach ($graph_types as $type => $descr) { echo "$type_sep"; if ($vars['graph'] == $type && $vars['view'] == 'graphs') { echo ""; } echo generate_link($descr, $link_array, array('view' => 'graphs', 'graph' => $type)); if ($vars['graph'] == $type && $vars['view'] == 'graphs') { echo ''; } echo ' ('; if ($vars['graph'] == $type && $vars['view'] == 'minigraphs') { echo ""; } echo generate_link('Mini', $link_array, array('view' => 'minigraphs', 'graph' => $type)); if ($vars['graph'] == $type && $vars['view'] == 'minigraphs') { echo ''; } echo ')'; $type_sep = ' | '; }//end foreach print_optionbar_end(); if ($vars['view'] == 'minigraphs') { $timeperiods = array( '-1day', '-1week', '-1month', '-1year', ); $from = '-1day'; echo "
"; unset($seperator); // FIXME - FIX THIS. UGLY. foreach (dbFetchRows('select * from ports WHERE device_id = ? ORDER BY ifIndex', array($device['device_id'])) as $port) { echo "
".makeshortif($port['ifDescr']).'
".$device['hostname'].' - '.$port['ifDescr'].'
\ '.$port['ifAlias']." \ \ ', CENTER, LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 150);\" onmouseout=\"return nd();\" >"."
".truncate(short_port_descr($port['ifAlias']), 32, '').'
'; } echo ''; } else if ($vars['view'] == 'arp' || $vars['view'] == 'adsl' || $vars['view'] == 'neighbours') { include 'ports/'.$vars['view'].'.inc.php'; } else { if ($vars['view'] == 'details') { $port_details = 1; } echo "
"; $i = '1'; global $port_cache, $port_index_cache; $ports = dbFetchRows("SELECT * FROM `ports` WHERE `device_id` = ? AND `deleted` = '0' ORDER BY `ifIndex` ASC", array($device['device_id'])); // As we've dragged the whole database, lets pre-populate our caches :) // FIXME - we should probably split the fetching of link/stack/etc into functions and cache them here too to cut down on single row queries. foreach ($ports as $port) { $port_cache[$port['port_id']] = $port; $port_index_cache[$port['device_id']][$port['ifIndex']] = $port; } foreach ($ports as $port) { if ($config['memcached']['enable'] === true) { $state = $memcache->get('port-'.$port['port_id'].'-state'); d_echo($state); if (is_array($state)) { $port = array_merge($port, $state); } unset($state); } include 'includes/print-interface.inc.php'; $i++; } echo '
'; }//end if $pagetitle[] = 'Ports';