Ports lists » '; $menu_options = array('basic' => 'Basic', 'detail' => 'Detail'); $sep = ""; foreach ($menu_options as $option => $text) { $displayLists .= $sep; if ($vars['format'] == "list_" . $option) { $displayLists .= ''; } $displayLists .= '' . $text . ''; if ($vars['format'] == "list_" . $option) { $displayLists .= ''; } $sep = " | "; } $displayLists .= '  Graphs » '; $menu_options = array('bits' => 'Bits', 'upkts' => 'Unicast Packets', 'nupkts' => 'Non-Unicast Packets', 'errors' => 'Errors'); $sep = ""; foreach ($menu_options as $option => $text) { $displayLists .= $sep; if ($vars['format'] == 'graph_' . $option) { $displayLists .= ''; } $displayLists .= '' . $text . ''; if ($vars['format'] == 'graph_' . $option) { $displayLists .= ''; } $sep = " | "; } $displayLists .= '
'; $displayLists .= 'Export CSV | Update URL | '; if (isset($vars['searchbar']) && $vars['searchbar'] == "hide") { $displayLists .= 'Search'; } else { $displayLists .= 'Search'; } $displayLists .= ' | '; if (isset($vars['bare']) && $vars['bare'] == "yes") { $displayLists .= 'Header'; } else { $displayLists .= 'Header'; } $displayLists .= ' | '; $displayLists .= 'Bulk actions »'; $displayLists .= ' Purge all deleted'; $displayLists .= '
'; if ((isset($vars['searchbar']) && $vars['searchbar'] != "hide") || !isset($vars['searchbar'])) { $output = "
"; $output .= "
"; $output .= addslashes(csrf_field()); $output .= "
"; $output .= "
"; $output .= " "; if (strlen($vars['hostname'])) { $hasvalue = "value='" . $vars['hostname'] . "'"; } else { $hasvalue = ""; } $output .= ""; $output .= "
 "; switch ($vars['state']) { case "up": $isup = "selected"; $isdown = ""; $admindown = ""; break; case "down": $isup = ""; $isdown = "selected"; $admindown = ""; break; case "admindown": $isup = ""; $isdown = ""; $admindown = "selected"; break; } $output .= "
