예제 #1
0
 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);
 }
예제 #2
0
/**
 * 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;
}
예제 #3
0
 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;
 }
예제 #4
0
 /**
  * 
  * @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;
 }