Location: PHPKode > projects > Network Traffic Monitor > online/devices.php
<?php

#Network Traffic Monitor is an application to monitor the network traffic on all SNMP managable devices.
#
#Copyright (c) 2004, Daimler Trust nv <hide@address.com> - Jan Van Hees <hide@address.com>
# 
#This file is part of Network Traffic Monitor.
#
#    Network Traffic Monitor is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    Network Traffic Monitor is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with Network Traffic Monitor; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
/*
* This script provides a list of all linked devices
*/
require_once("../auth.php");
require_once ("../config.php");
require_once ("HTML/Template/IT.php");
require_once "HTML/Table.php";
if($_POST['port']){
	header("Location: error.php");
	exit;
}
$gid = $_GET['g'];

$db = dbLogin();

$tpl = new HTML_Template_IT(TEMPLATEDIR);
$tpl->loadTemplatefile("basic.tpl");

$tpl->setVariable("title","Ports");

#if it is a regular user, he can only C his own ports
if($gid){
	$sql = "SELECT  devices.devicename,devices.host, ports.portname, groups.groupname, groups.gid, speed.mbit, ports.pid, devices.did FROM ports
	INNER JOIN devices ON ports.did = devices.did
	INNER JOIN portgroups ON ports.pid = portgroups.pid
	INNER JOIN groups ON portgroups.gid = groups.gid
	INNER JOIN speed ON ports.speed=speed.spid
	where groups.gid=$gid
	ORDER BY devices.devicename";

}//if gid
# Admin or finance can C all ports from all users
else{
	$sql = "SELECT  devices.devicename,devices.host, ports.portname, groups.groupname, groups.gid, speed.mbit, ports.pid, devices.did FROM ports
	INNER JOIN devices ON ports.did = devices.did
	INNER JOIN portgroups ON ports.pid = portgroups.pid
	INNER JOIN groups ON portgroups.gid = groups.gid
	INNER JOIN speed ON ports.speed=speed.spid
	ORDER BY devices.devicename";
}//else

$temp = $db->query($sql);
	$i = 0;
	while ($row = $temp->fetchrow()){
		$group = "<a href=\"groupusers?g=$row[4]&name=$row[3]\">$row[3]</a>";
		$act = "<a href=\"editdevice.php?p=$row[6]&g=$row[4]&d=$row[7]\"> E </a> / <a href=\"delete.php?type=port&i=$row[6]\">D</a>";
		$spee = "$row[5] Mbit/s";
		$arr = array($row[0], $row[1], $row[2], $spee, $row[3], $act);
		$data[$i]=$arr;
		$i++;
	}//while fetchrow

	//create table
	$tableAttrs = array("width" => "800");
	$table = new HTML_Table($tableAttrs);
	$table -> setAutoGrow(true);

	for($nr = 0 ; $nr < count($data); $nr++) {
		for($i = 0; $i < 6; $i++) {  
			if("" != $data[$nr][$i])
			$table -> setCellContents( $nr+1, $i+1, $data[$nr][$i]);
 		}//for
	}//for
	$altRow = array("bgcolor"=>"silver");	
	$table -> altRowAttributes(1, null, $altRow);
	$table -> setHeaderContents(0, 1, "Device");
	$table -> setHeaderContents(0, 2, "Host");
	$table -> setHeaderContents(0, 3, "Portname");
	$table -> setHeaderContents(0, 4, "Speed");
	$table -> setHeaderContents(0, 5, "Group");
	$table -> setHeaderContents(0, 6, " ");
	$hrAttrs = array("bgcolor" => "silver");
	$table -> setRowAttributes(0, $hrAttrs, true);
	
	$tpl->setVariable("data",$table->toHTML());
	$tpl->setVariable("add", "<a href=\"addport.php\">Link Port</a>");



$content = $tpl->get();
fillFrame($db, $content);
dblogout($db);

?>  
Return current item: Network Traffic Monitor