function web_TstatsShow() { $allclasses = zb_DirectionsGetAll(); $classtraff = array(); $traffCells = wf_TableCell(__('Traffic classes'), '20%'); $traffCells .= wf_TableCell(__('Traffic'), '20%'); $traffCells .= wf_TableCell(__('Traffic classes')); $traffRows = wf_TableRow($traffCells, 'row1'); if (!empty($allclasses)) { foreach ($allclasses as $eachclass) { $d_name = 'D' . $eachclass['rulenumber']; $u_name = 'U' . $eachclass['rulenumber']; $query_d = "SELECT SUM(`" . $d_name . "`) FROM `users`"; $query_u = "SELECT SUM(`" . $u_name . "`) FROM `users`"; $classdown = simple_query($query_d); $classdown = $classdown['SUM(`' . $d_name . '`)']; $classup = simple_query($query_u); $classup = $classup['SUM(`' . $u_name . '`)']; $classtraff[$eachclass['rulename']] = $classdown + $classup; } if (!empty($classtraff)) { $total = max($classtraff); foreach ($classtraff as $name => $count) { $traffCells = wf_TableCell($name); $traffCells .= wf_TableCell(stg_convert_size($count), '', '', 'sorttable_customkey="' . $count . '"'); $traffCells .= wf_TableCell(web_bar($count, $total), '', '', 'sorttable_customkey="' . $count . '"'); $traffRows .= wf_TableRow($traffCells, 'row3'); } } } $result = wf_TableBody($traffRows, '100%', 0, 'sortable'); show_window(__('Traffic report'), $result); }
/** * Generates user's traffic statistic module content * * @param str $login User's login, for whitch generate module content * @return str Module content */ function web_UserTraffStats($login) { $login = vf($login); $dirs = zb_DirectionsGetAll(); // Current month traffic stats: $cells = wf_TableCell(__('Traffic classes')); $cells .= wf_TableCell(__('Downloaded')); $cells .= wf_TableCell(__('Uploaded')); $cells .= wf_TableCell(__('Total')); $rows = wf_TableRow($cells, 'row1'); if (!empty($dirs)) { foreach ($dirs as $dir) { $query_downup = "SELECT `D" . $dir['rulenumber'] . "`,`U" . $dir['rulenumber'] . "` FROM `users` WHERE `login` = '" . $login . "'"; $downup = simple_query($query_downup); $cells = wf_TableCell($dir['rulename']); $cells .= wf_TableCell(stg_convert_size($downup['D' . $dir['rulenumber']]), '', '', 'sorttable_customkey="' . $downup['D' . $dir['rulenumber']] . '"'); $cells .= wf_TableCell(stg_convert_size($downup['U' . $dir['rulenumber']]), '', '', 'sorttable_customkey="' . $downup['U' . $dir['rulenumber']] . '"'); $cells .= wf_TableCell(stg_convert_size($downup['U' . $dir['rulenumber']] + $downup['D' . $dir['rulenumber']]), '', '', 'sorttable_customkey="' . ($downup['U' . $dir['rulenumber']] + $downup['D' . $dir['rulenumber']]) . '"'); $rows .= wf_TableRow($cells, 'row3'); } } $result = wf_tag('h3') . __('Current month traffic stats') . wf_tag('h3', true); $result .= wf_TableBody($rows, '100%', '0', 'sortable'); // End of current month traffic stats // Per-user graphs buttons: $ip = zb_UserGetIP($login); $bandwidthd = zb_BandwidthdGetUrl($ip); if (!empty($bandwidthd)) { $bwd = zb_BandwidthdGenLinks($ip); // Dayly graph button: $daybw = wf_img($bwd['dayr'], __('Downloaded')); if (!empty($bwd['days'])) { $daybw .= wf_delimiter() . wf_img($bwd['days'], __('Uploaded')); } // Weekly graph button: $weekbw = wf_img($bwd['weekr'], __('Downloaded')); if (!empty($bwd['weeks'])) { $weekbw .= wf_delimiter() . wf_img($bwd['weeks'], __('Uploaded')); } // Monthly graph button: $monthbw = wf_img($bwd['monthr'], __('Downloaded')); if (!empty($bwd['months'])) { $monthbw .= wf_delimiter() . wf_img($bwd['months'], __('Uploaded')); } // Yearly graph button: $yearbw = wf_img($bwd['yearr'], __('Downloaded')); if (!empty($bwd['years'])) { $yearbw .= wf_delimiter() . wf_img($bwd['years'], __('Uploaded')); } // Modal window sizes: if (!empty($bwd['days'])) { //bandwidthd $width = 920; $heidht = 640; $graphLegend = wf_tag('br') . wf_img('skins/bwdlegend.gif'); } else { //mikrotik $width = 530; $heidht = 230; $graphLegend = ''; } $result .= wf_delimiter(); $result .= wf_tag('h3') . __('Graphs') . wf_tag('h3', true); $bwcells = wf_TableCell(wf_modal(__('Graph by day'), __('Graph by day'), $daybw . $graphLegend, 'ubButton', $width, $heidht)); $bwcells .= wf_TableCell(wf_modal(__('Graph by week'), __('Graph by week'), $weekbw . $graphLegend, 'ubButton', $width, $heidht)); $bwcells .= wf_TableCell(wf_modal(__('Graph by month'), __('Graph by month'), $monthbw . $graphLegend, 'ubButton', $width, $heidht)); $bwcells .= wf_TableCell(wf_modal(__('Graph by year'), __('Graph by year'), $yearbw . $graphLegend, 'ubButton', $width, $heidht)); $bwrows = wf_TableRow($bwcells); // Adding graphs buttons to result: $result .= wf_TableBody($bwrows, '', '0', ''); $result .= wf_delimiter(); } else { $result .= __('No user graphs because no NAS with bandwidthd for his network'); } // End of per-user graphs buttons // Traffic statistic by previous months: $monthNames = months_array_wz(); $result .= wf_tag('h3') . __('Previous month traffic stats') . wf_tag('h3', true); $cells = wf_TableCell(__('Year')); $cells .= wf_TableCell(__('Month')); $cells .= wf_TableCell(__('Traffic classes')); $cells .= wf_TableCell(__('Downloaded')); $cells .= wf_TableCell(__('Uploaded')); $cells .= wf_TableCell(__('Total')); $cells .= wf_TableCell(__('Cash')); $rows = wf_TableRow($cells, 'row1'); if (!empty($dirs)) { foreach ($dirs as $dir) { $query_prev = "SELECT `D" . $dir['rulenumber'] . "`, `U" . $dir['rulenumber'] . "`, `month`, `year`, `cash` FROM `stat` WHERE `login` = '" . $login . "' ORDER BY `year`, `month`"; $prevmonths = simple_queryall($query_prev); if (!empty($prevmonths)) { foreach ($prevmonths as $prevmonth) { $cells = wf_TableCell($prevmonth['year']); $cells .= wf_TableCell(rcms_date_localise($monthNames[$prevmonth['month']])); $cells .= wf_TableCell($dir['rulename']); $cells .= wf_TableCell(stg_convert_size($prevmonth['D' . $dir['rulenumber']]), '', '', 'sorttable_customkey="' . $prevmonth['D' . $dir['rulenumber']] . '"'); $cells .= wf_TableCell(stg_convert_size($prevmonth['U' . $dir['rulenumber']]), '', '', 'sorttable_customkey="' . $prevmonth['U' . $dir['rulenumber']] . '"'); $cells .= wf_TableCell(stg_convert_size($prevmonth['U' . $dir['rulenumber']] + $prevmonth['D' . $dir['rulenumber']]), '', '', 'sorttable_customkey="' . ($prevmonth['U' . $dir['rulenumber']] + $prevmonth['D' . $dir['rulenumber']]) . '"'); $cells .= wf_TableCell(round($prevmonth['cash'], 2)); $rows .= wf_TableRow($cells, 'row3'); } } } } // End of traffic statistic by previous months // Generate table: $result .= wf_TableBody($rows, '100%', '0', 'sortable'); // Return result: return $result; }
function web_DSShowDayStats($login, $day, $page = 0) { $traffclasse_raw = zb_DirectionsGetAll(); $tc = array(); if (!empty($traffclasse_raw)) { foreach ($traffclasse_raw as $io => $eachtc) { $tc[$eachtc['rulenumber']] = $eachtc['rulename']; } } $login = mysql_real_escape_string($login); $page = vf($page); $day = vf($day); $daystats = ds_GetDayStats($login, $day, $page); $result = '<table width="100%" border="0" class="sortable">'; $result .= ' <tr class="row1"> <td>' . __('Session start') . '</td> <td>' . __('Session end') . '</td> <td>' . __('IP') . '</td> <td>' . __('Traffic classes') . '</td> <td>' . __('Downloaded') . '/' . __('Uploaded') . '</td> <td>' . __('Cash') . '</td> </tr> '; if (!empty($daystats)) { foreach ($daystats as $io => $eachtraff) { $result .= ' <tr class="row3"> <td>' . $eachtraff['startTime'] . '</td> <td>' . $eachtraff['endTime'] . '</td> <td><a href="http://whois.domaintools.com/' . $eachtraff['IP'] . '" target="_BLANK"> <img src="skins/icon_whois_small.jpg"></a> <a href="http://' . $eachtraff['IP'] . '">' . $eachtraff['IP'] . '</td> <td>' . @$tc[$eachtraff['dir']] . '</td> <td sorttable_customkey="' . ($eachtraff['down'] + $eachtraff['up']) . '">' . stg_convert_size($eachtraff['down']) . ' / ' . stg_convert_size($eachtraff['up']) . '</td> <td>' . round($eachtraff['cash'], 3) . '</td> </tr> '; } } $result .= '</table>'; return $result; }
/** * * @param type $login * @param type $day * @param int $page * @return string */ function web_DSShowDayStats($login, $day, $page = 0) { $traffclasse_raw = zb_DirectionsGetAll(); $tc = array(); if (!empty($traffclasse_raw)) { foreach ($traffclasse_raw as $io => $eachtc) { $tc[$eachtc['rulenumber']] = $eachtc['rulename']; } } $login = mysql_real_escape_string($login); $page = vf($page); $day = vf($day); $daystats = ds_GetDayStats($login, $day, $page); $result = ''; $cells = wf_TableCell(__('Session start')); $cells .= wf_TableCell(__('Session end')); $cells .= wf_TableCell(__('IP')); $cells .= wf_TableCell(__('Traffic classes')); $cells .= wf_TableCell(__('Downloaded') . '/' . __('Uploaded')); $cells .= wf_TableCell(__('Cash')); $rows = wf_TableRow($cells, 'row1'); if (!empty($daystats)) { foreach ($daystats as $io => $eachtraff) { $cells = wf_TableCell($eachtraff['startTime']); $cells .= wf_TableCell($eachtraff['endTime']); $whoisLink = wf_Link('?module=whois&ip=' . $eachtraff['IP'], wf_img('skins/icon_whois_small.png', __('Whois'))); $webLink = wf_Link('http://' . $eachtraff['IP'], $eachtraff['IP']); $cells .= wf_TableCell($whoisLink . ' ' . $webLink); $cells .= wf_TableCell(@$tc[$eachtraff['dir']]); $cells .= wf_TableCell(stg_convert_size($eachtraff['down']) . ' / ' . stg_convert_size($eachtraff['up']), '', '', 'sorttable_customkey="' . ($eachtraff['down'] + $eachtraff['up']) . '"'); $cells .= wf_TableCell(round($eachtraff['cash'], 3)); $rows .= wf_TableRow($cells, 'row3'); } } $result .= wf_TableBody($rows, '100%', 0, 'sortable'); return $result; }