"; $output .= " "; $output .= " "; $output .= "
"; $output .= "
"; $output .= " "; $output .= " "; $output .= "
"; $output .= "
"; if (strlen($vars['ifAlias'])) { $ifaliasvalue = "value='" . $vars['ifAlias'] . "'"; } $output .= "
"; $output .= "
"; $output .= "
"; $output .= " "; $output .= " "; if ($vars['ignore']) { $ignorecheck = "checked"; } else { $ignorecheck = ""; } if ($vars['disabled']) { $disabledcheck = "checked"; } else { $disabledcheck = ""; } if ($vars['deleted']) { $deletedcheck = "checked"; } else { $deletedcheck = ""; } $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= " 'ports', 'section' => $vars['section'], 'bare' => $vars['bare'])) . "' title='Reset critera to default.'>Reset"; $output .= "
"; $output .= "
"; $output .= "
"; } $param = array(); if (!isset($vars['ignore'])) { $vars['ignore'] = "0"; } if (!isset($vars['disabled'])) { $vars['disabled'] = "0"; } if (!isset($vars['deleted'])) { $vars['deleted'] = "0"; } $where = ''; $ignore_filter = 0; $disabled_filter = 0; foreach ($vars as $var => $value) { if ($value != "") { switch ($var) { case 'hostname': $where .= " AND D.hostname LIKE ?"; $param[] = "%" . $value . "%"; break; case 'location': if (is_int($value)) { $where .= " AND L.id = ?"; $param[] = $value; } else { $where .= " AND L.location LIKE ?"; $param[] = "%" . $value . "%"; } break; case 'device_id': $where .= " AND D.device_id = ?"; $param[] = $value; break; case 'deleted': if ($value == 1) { $where .= " AND `I`.`deleted` = 1"; $ignore_filter = 1; } break; case 'ignore': if ($value == 1) { $where .= " AND (I.ignore = 1 OR D.ignore = 1) AND I.deleted = 0"; $ignore_filter = 1; } break; case 'disabled': if ($value == 1) { $where .= " AND `I`.`disabled` = 1 AND `I`.`deleted` = 0"; $disabled_filter = 1; } break; case 'ifSpeed': if (is_numeric($value)) { $where .= " AND I.$var = ?"; $param[] = $value; } break; case 'ifType': $where .= " AND I.$var = ?"; $param[] = $value; break; case 'ifAlias': case 'port_descr_type': $where .= " AND I.$var LIKE ?"; $param[] = "%" . $value . "%"; break; case 'errors': if ($value == 1) { $where .= " AND (I.`ifInErrors_delta` > '0' OR I.`ifOutErrors_delta` > '0')"; } break; case 'state': if ($value == "down") { $where .= " AND I.ifAdminStatus = ? AND I.ifOperStatus = ?"; $param[] = "up"; $param[] = "down"; } elseif ($value == "up") { $where .= " AND I.ifAdminStatus = ? AND I.ifOperStatus = ?"; $param[] = "up"; $param[] = "up"; } elseif ($value == "admindown") { $where .= " AND I.ifAdminStatus = ? AND D.ignore = 0"; $param[] = "down"; } break; case 'purge': if ($vars['purge'] === 'all') { $interfaces = dbFetchRows('SELECT * from `ports` AS P, `devices` AS D WHERE `deleted` = 1 AND D.device_id = P.device_id'); foreach ($interfaces as $interface) { $interface = cleanPort($interface); if (port_permitted($interface['port_id'], $interface['device_id'])) { delete_port($interface['port_id']); } } } else { $interface = dbFetchRow('SELECT * from `ports` AS P, `devices` AS D WHERE `port_id` = ? AND D.device_id = P.device_id', array($vars['purge'])); $interface = cleanPort($interface); if (port_permitted($interface['port_id'], $interface['device_id'])) { delete_port($interface['port_id']); } } break; } } } if ($ignore_filter == 0 && $disabled_filter == 0) { $where .= " AND `I`.`ignore` = 0 AND `I`.`disabled` = 0 AND `I`.`deleted` = 0"; } $query = "SELECT * FROM `ports` AS I, `devices` AS D LEFT JOIN `locations` AS L ON D.location_id = L.id WHERE I.device_id = D.device_id" . $where . " " . $query_sort; $row = 1; list($format, $subformat) = explode('_', basename($vars['format'])); // only grab list of ports for graph pages, table uses ajax $ports = $format == 'graph' ? dbFetchRows($query, $param) : []; switch ($vars['sort']) { case 'traffic': $ports = array_sort_by_column($ports, 'ifOctets_rate', SORT_DESC); break; case 'traffic_in': $ports = array_sort_by_column($ports, 'ifInOctets_rate', SORT_DESC); break; case 'traffic_out': $ports = array_sort_by_column($ports, 'ifOutOctets_rate', SORT_DESC); break; case 'packets': $ports = array_sort_by_column($ports, 'ifUcastPkts_rate', SORT_DESC); break; case 'packets_in': $ports = array_sort_by_column($ports, 'ifInUcastOctets_rate', SORT_DESC); break; case 'packets_out': $ports = array_sort_by_column($ports, 'ifOutUcastOctets_rate', SORT_DESC); break; case 'errors': $ports = array_sort_by_column($ports, 'ifErrors_rate', SORT_DESC); break; case 'speed': $ports = array_sort_by_column($ports, 'ifSpeed', SORT_DESC); break; case 'port': $ports = array_sort_by_column($ports, 'ifDescr', SORT_ASC); break; case 'media': $ports = array_sort_by_column($ports, 'ifType', SORT_ASC); break; case 'descr': $ports = array_sort_by_column($ports, 'ifAlias', SORT_ASC); break; case 'device': default: $ports = array_sort_by_column($ports, 'hostname', SORT_ASC); } if (file_exists('includes/html/pages/ports/' . $format . '.inc.php')) { require 'includes/html/pages/ports/' . $format . '.inc.php'; }