2009-10-02 13:20:24 +00:00
< ? php
2011-09-18 13:11:04 +00:00
function generate_link ( $text , $vars , $new_vars = array ())
{
return '<a href="' . generate_url ( $vars , $new_vars ) . '">' . $text . '</a>' ;
}
2011-09-17 19:14:44 +00:00
2011-09-14 13:38:01 +00:00
function generate_url ( $vars , $new_vars = array ())
{
$vars = array_merge ( $vars , $new_vars );
2011-09-17 18:31:49 +00:00
$url = $vars [ 'page' ] . " / " ;
2011-09-14 13:38:01 +00:00
unset ( $vars [ 'page' ]);
2011-10-04 09:10:21 +00:00
foreach ( $vars as $var => $value )
2011-09-14 13:38:01 +00:00
{
2011-12-06 23:02:31 +00:00
if ( $value == " 0 " || $value != " " && strstr ( $var , " opt " ) === FALSE && is_numeric ( $var ) === FALSE )
2011-09-14 13:38:01 +00:00
{
$url .= $var . " = " . $value . " / " ;
}
}
return ( $url );
}
2011-09-17 19:14:44 +00:00
function generate_overlib_content ( $graph_array , $text )
{
global $config ;
2011-09-26 12:16:05 +00:00
$overlib_content = '<div style="width: 580px;"><span style="font-weight: bold; font-size: 16px;">' . $text . " </span><br /> " ;
2011-09-17 19:14:44 +00:00
foreach ( array ( 'day' , 'week' , 'month' , 'year' ) as $period )
{
$graph_array [ 'from' ] = $config [ 'time' ][ $period ];
$overlib_content .= str_replace ( '"' , " \ ' " , generate_graph_tag ( $graph_array ));
}
$overlib_content .= " </div> " ;
return $overlib_content ;
}
2011-04-25 17:15:36 +00:00
function get_percentage_colours ( $percentage )
{
if ( $percentage > '90' ) { $background [ 'left' ] = 'c4323f' ; $background [ 'right' ] = 'C96A73' ; }
elseif ( $percentage > '75' ) { $background [ 'left' ] = 'bf5d5b' ; $background [ 'right' ] = 'd39392' ; }
elseif ( $percentage > '50' ) { $background [ 'left' ] = 'bf875b' ; $background [ 'right' ] = 'd3ae92' ; }
elseif ( $percentage > '25' ) { $background [ 'left' ] = '5b93bf' ; $background [ 'right' ] = '92b7d3' ; }
else { $background [ 'left' ] = '9abf5b' ; $background [ 'right' ] = 'bbd392' ; }
return ( $background );
}
2011-09-18 13:11:04 +00:00
function generate_device_url ( $device , $vars = array ())
2011-05-17 19:21:20 +00:00
{
2011-09-18 13:11:04 +00:00
return generate_url ( array ( 'page' => 'device' , 'device' => $device [ 'device_id' ]), $vars );
2011-05-17 19:21:20 +00:00
}
2012-02-16 16:43:11 +00:00
function generate_device_link ( $device , $text = NULL , $vars = array (), $start = 0 , $end = 0 )
2010-06-24 18:04:42 +00:00
{
2011-05-17 19:21:20 +00:00
global $config ;
if ( ! $start ) { $start = $config [ 'time' ][ 'day' ]; }
if ( ! $end ) { $end = $config [ 'time' ][ 'now' ]; }
2011-02-02 11:59:08 +00:00
2010-06-24 18:04:42 +00:00
$class = devclass ( $device );
if ( ! $text ) { $text = $device [ 'hostname' ]; }
2011-02-02 11:59:08 +00:00
2010-07-23 15:05:01 +00:00
if ( isset ( $config [ 'os' ][ $device [ 'os' ]][ 'over' ]))
2010-06-24 18:04:42 +00:00
{
2010-07-23 15:05:01 +00:00
$graphs = $config [ 'os' ][ $device [ 'os' ]][ 'over' ];
2010-06-24 18:04:42 +00:00
}
2011-05-05 14:39:50 +00:00
elseif ( isset ( $device [ 'os_group' ]) && isset ( $config [ 'os' ][ $device [ 'os_group' ]][ 'over' ]))
2010-06-25 13:04:03 +00:00
{
2010-07-23 15:05:01 +00:00
$graphs = $config [ 'os' ][ $device [ 'os_group' ]][ 'over' ];
2011-03-16 18:28:52 +00:00
}
2010-06-24 18:04:42 +00:00
else
{
2011-03-16 18:28:52 +00:00
$graphs = $config [ 'os' ][ 'default' ][ 'over' ];
2010-06-24 18:04:42 +00:00
}
2011-09-18 13:11:04 +00:00
$url = generate_device_url ( $device , $vars );
2010-07-24 19:14:41 +00:00
$contents = " <div class=list-large> " . $device [ 'hostname' ];
2011-03-16 18:28:52 +00:00
if ( $device [ 'hardware' ]) { $contents .= " - " . $device [ 'hardware' ]; }
2010-07-24 19:14:41 +00:00
$contents .= " </div> " ;
2010-07-23 13:40:31 +00:00
$contents .= " <div> " ;
2011-03-16 18:28:52 +00:00
if ( $device [ 'os' ]) { $contents .= mres ( $config [ 'os' ][ $device [ 'os' ]][ 'text' ]); }
if ( $device [ 'version' ]) { $contents .= " " . mres ( $device [ 'version' ]); }
if ( $device [ 'features' ]) { $contents .= " ( " . mres ( $device [ 'features' ]) . " ) " ; }
2012-02-16 16:43:11 +00:00
if ( $device [ 'hardware' ]) { $contents .= " - " . $device [ 'hardware' ]; }
if ( isset ( $device [ 'location' ])) { $contents .= " <br /> " . htmlentities ( $device [ 'location' ]); }
2010-07-23 13:40:31 +00:00
$contents .= " </div> " ;
2010-07-23 15:05:01 +00:00
foreach ( $graphs as $entry )
2010-06-24 18:04:42 +00:00
{
2010-07-23 15:05:01 +00:00
$graph = $entry [ 'graph' ];
2011-03-16 18:28:52 +00:00
$graphhead = $entry [ 'text' ];
2010-07-23 15:05:01 +00:00
$contents .= '<div style="width: 708px">' ;
$contents .= '<span style="margin-left: 5px; font-size: 12px; font-weight: bold;">' . $graphhead . '</span><br />' ;
2011-04-21 13:41:24 +00:00
$contents .= " <img src= \" graph.php?id= " . $device [ 'device_id' ] . " &from= $start &to= $end &width=275&height=100&type= $graph &legend=no " . '" style="margin: 2px;">' ;
2011-05-17 19:21:20 +00:00
$contents .= " <img src= \" graph.php?id= " . $device [ 'device_id' ] . " &from= " . $config [ 'time' ][ 'week' ] . " &to= $end &width=275&height=100&type= $graph &legend=no " . '" style="margin: 2px;">' ;
2010-07-23 15:05:01 +00:00
$contents .= '</div>' ;
2010-06-24 18:04:42 +00:00
}
2011-03-16 18:28:52 +00:00
2010-06-24 18:04:42 +00:00
$text = htmlentities ( $text );
$link = overlib_link ( $url , $text , $contents , $class );
2011-03-16 18:28:52 +00:00
if ( device_permitted ( $device [ 'device_id' ]))
{
2010-06-24 18:04:42 +00:00
return $link ;
} else {
return $device [ 'hostname' ];
}
return $link ;
}
2011-03-16 18:28:52 +00:00
function overlib_link ( $url , $text , $contents , $class )
{
2010-05-02 23:24:47 +00:00
global $config ;
2011-03-16 18:28:52 +00:00
2010-05-02 23:24:47 +00:00
$contents = str_replace ( " \" " , " \ ' " , $contents );
$output = " <a class=' " . $class . " ' href=' " . $url . " ' " ;
$output .= " onmouseover= \" return overlib(' " . $contents . " ' " . $config [ 'overlib_defaults' ] . " ); \" onmouseout= \" return nd(); \" > " ;
$output .= $text . " </a> " ;
2011-03-16 18:28:52 +00:00
2010-05-02 23:24:47 +00:00
return $output ;
}
2011-03-16 18:28:52 +00:00
function generate_graph_popup ( $graph_array )
2010-05-02 23:24:47 +00:00
{
global $config ;
2011-09-20 14:37:54 +00:00
2010-05-02 23:24:47 +00:00
## Take $graph_array and print day,week,month,year graps in overlib, hovered over graph
$graph = generate_graph_tag ( $graph_array );
$content = " <div class=list-large> " . $graph_array [ 'popup_title' ] . " </div> " ;
$content .= " <div style= \ 'width: 850px \ '> " ;
$graph_array [ 'legend' ] = " yes " ;
$graph_array [ 'height' ] = " 100 " ;
$graph_array [ 'width' ] = " 340 " ;
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'day' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'week' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'month' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'year' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
$content .= " </div> " ;
2011-09-22 15:05:11 +00:00
2011-09-20 16:09:54 +00:00
$graph_array [ 'link' ] = " graphs/type= " . $graph_array [ 'type' ] . " /id= " . $graph_array [ 'id' ];
2010-05-02 23:24:47 +00:00
2011-03-31 10:51:02 +00:00
return overlib_link ( $graph_array [ 'link' ], $graph , $content , NULL );
2010-05-02 23:24:47 +00:00
}
function print_graph_popup ( $graph_array )
{
2010-11-20 14:04:07 +00:00
echo ( generate_graph_popup ( $graph_array ));
2010-05-02 23:24:47 +00:00
}
2011-03-16 18:28:52 +00:00
function permissions_cache ( $user_id )
2010-07-31 21:08:35 +00:00
{
2010-04-24 14:23:16 +00:00
$permissions = array ();
2011-05-12 20:16:03 +00:00
foreach ( dbFetchRows ( " SELECT * FROM devices_perms WHERE user_id = ' " . $user_id . " ' " ) as $device )
2011-03-16 18:28:52 +00:00
{
$permissions [ 'device' ][ $device [ 'device_id' ]] = 1 ;
2010-04-24 14:23:16 +00:00
}
2011-05-12 20:16:03 +00:00
foreach ( dbFetchRows ( " SELECT * FROM ports_perms WHERE user_id = ' " . $user_id . " ' " ) as $port )
2011-03-16 18:28:52 +00:00
{
2010-06-10 20:13:41 +00:00
$permissions [ 'port' ][ $port [ 'interface_id' ]] = 1 ;
2010-04-24 14:23:16 +00:00
}
2011-05-12 20:16:03 +00:00
foreach ( dbFetchRows ( " SELECT * FROM bill_perms WHERE user_id = ' " . $user_id . " ' " ) as $bill )
2011-03-16 18:28:52 +00:00
{
2010-07-31 21:08:35 +00:00
$permissions [ 'bill' ][ $bill [ 'bill_id' ]] = 1 ;
}
2011-03-31 10:51:02 +00:00
2010-04-24 14:23:16 +00:00
return $permissions ;
}
2011-03-16 18:28:52 +00:00
function bill_permitted ( $bill_id )
2010-07-31 21:08:35 +00:00
{
2011-03-31 17:19:54 +00:00
global $permissions ;
2011-03-16 18:28:52 +00:00
2010-07-31 21:08:35 +00:00
if ( $_SESSION [ 'userlevel' ] >= " 5 " ) {
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( $permissions [ 'bill' ][ $bill_id ]) {
2010-07-31 21:08:35 +00:00
$allowed = TRUE ;
} else {
$allowed = FALSE ;
}
2011-03-16 18:28:52 +00:00
return $allowed ;
2010-07-31 21:08:35 +00:00
}
2011-03-16 18:28:52 +00:00
2010-08-01 14:17:06 +00:00
function port_permitted ( $interface_id , $device_id = NULL )
2010-04-24 22:43:25 +00:00
{
2011-03-31 17:19:54 +00:00
global $permissions ;
2010-08-01 14:17:06 +00:00
2011-03-16 18:28:52 +00:00
if ( ! is_numeric ( $device_id )) { $device_id = get_device_id_by_interface_id ( $interface_id ); }
if ( $_SESSION [ 'userlevel' ] >= " 5 " )
{
2010-04-24 22:43:25 +00:00
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( device_permitted ( $device_id )) {
2010-04-24 22:43:25 +00:00
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( $permissions [ 'port' ][ $interface_id ]) {
2010-04-24 22:43:25 +00:00
$allowed = TRUE ;
} else {
$allowed = FALSE ;
}
2011-03-16 18:28:52 +00:00
2010-04-24 22:43:25 +00:00
return $allowed ;
}
2010-08-01 14:17:06 +00:00
function application_permitted ( $app_id , $device_id = NULL )
{
2011-03-31 17:19:54 +00:00
global $permissions ;
2011-09-20 14:37:54 +00:00
2011-03-16 18:28:52 +00:00
if ( is_numeric ( $app_id ))
2010-08-01 14:17:06 +00:00
{
2011-12-02 13:57:13 +00:00
if ( ! $device_id ) { $device_id = get_device_id_by_app_id ( $app_id ); }
2010-08-01 14:17:06 +00:00
if ( $_SESSION [ 'userlevel' ] >= " 5 " ) {
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( device_permitted ( $device_id )) {
2010-08-01 14:17:06 +00:00
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( $permissions [ 'application' ][ $app_id ]) {
2010-08-01 14:17:06 +00:00
$allowed = TRUE ;
} else {
$allowed = FALSE ;
}
} else {
$allowed = FALSE ;
}
2011-03-31 10:51:02 +00:00
2010-08-01 14:17:06 +00:00
return $allowed ;
}
function device_permitted ( $device_id )
2010-04-24 22:43:25 +00:00
{
2011-03-31 17:19:54 +00:00
global $permissions ;
2011-03-16 18:28:52 +00:00
if ( $_SESSION [ 'userlevel' ] >= " 5 " )
{
2010-04-24 22:43:25 +00:00
$allowed = true ;
2011-03-27 10:21:19 +00:00
} elseif ( $permissions [ 'device' ][ $device_id ]) {
2010-04-24 22:43:25 +00:00
$allowed = true ;
} else {
$allowed = false ;
}
2011-03-16 18:28:52 +00:00
return $allowed ;
2010-04-24 22:43:25 +00:00
}
2011-04-22 20:46:19 +00:00
function print_graph_tag ( $args )
2010-03-11 21:58:50 +00:00
{
2011-04-22 20:46:19 +00:00
echo ( generate_graph_tag ( $args ));
2010-03-11 21:58:50 +00:00
}
2011-04-22 20:46:19 +00:00
function generate_graph_tag ( $args )
2010-03-11 21:58:50 +00:00
{
2011-03-16 18:28:52 +00:00
foreach ( $args as $key => $arg )
2010-03-11 21:58:50 +00:00
{
2011-04-22 20:46:19 +00:00
$urlargs [] = $key . " = " . $arg ;
2010-03-11 21:58:50 +00:00
}
2011-03-31 10:51:02 +00:00
2011-04-22 20:46:19 +00:00
return '<img src="graph.php?' . implode ( '&' , $urlargs ) . '" border="0" />' ;
2010-03-11 21:58:50 +00:00
}
2011-06-14 14:04:56 +00:00
function generate_graph_js_state ( $args ) {
// we are going to assume we know roughly what the graph url looks like here.
// TODO: Add sensible defaults
$from = ( is_numeric ( $args [ 'from' ]) ? $args [ 'from' ] : 0 );
$to = ( is_numeric ( $args [ 'to' ]) ? $args [ 'to' ] : 0 );
$width = ( is_numeric ( $args [ 'width' ]) ? $args [ 'width' ] : 0 );
$height = ( is_numeric ( $args [ 'height' ]) ? $args [ 'height' ] : 0 );
$legend = str_replace ( " ' " , " " , $args [ 'legend' ]);
$state = <<< STATE
< script type = " text/javascript " language = " JavaScript " >
document . graphFrom = $from ;
document . graphTo = $to ;
document . graphWidth = $width ;
document . graphHeight = $height ;
document . graphLegend = '$legend' ;
</ script >
STATE ;
return $state ;
}
2011-04-22 20:46:19 +00:00
function print_percentage_bar ( $width , $height , $percent , $left_text , $left_colour , $left_background , $right_text , $right_colour , $right_background )
2010-02-16 00:44:10 +00:00
{
2011-09-16 22:45:01 +00:00
2011-09-20 14:37:54 +00:00
if ( $percent > " 100 " ) { $size_percent = " 100 " ; } else { $size_percent = $percent ; }
2011-09-16 22:45:01 +00:00
2010-02-16 00:44:10 +00:00
$output = '
< div style = " font-size:11px; " >
< div style = " width:'. $width .'px; height:'. $height .'px; background-color:#'. $right_background .'; " >
2011-09-16 22:45:01 +00:00
< div style = " width:'. $size_percent .'%; height:'. $height .'px; background-color:#'. $left_background .'; border-right:0px white solid; " ></ div >
2011-03-04 16:14:21 +00:00
< div style = " vertical-align: middle;height: '. $height .'px;margin-top:-'.( $height ).'px; color:#'. $left_colour .'; padding-left :4px; " >< b > '.$left_text.' </ b ></ div >
< div style = " vertical-align: middle;height: '. $height .'px;margin-top:-'.( $height ).'px; color:#'. $right_colour .'; padding-right:4px;text-align:right; " >< b > '.$right_text.' </ b ></ div >
2010-02-16 00:44:10 +00:00
</ div >
</ div > ' ;
2011-03-31 10:51:02 +00:00
2010-02-13 23:55:56 +00:00
return $output ;
}
2010-08-02 22:09:52 +00:00
function generate_port_link ( $args , $text = NULL , $type = NULL )
2009-10-02 13:20:24 +00:00
{
2011-05-17 19:21:20 +00:00
global $config ;
2011-03-31 10:51:02 +00:00
2009-10-02 13:20:24 +00:00
$args = ifNameDescr ( $args );
2011-03-16 18:28:52 +00:00
if ( ! $text ) { $text = fixIfName ( $args [ 'label' ]); }
if ( $type ) { $args [ 'graph_type' ] = $type ; }
2011-05-05 14:39:50 +00:00
if ( ! isset ( $args [ 'graph_type' ])) { $args [ 'graph_type' ] = 'port_bits' ; }
2011-03-16 18:28:52 +00:00
2009-10-02 13:20:24 +00:00
$class = ifclass ( $args [ 'ifOperStatus' ], $args [ 'ifAdminStatus' ]);
2011-05-19 10:02:55 +00:00
2011-03-16 18:28:52 +00:00
if ( ! isset ( $args [ 'hostname' ])) { $args = array_merge ( $args , device_by_id_cache ( $args [ 'device_id' ])); }
2010-05-02 23:24:47 +00:00
$content = " <div class=list-large> " . $args [ 'hostname' ] . " - " . fixifName ( $args [ 'label' ]) . " </div> " ;
2011-03-16 18:28:52 +00:00
if ( $args [ 'ifAlias' ]) { $content .= $args [ 'ifAlias' ] . " <br /> " ; }
2010-05-02 23:24:47 +00:00
$content .= " <div style= \ 'width: 850px \ '> " ;
$graph_array [ 'type' ] = $args [ 'graph_type' ];
$graph_array [ 'legend' ] = " yes " ;
$graph_array [ 'height' ] = " 100 " ;
$graph_array [ 'width' ] = " 340 " ;
2011-09-20 14:37:54 +00:00
$graph_array [ 'to' ] = $config [ 'time' ][ 'now' ];
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'day' ];
2010-08-01 00:38:01 +00:00
$graph_array [ 'id' ] = $args [ 'interface_id' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'week' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'month' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'year' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
$content .= " </div> " ;
2011-03-16 18:28:52 +00:00
2011-05-17 19:21:20 +00:00
$url = generate_port_url ( $args );
2010-05-02 23:24:47 +00:00
2011-05-19 10:02:55 +00:00
if ( port_permitted ( $args [ 'interface_id' ], $args [ 'device_id' ])) {
2010-05-02 23:24:47 +00:00
return overlib_link ( $url , $text , $content , $class );
} else {
return fixifName ( $text );
}
2009-10-02 13:20:24 +00:00
}
2011-09-18 13:11:04 +00:00
function generate_port_url ( $port , $vars = array ())
{
2011-09-19 11:16:04 +00:00
return generate_url ( array ( 'page' => 'device' , 'device' => $port [ 'device_id' ], 'tab' => 'port' , 'port' => $port [ 'interface_id' ]), $vars );
2011-05-17 19:21:20 +00:00
}
2011-03-16 18:28:52 +00:00
function generate_port_thumbnail ( $args )
2010-03-11 21:58:50 +00:00
{
2011-09-26 14:06:48 +00:00
if ( ! $args [ 'bg' ]) { $args [ 'bg' ] = " FFFFFF " ; }
$args [ 'content' ] = " <img src='graph.php?type= " . $args [ 'graph_type' ] . " &id= " . $args [ 'interface_id' ] . " &from= " . $args [ 'from' ] . " &to= " . $args [ 'to' ] . " &width= " . $args [ 'width' ] . " &height= " . $args [ 'height' ] . " &bg= " . $args [ 'bg' ] . " '> " ;
2011-03-31 10:51:02 +00:00
echo ( generate_port_link ( $args , $args [ 'content' ]));
2009-10-02 13:20:24 +00:00
}
2011-09-14 13:38:01 +00:00
function print_optionbar_start ( $height = 0 , $width = 0 , $marginbottom = 5 )
2010-03-11 21:58:50 +00:00
{
2009-10-02 13:20:24 +00:00
echo ( "
2011-09-26 12:16:05 +00:00
< div class = 'rounded-5px' style = ' border : 1 px solid #ccc; display: block; background: #eee; text-align: left; margin-top: 0px;
2011-09-15 23:05:06 +00:00
margin - bottom : " . $marginbottom . " px ; " . ( $width ? 'max-width: ' . $width . (strstr( $width ,'%') ? '' : 'px') . '; ' : '') . "
2011-09-26 12:16:05 +00:00
padding : 7 px 14 px 8 px 14 px ' > " );
2009-10-02 13:20:24 +00:00
}
2011-03-16 18:28:52 +00:00
function print_optionbar_end ()
2010-03-11 21:58:50 +00:00
{
2011-09-15 23:05:06 +00:00
echo ( ' </div>' );
2009-10-02 13:20:24 +00:00
}
2011-03-16 18:28:52 +00:00
function geteventicon ( $message )
2010-07-07 13:58:11 +00:00
{
if ( $message == " Device status changed to Down " ) { $icon = " server_connect.png " ; }
if ( $message == " Device status changed to Up " ) { $icon = " server_go.png " ; }
2011-03-27 10:21:19 +00:00
if ( $message == " Interface went down " || $message == " Interface changed state to Down " ) { $icon = " if-disconnect.png " ; }
if ( $message == " Interface went up " || $message == " Interface changed state to Up " ) { $icon = " if-connect.png " ; }
2010-07-07 13:58:11 +00:00
if ( $message == " Interface disabled " ) { $icon = " if-disable.png " ; }
if ( $message == " Interface enabled " ) { $icon = " if-enable.png " ; }
if ( isset ( $icon )) { return $icon ; } else { return false ; }
}
2011-03-16 18:28:52 +00:00
function overlibprint ( $text )
{
return " onmouseover= \" return overlib(' " . $text . " '); \" onmouseout= \" return nd(); \" " ;
2010-07-07 13:58:11 +00:00
}
2011-03-16 18:28:52 +00:00
function humanmedia ( $media )
2010-07-07 13:58:11 +00:00
{
2011-09-20 09:55:11 +00:00
array_preg_replace ( $rewrite_iftype , $media );
2010-07-07 13:58:11 +00:00
return $media ;
}
2011-03-16 18:28:52 +00:00
function humanspeed ( $speed )
2010-07-07 13:58:11 +00:00
{
$speed = formatRates ( $speed );
if ( $speed == " " ) { $speed = " - " ; }
return $speed ;
}
2011-03-16 18:28:52 +00:00
function devclass ( $device )
2010-07-17 22:53:53 +00:00
{
2011-03-16 18:28:52 +00:00
if ( isset ( $device [ 'status' ]) && $device [ 'status' ] == '0' ) { $class = " list-device-down " ; } else { $class = " list-device " ; }
if ( isset ( $device [ 'ignore' ]) && $device [ 'ignore' ] == '1' )
{
2010-07-17 22:53:53 +00:00
$class = " list-device-ignored " ;
if ( isset ( $device [ 'status' ]) && $device [ 'status' ] == '1' ) { $class = " list-device-ignored-up " ; }
2011-03-16 18:28:52 +00:00
}
if ( isset ( $device [ 'disabled' ]) && $device [ 'disabled' ] == '1' ) { $class = " list-device-disabled " ; }
2010-07-17 22:53:53 +00:00
return $class ;
}
2011-03-31 17:19:54 +00:00
function getlocations ()
{
# Fetch override locations, not through get_dev_attrib, this would be a huge number of queries
2011-05-12 20:16:03 +00:00
$rows = dbFetchRows ( " SELECT attrib_type,attrib_value,device_id FROM devices_attribs WHERE attrib_type LIKE 'override_sysLocation%' ORDER BY attrib_type " );
foreach ( $rows as $row )
2011-03-31 17:19:54 +00:00
{
if ( $row [ 'attrib_type' ] == 'override_sysLocation_bool' && $row [ 'attrib_value' ] == 1 )
{
$ignore_dev_location [ $row [ 'device_id' ]] = 1 ;
}
# We can do this because of the ORDER BY, "bool" will be handled before "string"
elseif ( $row [ 'attrib_type' ] == 'override_sysLocation_string' && $ignore_dev_location [ $row [ 'device_id' ]] == 1 )
{
2011-03-31 17:35:09 +00:00
if ( ! in_array ( $row [ 'attrib_value' ], $locations )) { $locations [] = $row [ 'attrib_value' ]; }
2011-03-31 17:19:54 +00:00
}
}
# Fetch regular locations
if ( $_SESSION [ 'userlevel' ] >= '5' )
{
2011-05-12 20:16:03 +00:00
$rows = dbFetchRows ( " SELECT D.device_id,location FROM devices AS D GROUP BY location ORDER BY location " );
2011-03-31 17:19:54 +00:00
} else {
2011-05-12 20:16:03 +00:00
$rows = dbFetchRows ( " SELECT D.device_id,location FROM devices AS D, devices_perms AS P WHERE D.device_id = P.device_id AND P.user_id = ? GROUP BY location ORDER BY location " , array ( $_SESSION [ 'user_id' ]));
2011-03-31 17:19:54 +00:00
}
2011-05-12 20:16:03 +00:00
foreach ( $rows as $row )
2011-03-31 17:19:54 +00:00
{
# Only add it as a location if it wasn't overridden (and not already there)
if ( $row [ 'location' ] != '' && ! $ignore_dev_location [ $row [ 'device_id' ]])
{
if ( ! in_array ( $row [ 'location' ], $locations )) { $locations [] = $row [ 'location' ]; }
}
}
sort ( $locations );
return $locations ;
}
2011-09-23 10:16:31 +00:00
function foldersize ( $path )
{
$total_size = 0 ;
$files = scandir ( $path );
$total_files = 0 ;
2011-10-04 09:10:21 +00:00
foreach ( $files as $t )
2011-09-23 10:16:31 +00:00
{
if ( is_dir ( rtrim ( $path , '/' ) . '/' . $t ))
{
if ( $t <> " . " && $t <> " .. " )
{
$size = foldersize ( rtrim ( $path , '/' ) . '/' . $t );
$total_size += $size ;
}
} else {
$size = filesize ( rtrim ( $path , '/' ) . '/' . $t );
$total_size += $size ;
$total_files ++ ;
}
}
return array ( $total_size , $total_files );
}
2011-04-25 17:15:36 +00:00
?>