<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/plugin-install.dtd"> <install version="1.5" type="plugin" group="content"> <name>Отчет по траффику</name> <author>Integral</author> <authorEmail>es@konstanta.ru</authorEmail> <authorUrl>authorUrl</authorUrl> <creationDate>2009</creationDate> <copyright>c</copyright> <license>license</license> <version>1.0</version> <description>Отчет по траффику</description> <files> <filename plugin="report_traffic">report_traffic.php</filename> </files> <params /> </install>
<?php //@ini_set("display_errors", "1"); //error_reporting(E_ALL); defined( '_JEXEC' ) or die( 'Restricted access' ); require_once("./urfa/URFAClient.php"); $mainframe->registerEvent( 'onPrepareContent', 'plgReport_TR_Modify' ); function plgReport_TR_Modify(&$row, &$params, $page=0){ $pos_report = strpos($row->text, '{traffic_period_report}'); if ($pos_report!==false) { $row->text = preg_replace('/{traffic_period_report}/', '', $row->text); include ("./urfa/URFAConfig.php"); $db_connect=mysql_connect($db_urfa_host,$db_urfa_user,$db_urfa_password) or die ("Connect failed"); mysql_select_db($db_urfa_base,$db_connect); //************************************************************************************************************************ // Функция выбора даты @$btn=$_POST['btn']; //echo $btn; function addopt ($str, $val, $select) { if ($select) { $ret='<OPTION value='.$val.' selected>'.$str.'</OPTION>'; } else { $ret='<OPTION value='.$val.'>'.$str.'</OPTION>'; } return $ret; } //$btn=$_POST['btn']; if (isset($btn)) { $d1=$_POST['daystart']; $d2=$_POST['dayend']; $m1=$_POST['monthstart']; $m2=$_POST['monthend']; $y1=$_POST['yearstart']; $y2=$_POST['yearend']; $torder=$_POST['torder']; // $sorttype=$_POST['sorttype']; } else { $y1=$y2=date("Y"); $m1=date("m"); $d1=mktime(0, 0, 0, $m1, 1, $y1); $d1=date("d",$d1); $m2=$m1; $d2=date("d"); $torder="1"; $sorttype="asc"; } // Выбор даты начала $form_select_sdate = ""; $form_select_sdate = " <form method=POST><SELECT class=text_i name=day1 ONCHANGE=\"form.daystart.value=options[this.selectedIndex].value\">"; $x=1; while ($x<32) { if ($x<10) { $y='0'; } else { $y=''; } if ($x==$d1) { $form_select_sdate .= addopt ($y.$x,$x,1); } else { $form_select_sdate .= addopt ($y.$x,$x,0); } $x++; } $form_select_sdate .= '</SELECT> <SELECT class=text_i name=month1 ONCHANGE="form.monthstart.value=options[this.selectedIndex].value">'; if ($m1==1) {$form_select_sdate .= addopt ('январь',1,1);} else {$form_select_sdate .= addopt ('январь',1,0);} if ($m1==2) {$form_select_sdate .= addopt ('февраль',2,1);} else {$form_select_sdate .= addopt ('февраль',2,0);} if ($m1==3) {$form_select_sdate .= addopt ('март',3,1);} else {$form_select_sdate .= addopt ('март',3,0);} if ($m1==4) {$form_select_sdate .= addopt ('апрель',4,1);} else {$form_select_sdate .= addopt ('апрель',4,0);} if ($m1==5) {$form_select_sdate .= addopt ('май',5,1);} else {$form_select_sdate .= addopt ('май',5,0);} if ($m1==6) {$form_select_sdate .= addopt ('июнь',6,1);} else {$form_select_sdate .= addopt ('июнь',6,0);} if ($m1==7) {$form_select_sdate .= addopt ('июль',7,1);} else {$form_select_sdate .= addopt ('июль',7,0);} if ($m1==8) {$form_select_sdate .= addopt ('август',8,1);} else {$form_select_sdate .= addopt ('август',8,0);} if ($m1==9) {$form_select_sdate .= addopt ('сентябрь',9,1);} else {$form_select_sdate .= addopt ('сентябрь',9,0);} if ($m1==10) {$form_select_sdate .= addopt ('октябрь',10,1);} else {$form_select_sdate .= addopt ('октябрь',10,0);} if ($m1==11) {$form_select_sdate .= addopt ('ноябрь',11,1);} else {$form_select_sdate .= addopt ('ноябрь',11,0);} if ($m1==12) {$form_select_sdate .= addopt ('декабрь',12,1);} else {$form_select_sdate .= addopt ('декабрь',12,0);} $form_select_sdate .= '</SELECT> <SELECT class=text_i name=year1 ONCHANGE="form.yearstart.value=options[this.selectedIndex].value">'; $year = date("Y"); if ($y1== $year) {$form_select_sdate .= addopt ($year,$year,1);} else {$form_select_sdate .= addopt ($year,$year,0);} if ($y1== $year-1 ) {$form_select_sdate .= addopt ($year-1,$year-1,1);} else {$form_select_sdate .= addopt ($year-1,$year-1,0);} $form_select_sdate .= '</SELECT> - дата начала<br>'; /// Конец выбора даты начала // Выбор даты окончания $form_select_edate = ""; //выбор дня недели $form_select_edate .= '<SELECT class=text_i name=day2 ONCHANGE="form.dayend.value=options[this.selectedIndex].value">'; $x=1; while ($x<32) { if ($x<10) { $y='0'; } else { $y=''; } if ($x==$d2) { $form_select_edate .= addopt ($y.$x,$x,1); } else { $form_select_edate .= addopt ($y.$x,$x,0); } $x++; } $form_select_edate .= '</SELECT> <SELECT class=text_i name=month2 ONCHANGE="form.monthend.value=options[this.selectedIndex].value">'; if ($m2==1) {$form_select_edate .= addopt ('январь',1,1);} else {$form_select_edate .= addopt ('январь',1,0);} if ($m2==2) {$form_select_edate .= addopt ('февраль',2,1);} else {$form_select_edate .= addopt ('февраль',2,0);} if ($m2==3) {$form_select_edate .= addopt ('март',3,1);} else {$form_select_edate .= addopt ('март',3,0);} if ($m2==4) {$form_select_edate .= addopt ('апрель',4,1);} else {$form_select_edate .= addopt ('апрель',4,0);} if ($m2==5) {$form_select_edate .= addopt ('май',5,1);} else {$form_select_edate .= addopt ('май',5,0);} if ($m2==6) {$form_select_edate .= addopt ('июнь',6,1);} else {$form_select_edate .= addopt ('июнь',6,0);} if ($m2==7) {$form_select_edate .= addopt ('июль',7,1);} else {$form_select_edate .= addopt ('июль',7,0);} if ($m2==8) {$form_select_edate .= addopt ('август',8,1);} else {$form_select_edate .= addopt ('август',8,0);} if ($m2==9) {$form_select_edate .= addopt ('сентябрь',9,1);} else {$form_select_edate .= addopt ('сентябрь',9,0);} if ($m2==10) {$form_select_edate .= addopt ('октябрь',10,1);} else {$form_select_edate .= addopt ('октябрь',10,0);} if ($m2==11) {$form_select_edate .= addopt ('ноябрь',11,1);} else {$form_select_edate .= addopt ('ноябрь',11,0);} if ($m2==12) {$form_select_edate .= addopt ('декабрь',12,1);} else {$form_select_edate .= addopt ('декабрь',12,0);} $form_select_edate .= '</SELECT> <SELECT name=year2 ONCHANGE="form.yearend.value=options[this.selectedIndex].value">'; if ($y2== $year) {$form_select_edate .= addopt ($year,$year,1);} else {$form_select_edate .= addopt ($year,$year,0);} if ($y2== $year-1) {$form_select_edate .= addopt ($year-1,$year-1,1);} else {$form_select_edate .= addopt ($year-1,$year-1,0);} $form_select_edate .= '</SELECT> - дата окончания<br><br> <input type=hidden value="'.$d1.'" name=daystart> <input type=hidden value="'.$m1.'" name=monthstart> <input type=hidden value="'.$y1.'" name=yearstart> <input type=hidden value="'.$d2.'" name=dayend> <input type=hidden value="'.$m2.'" name=monthend> <input type=hidden value="'.$y2.'" name=yearend> <input type=hidden value="1" name=btn>'; $form_select_edate .= 'Группировка '; $form_select_edate .= '<SELECT class=text_i name=torder ONCHANGE="form.trafforder.value=options[this.selectedIndex].value">'; if ($torder==1) {$form_select_edate .= addopt ('общая',1,1);} else {$form_select_edate .= addopt ('общая',1,0);} if ($torder==2) {$form_select_edate .= addopt ('по дням',2,1);} else {$form_select_edate .= addopt ('по дням',2,0);} if ($torder==3) {$form_select_edate .= addopt ('по часам',3,1);} else {$form_select_edate .= addopt ('по часам',3,0);} $form_select_edate .= '</SELECT>'; $form_select_edate .= '<input type=submit value="Показать"> </form>'; // Конец выбора даты окончания $data_1=mktime(0, 0, 0, $m1, $d1, $y1); $data_2=mktime(23, 59, 59, $m2, $d2, $y2); $raznica=$data_2-$data_1; // Конец - Функция выбора даты //************************************************************************************************************************ // Запросы к базе на выбор траффика $result_sql = ""; if ($btn == "1") { if ($torder == "1") { $q = ' SELECT discount_transactions_iptraffic_all.account_id, Sum(discount_transactions_iptraffic_all.bytes) AS bytes, Sum(discount_transactions_iptraffic_all.discount) AS discount, t_class.t_class_name, discount_transactions_iptraffic_all.base_cost FROM discount_transactions_iptraffic_all LEFT OUTER JOIN t_class ON (t_class.id = discount_transactions_iptraffic_all.t_class) WHERE discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND discount_transactions_iptraffic_all.discount_date <= '.$data_2.' GROUP BY discount_transactions_iptraffic_all.account_id, t_class.t_class_name, discount_transactions_iptraffic_all.base_cost '; //echo $q1; $result=mysql_query ($q); $result_sql .= "<table width=500 border=1 bordercolor=#5283CF cellspacing=0 cellpadding=5> <tr> <td align=center>Дата начала</td> <td align=center>Дата окончания</td> <td align=center>Тип траффика</td> <td align=center>Цена за 1Мб</td> <td align=center>Траффик(Мб)</td> <td align=center>Сумма</td> </tr>"; while ($row1 = mysql_fetch_assoc($result)) { if (isset($row1['bytes'])) { $traff = round($row1['bytes']/1024/1024, 3); $traff = str_replace("." , "," , $traff); }else { $traff = " "; } $summa = round($row1['discount'], 2); $startdate = $d1."/".$m1."/".$y1; $enddate = $d2."/".$m2."/".$y2; if (!isset($traff)) { $traff = 0; } $result_sql .= " <tr> <td align=center>".$startdate."</td> <td align=center>".$enddate."</td> <td align=right>".$row1['t_class_name']."</td> <td align=right>".$row1['base_cost']."</td> <td align=right>".$traff."</td> <td align=right>".$summa."</td> </tr>"; } $result_sql .= "</table>"; }elseif ($torder == "2") //******************************************************** { if ($raznica <= "2678400" ) { $all_summa=0; $q = ' SELECT discount_transactions_iptraffic_all.account_id AS aid, Sum(discount_transactions_iptraffic_all.bytes) AS bytes, discount_transactions_iptraffic_all.discount_date_day AS day, discount_transactions_iptraffic_all.base_cost, SUM(discount_transactions_iptraffic_all.discount) AS discount, t_class.t_class_name FROM discount_transactions_iptraffic_all LEFT OUTER JOIN t_class ON (t_class.id = discount_transactions_iptraffic_all.t_class) WHERE discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND discount_transactions_iptraffic_all.discount_date <= '.$data_2.' GROUP BY discount_transactions_iptraffic_all.account_id, discount_transactions_iptraffic_all.discount_date_day, discount_transactions_iptraffic_all.base_cost, t_class.t_class_name ORDER BY day ASC'; $result=mysql_query ($q); $result_sql .= "<table width=500 border=1 bordercolor=#5283CF cellspacing=0 cellpadding=2> <tr> <td align=center>Дата</a></td> <td align=center>Тип траффика</td> <td align=center>Цена за 1Мб</td> <td align=center>Траффик(Мб)</a></td> <td align=center>Сумма</td> </tr>"; while ($row1 = mysql_fetch_assoc($result)) { if (isset($row1['bytes'])) { $traff = round($row1['bytes']/1024/1024, 4); $traff = str_replace("." , "," , $traff); $all_summa = $all_summa + $row1['discount']; }else { $traff = " "; } $data=date ("d/m/Y", $row1['day']); $summa = round($row1['discount'], 2); $result_sql .= "<tr> <td align=center>".$data."</td> <td>".$row1['t_class_name']."</td> <td align=right>".$row1['base_cost']."</td> <td align=right>".$traff."</td> <td align=right>".$summa."</td> </tr>"; } $all_summa = round($all_summa, 2); $result_sql .= "<tr> <td colspan=3><b>Итого</b></td> <td align=right><b> </b></td> <td align=right><b>".$all_summa."</b></td> </tr>"; $result_sql .= "</table>"; }else{ $result_sql = "Выберите период с разницой не более 1 месяца."; } //******************************************************** }elseif ($torder == "3") { // Сортировка по часам *********************************** if ($raznica <= "86400" ) { $all_summa=0; $q = 'SELECT discount_transactions_iptraffic_all.account_id AS aid, Sum(discount_transactions_iptraffic_all.bytes) AS bytes, discount_transactions_iptraffic_all.discount_date_hour AS hours, t_class.t_class_name, discount_transactions_iptraffic_all.base_cost, Sum(discount_transactions_iptraffic_all.discount) AS discount FROM discount_transactions_iptraffic_all LEFT OUTER JOIN t_class on t_class.id=discount_transactions_iptraffic_all.t_class WHERE discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND t_class.is_deleted = 0 AND discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND discount_transactions_iptraffic_all.discount_date <= '.$data_2.' GROUP BY discount_transactions_iptraffic_all.discount_date_hour, discount_transactions_iptraffic_all.account_id, t_class.t_class_name, discount_transactions_iptraffic_all.base_cost ORDER BY hours ASC'; $result=mysql_query ($q); $result_sql .="<table width=500 border=1 bordercolor=#5283CF cellspacing=0 cellpadding=2> <tr> <td align=center>Дата</a></td> <td align=center>Тип трафика</a></td> <td align=center>Цена за 1Мб</a></td> <td align=center>Трафик(Мб)</a></td> <td align=center>Сумма</td> </tr>"; while ($row1 = mysql_fetch_assoc($result)) { if (isset($row1['bytes'])) { $traff = round($row1['bytes']/1024/1024, 4); $traff = str_replace("." , "," , $traff); $all_summa = $all_summa + $row1['discount']; }else { $traff = " "; } $summa = round($row1['discount'], 2); $data=date("d/m/Y - H:i:s", $row1['hours']); $result_sql .= "<tr> <td align=center>".$data."</td> <td align=center>".$row1['t_class_name']."</td> <td align=right>".$row1['base_cost']."</td> <td align=right>".$traff."</td> <td align=right>".$summa."</td> </tr>"; } $all_summa = round($all_summa, 2); $result_sql .= "<tr> <td colspan=3><b>Итого</b></td> <td align=right><b> </b></td> <td align=right><b>".$all_summa."</b></td> </tr>"; $result_sql .= "</table>"; }else{ $result_sql = "Выберите период с разницой не более одних суток "; } //******************************************************** }elseif ($torder == "4") { // Сортировка по месяцам echo "По месяцам"; } } //*********************************************************************************************************************** $row->text = preg_replace('/{traffic_period_form}/', $form_select_sdate.$form_select_edate, $row->text); $row->text = preg_replace('/{traffic_period_report_table}/', $result_sql, $row->text); } } ?>
{traffic_period_report} {traffic_period_form} {traffic_period_report_table}