diff options
Diffstat (limited to 'config/vnstat2/vnstat_php_frontend/index.php')
-rw-r--r-- | config/vnstat2/vnstat_php_frontend/index.php | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/config/vnstat2/vnstat_php_frontend/index.php b/config/vnstat2/vnstat_php_frontend/index.php new file mode 100644 index 00000000..70c0427f --- /dev/null +++ b/config/vnstat2/vnstat_php_frontend/index.php @@ -0,0 +1,196 @@ +<?php + // + // vnStat PHP frontend (c)2006-2010 Bjorge Dijkstra (bjd@jooz.net) + // + // This program 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. + // + // This program 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 this program; if not, write to the Free Software + // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + // + // + // see file COPYING or at http://www.gnu.org/licenses/gpl.html + // for more information. + // + require 'config.php'; + require 'localize.php'; + require 'vnstat.php'; + + validate_input(); + + require "./themes/$style/theme.php"; + + function write_side_bar() + { + global $iface, $page, $graph, $script, $style; + global $iface_list, $iface_title; + global $page_list, $page_title; + + $p = "&graph=$graph&style=$style"; + + print "<ul class=\"iface\">\n"; + foreach ($iface_list as $if) + { + print "<li class=\"iface\">"; + if (isset($iface_title[$if])) + { + print $iface_title[$if]; + } + else + { + print $if; + } + print "<ul class=\"page\">\n"; + foreach ($page_list as $pg) + { + print "<li class=\"page\"><a href=\"$script?if=$if$p&page=$pg\">".$page_title[$pg]."</a></li>\n"; + } + print "</ul></li>\n"; + + } + print "</ul>\n"; + } + + + function kbytes_to_string($kb) + { + $units = array('TB','GB','MB','KB'); + $scale = 1024*1024*1024; + $ui = 0; + + while (($kb < $scale) && ($scale > 1)) + { + $ui++; + $scale = $scale / 1024; + } + return sprintf("%0.2f %s", ($kb/$scale),$units[$ui]); + } + + function write_summary() + { + global $summary,$top,$day,$hour,$month; + + $trx = $summary['totalrx']*1024+$summary['totalrxk']; + $ttx = $summary['totaltx']*1024+$summary['totaltxk']; + + // + // build array for write_data_table + // + $sum[0]['act'] = 1; + $sum[0]['label'] = T('This hour'); + $sum[0]['rx'] = $hour[0]['rx']; + $sum[0]['tx'] = $hour[0]['tx']; + + $sum[1]['act'] = 1; + $sum[1]['label'] = T('This day'); + $sum[1]['rx'] = $day[0]['rx']; + $sum[1]['tx'] = $day[0]['tx']; + + $sum[2]['act'] = 1; + $sum[2]['label'] = T('This month'); + $sum[2]['rx'] = $month[0]['rx']; + $sum[2]['tx'] = $month[0]['tx']; + + $sum[3]['act'] = 1; + $sum[3]['label'] = T('All time'); + $sum[3]['rx'] = $trx; + $sum[3]['tx'] = $ttx; + + write_data_table(T('Summary'), $sum); + print "<br/>\n"; + write_data_table(T('Top 10 days'), $top); + } + + + function write_data_table($caption, $tab) + { + print "<table width=\"100%\" cellspacing=\"0\">\n"; + print "<caption>$caption</caption>\n"; + print "<tr>"; + print "<th class=\"label\" style=\"width:120px;\"> </th>"; + print "<th class=\"label\">".T('In')."</th>"; + print "<th class=\"label\">".T('Out')."</th>"; + print "<th class=\"label\">".T('Total')."</th>"; + print "</tr>\n"; + + for ($i=0; $i<count($tab); $i++) + { + if ($tab[$i]['act'] == 1) + { + $t = $tab[$i]['label']; + $rx = kbytes_to_string($tab[$i]['rx']); + $tx = kbytes_to_string($tab[$i]['tx']); + $total = kbytes_to_string($tab[$i]['rx']+$tab[$i]['tx']); + $id = ($i & 1) ? 'odd' : 'even'; + print "<tr>"; + print "<td class=\"label_$id\">$t</td>"; + print "<td class=\"numeric_$id\">$rx</td>"; + print "<td class=\"numeric_$id\">$tx</td>"; + print "<td class=\"numeric_$id\">$total</td>"; + print "</tr>\n"; + } + } + print "</table>\n"; + } + + get_vnstat_data(); + + // + // html start + // + header('Content-type: text/html; charset=utf-8'); + print '<?xml version="1.0"?>'; +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title>vnStat - PHP frontend</title> + <link rel="stylesheet" type="text/css" href="themes/<?php echo $style ?>/style.css"/> +</head> +<body> + +<div id="wrap"> + <div id="sidebar"><?php write_side_bar(); ?></div> + <div id="content"> + <div id="header"><?php print T('Traffic data for')." $iface_title[$iface] ($iface)";?></div> + <div id="main"> + <?php + $graph_params = "if=$iface&page=$page&style=$style"; + if ($page != 's') + if ($graph_format == 'svg') { + print "<object type=\"image/svg+xml\" width=\"692\" height=\"297\" data=\"graph_svg.php?$graph_params\"></object>\n"; + } else { + print "<img src=\"graph.php?$graph_params\" alt=\"graph\"/>\n"; + } + + if ($page == 's') + { + write_summary(); + } + else if ($page == 'h') + { + write_data_table(T('Last 24 hours'), $hour); + } + else if ($page == 'd') + { + write_data_table(T('Last 30 days'), $day); + } + else if ($page == 'm') + { + write_data_table(T('Last 12 months'), $month); + } + ?> + </div> + <div id="footer"><a href="http://www.sqweek.com/">vnStat PHP frontend</a> 1.5.1 - ©2006-2010 Bjorge Dijkstra (bjd _at_ jooz.net)</div> + </div> +</div> + +</body></html> |