'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(""); }
$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(' (');
if ($vars['graph'] == $type && $vars['view'] == "minigraphs") { echo(""); }
echo(')');
$type_sep = " | ";
}
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("
\
".$port['ifAlias']." \

\
', CENTER, LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 150);\" onmouseout=\"return nd();\" >".
"
".truncate(short_port_descr($port['ifAlias']), 32, '')."
");
}
echo("");
} elseif ($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'])
{
$state = $memcache->get('port-'.$port['port_id'].'-state');
if($debug) { print_r($state); }
if(is_array($state)) { $port = array_merge($port, $state); }
unset($state);
}
include("includes/print-interface.inc.php");
$i++;
}
echo("
");
}
$pagetitle[] = "Ports";
?>