$countPage) {
$page = 1;
}
$strPage = 'Страниц:';
for ($i = 0; $i < $countPage; $i++) {
$temp = $i + 1;
if ($page != $temp) {
$strPage .= ' ' . $temp . '';
} else {
$strPage .= ' [' . $page . ']';
}
}
/* определим отображаемый период */
$dateArray = array_slice($dateArray, ($page - 1) * 12, 12);
/* Запрос возвращает количество прошедшего трафика за заданный период. */
$patterns = array("/%BEGIN_DATE%/", "/%END_DATE%/");
$query = '
select
ifnull(out.psizeSum,0) as outTraf,
ifnull(in.psizeSum,0) as inTraf
from
(
select sum(psize) as psizeSum
from traffic
where (srcPort = 0) &&
(date >= "%BEGIN_DATE%" and date < "%END_DATE%")
) as `out` join
(
select sum(psize) as psizeSum
from traffic
where (dstPort = 0) &&
(date >= "%BEGIN_DATE%" and date < "%END_DATE%")
) as `in`';
$dataSumArray = array();
$imgDataOut = array();
$imgDataIn = array();
foreach ($dateArray as $beginDate) {
list($year, $month, $day) = split('-',$beginDate);
$endDate = date("Y-m-d", mktime(0, 0, 0, $month + 1, $day, $year));
$replacements = array($beginDate, $endDate);
$queryTemp = preg_replace($patterns, $replacements, $query);
$result = my_mysql_query($queryTemp);
$line = mysql_fetch_assoc($result);
$dataSumArray[$beginDate] = $line;
$imgDataOut[] = $line['outTraf'];
$imgDataIn[] = $line['inTraf'];
mysql_free_result($result);
}
/* сформируем запрос графика содержащий статистику */
function get_short_month($month)
{
global $MONTH_NAMES_IMG;
list($y, $m) = explode('-', $month);
return urlencode(sprintf("%s %02d",
$MONTH_NAMES_IMG[(int)$m], $y - 2000));
}
$imgDataOut = array_reverse($imgDataOut);
$imgDataIn = array_reverse($imgDataIn);
$x_label = array_map('get_short_month', array_reverse($dateArray));
$jpImg = './graph.php?graph=pergraph&leg=' . urlencode('Sent') .
'|' . urlencode('Received') . '&xl=' . implode('|', $x_label) .
'&data=' . implode(',', $imgDataOut) . '|' . implode(',', $imgDataIn);
/**
* Отобразим страницу.
*/
list($year, $month, $day) = split('-', $dateArray[count($dateArray) - 1]);
$arrBeginDate = array($year, $month, $day);
list($year, $month, $day) = split('-', $dateArray[0]);
$arrEndDate = array($year, $month, $day);
$title = 'Статистика за ';
if (count($dateArray) > 1) {
$title .= make_month($arrBeginDate[0], $arrBeginDate[1]) . ' - ' .
make_month($arrEndDate[0], $arrEndDate[1]);
} else {
$title .= make_month($arrEndDate[0], $arrEndDate[1]);
}
print_html_head($title);
/* отобразим название продукта */
print_head();
/* отобразим график содержащий статистику */
echo '
' . "\n";
echo '';
print_login();
echo " |
\n";
echo 'Статистика за ';
if (count($dateArray) > 1) {
echo make_month($arrBeginDate[0], $arrBeginDate[1]) . ' - ' .
make_month($arrEndDate[0], $arrEndDate[1]);
} else {
echo make_month($arrEndDate[0], $arrEndDate[1]);
}
echo " |
\n";
echo " |
\n";
echo '';
echo ' ';
echo ' |
' . "\n";
echo '
' . "\n";
print_full_line();
/* отобразим таблицу содержащую статистику */
echo '' . "\n";
if (SESS_TYPE === 'admin') {
echo '' .
"Статистика по месяцам |
\n";
}
echo '' . $strPage . ' |
' . "\n";
echo '';
print_data("Период", "head0", "th");
print_data("Исходящий трафик", "head0", "th");
print_data("Входящий трафик", "head0", "th");
echo '
' . "\n";
foreach ($dateArray as $dateTemp) {
list($year, $month) = split('-',$dateTemp);
$period = mktime(0, 0, 0, $month, 1, $year);
$link = "" .
make_month($year, $month) . '';
echo '';
print_data($link, "data1");
print_data(val_trun($dataSumArray[$dateTemp]['outTraf']), "data2");
print_data(val_trun($dataSumArray[$dateTemp]['inTraf']), "data2");
echo '
' . "\n";
}
echo '
' . "\n";
print_full_line();
/* отобразим информацию о программе */
print_info($queryCount);
print_html_tail();
?>