root/trunk/gui/client/domain_statistics.php

Revision 1327, 9.3 kB (checked in by rats, 4 months ago)

* Fixed: --scan-knownbad-files and --check-deleted are no longer supported by rkhunter
* Fixed #1471: chkrootkit should be in lenny / hardy
* Updated Chinese (simplified)
* Updated German
* Fixed #1475: typo on installation (ispcp-setup)
* Fixed: default user for rkhunter.log

Line 
1 <?php
2 /**
3  * ispCP ω (OMEGA) a Virtual Hosting Control System
4  *
5  * @copyright     2001-2006 by moleSoftware GmbH
6  * @copyright     2006-2008 by ispCP | http://isp-control.net
7  * @version     SVN: $Id$
8  * @link         http://isp-control.net
9  * @author         ispCP Team
10  *
11  * @license
12  *   This program is free software; you can redistribute it and/or modify it under
13  *   the terms of the MPL General Public License as published by the Free Software
14  *   Foundation; either version 1.1 of the License, or (at your option) any later
15  *   version.
16  *   You should have received a copy of the MPL Mozilla Public License along with
17  *   this program; if not, write to the Open Source Initiative (OSI)
18  *   http://opensource.org | osi@opensource.org
19  */
20
21 require '../include/ispcp-lib.php';
22
23 check_login(__FILE__);
24
25 $tpl = new pTemplate();
26 $tpl->define_dynamic('page', Config::get('CLIENT_TEMPLATE_PATH') . '/domain_statistics.tpl');
27 $tpl->define_dynamic('page_message', 'page');
28 $tpl->define_dynamic('logged_from', 'page');
29 $tpl->define_dynamic('month_item', 'page');
30 $tpl->define_dynamic('year_item', 'page');
31 $tpl->define_dynamic('traff_list', 'page');
32 $tpl->define_dynamic('traff_item', 'traff_list');
33
34 // page functions.
35
36 function gen_page_date(&$tpl, $month, $year) {
37     for ($i = 1; $i <= 12; $i++) {
38         $tpl->assign(array('MONTH_SELECTED' => ($i == $month) ? 'selected' : '',
39                 'MONTH' => $i));
40         $tpl->parse('MONTH_ITEM', '.month_item');
41     }
42
43     for ($i = $year - 1; $i <= $year + 1; $i++) {
44         $tpl->assign(array('YEAR_SELECTED' => ($i == $year) ? 'selected' : '',
45                 'YEAR' => $i));
46         $tpl->parse('YEAR_ITEM', '.year_item');
47     }
48 }
49
50 function gen_page_post_data(&$tpl, $current_month, $current_year) {
51     if (isset($_POST['uaction']) && $_POST['uaction'] === 'show_traff') {
52         $current_month = $_POST['month'];
53         $current_year = $_POST['year'];
54     }
55
56     gen_page_date($tpl, $current_month, $current_year);
57     return array($current_month, $current_year);
58 }
59
60 function get_domain_trafic($from, $to, $domain_id) {
61     $sql = Database::getInstance();
62
63     $query = <<<SQL_QUERY
64         select
65             IFNULL(sum(dtraff_web), 0) as web_dr,
66             IFNULL(sum(dtraff_ftp), 0) as ftp_dr,
67             IFNULL(sum(dtraff_mail), 0) as mail_dr,
68             IFNULL(sum(dtraff_pop), 0) as pop_dr
69         from
70             domain_traffic
71         where
72             domain_id = ?
73           and
74             dtraff_time >= ?
75           and
76             dtraff_time <= ?
77 SQL_QUERY;
78
79     $rs = exec_query($sql, $query, array($domain_id, $from, $to));
80
81     if ($rs->RecordCount() == 0) {
82         return array(0, 0, 0, 0);
83     } else {
84         return
85         array($rs->fields['web_dr'], $rs->fields['ftp_dr'],
86             $rs->fields['pop_dr'], $rs->fields['mail_dr']);
87     }
88 }
89
90 function gen_dmn_traff_list(&$tpl, &$sql, $month, $year, $user_id) {
91     global $web_trf, $ftp_trf, $smtp_trf, $pop_trf,
92     $sum_web, $sum_ftp, $sum_mail, $sum_pop;
93
94     $domain_admin_id = $_SESSION['user_id'];
95     $query = <<<SQL_QUERY
96         select
97             domain_id
98         from
99             domain
100         where
101             domain_admin_id = ?
102 SQL_QUERY;
103
104     $rs = exec_query($sql, $query, array($domain_admin_id));
105     $domain_id = $rs->fields('domain_id');
106     $fdofmnth = mktime(0, 0, 0, $month, 1, $year);
107     $ldofmnth = mktime(1, 0, 0, $month + 1, 0, $year);
108
109     if ($month == date('m') && $year == date('Y')) {
110         $curday = date('j');
111     } else {
112         $tmp = mktime(1, 0, 0, $month + 1, 0, $year);
113         $curday = date('j', $tmp);
114     }
115
116     $curtimestamp = time();
117     $firsttimestamp = mktime(0, 0, 0, $month, 1, $year);
118     $all[0] = 0;
119     $all[1] = 0;
120     $all[2] = 0;
121     $all[3] = 0;
122     $all[4] = 0;
123     $all[5] = 0;
124     $all[6] = 0;
125     $all[7] = 0;
126     $counter = 0;
127
128     for ($i = 1; $i <= $curday; $i++) {
129         $ftm = mktime(0, 0, 0, $month, $i, $year);
130         $ltm = mktime(23, 59, 59, $month, $i, $year);
131         $query = <<<SQL_QUERY
132         select
133             dtraff_web,dtraff_ftp,dtraff_mail,dtraff_pop,dtraff_time
134         from
135             domain_traffic
136         where
137             domain_id = ?
138           and
139             dtraff_time >= ?
140           and
141             dtraff_time <= ?
142 SQL_QUERY;
143
144         $rs = exec_query($sql, $query, array($domain_id, $ftm, $ltm));
145
146         $has_data = false;
147         list($web_trf,
148             $ftp_trf,
149             $pop_trf,
150             $smtp_trf) = get_domain_trafic($ftm, $ltm, $domain_id);
151
152         if ($counter % 2 == 0) {
153             $tpl->assign('ITEM_CLASS', 'content');
154         } else {
155             $tpl->assign('ITEM_CLASS', 'content2');
156         }
157         $sum_web += $web_trf;
158         $sum_ftp += $ftp_trf;
159         $sum_mail += $smtp_trf;
160         $sum_pop += $pop_trf;
161
162         $date_formt = Config::get('DATE_FORMAT');
163         $tpl->assign(array('DATE' => date($date_formt, strtotime($year . "-" . $month . "-" . $i)),
164                 'WEB_TRAFFIC' => sizeit($web_trf),
165                 'FTP_TRAFFIC' => sizeit($ftp_trf),
166                 'SMTP_TRAFFIC' => sizeit($smtp_trf),
167                 'POP3_TRAFFIC' => sizeit($pop_trf),
168                 'ALL_TRAFFIC' => sizeit($web_trf + $ftp_trf + $smtp_trf + $pop_trf),
169                 'WEB_TRAFF' => sizeit($web_trf),
170                 'FTP_TRAFF' => sizeit($ftp_trf),
171                 'SMTP_TRAFF' => sizeit($smtp_trf),
172                 'POP_TRAFF' => sizeit($pop_trf),
173                 'SUM_TRAFF' => sizeit($web_trf + $ftp_trf + $smtp_trf + $pop_trf),
174                 'CONTENT' => ($i % 2 == 0) ? 'content' : 'content2'));
175         $tpl->assign(array('MONTH' => $month,
176                 'YEAR' => $year,
177                 'DOMAIN_ID' => $domain_id,
178                 'WEB_ALL' => sizeit($sum_web),
179                 'FTP_ALL' => sizeit($sum_ftp),
180                 'SMTP_ALL' => sizeit($sum_mail),
181                 'POP_ALL' => sizeit($sum_pop),
182                 'SUM_ALL' => sizeit($sum_web + $sum_ftp + $sum_mail + $sum_pop)));
183         $tpl->parse('TRAFF_ITEM', '.traff_item');
184         $counter ++;
185     }
186
187     /*
188     $start_date = mktime(0,0,0, $month, 1, $year);
189     $end_date = mktime(0,0,0, $month + 1, 1, $year);
190     $dmn_id = get_user_domain_id($sql, $user_id);
191     $query = <<<SQL_QUERY
192         select
193             dtraff_time as traff_date,
194             dtraff_web as web_traff,
195             dtraff_ftp as ftp_traff,
196             dtraff_mail as smtp_traff,
197             dtraff_pop as pop_traff,
198             (dtraff_web + dtraff_ftp + dtraff_mail + dtraff_pop) as sum_traff
199         from
200             domain_traffic
201         where
202             domain_id = '$dmn_id'
203           and
204               dtraff_time >= '$start_date'
205           and
206             dtraff_time < '$end_date'
207         order by
208             dtraff_time
209 SQL_QUERY;
210
211     $rs = execute_query($sql, $query);
212
213     if ($rs -> RecordCount() == 0) {
214
215         $tpl -> assign('TRAFF_LIST', '');
216
217         set_page_message(tr('Traffic accounting for the selected month is missing!'));
218
219     } else {
220
221         $web_all = 0; $ftp_all = 0; $smtp_all = 0; $pop_all = 0; $sum_all = 0; $i = 1;
222
223         while (!$rs -> EOF) {
224
225             $tpl -> assign(
226                             array(
227                                     'DATE' => date("d.m.Y, G:i", $rs -> fields['traff_date']),
228                                     'WEB_TRAFF' => sizeit($rs -> fields['web_traff']),
229                                     'FTP_TRAFF' => sizeit($rs -> fields['ftp_traff']),
230                                     'SMTP_TRAFF' => sizeit($rs -> fields['smtp_traff']),
231                                     'POP_TRAFF' => sizeit($rs -> fields['pop_traff']),
232                                     'SUM_TRAFF' => sizeit($rs -> fields['sum_traff']),
233                                     'CONTENT' => ($i % 2 == 0) ? 'content3' : 'content2'
234
235                                  )
236                           );
237
238             $tpl -> parse('TRAFF_ITEM', '.traff_item');
239
240             $web_all += $rs -> fields['web_traff'];
241
242             $ftp_all += $rs -> fields['ftp_traff'];
243
244             $smtp_all += $rs -> fields['smtp_traff'];
245
246             $pop_all += $rs -> fields['pop_traff'];
247
248             $sum_all += $rs -> fields['sum_traff'];
249
250             $rs -> MoveNext(); $i++;
251
252         }
253
254         $tpl -> assign(
255                         array(
256                                 'WEB_ALL' => sizeit($web_all),
257                                 'FTP_ALL' => sizeit($ftp_all),
258                                 'SMTP_ALL' => sizeit($smtp_all),
259                                 'POP_ALL' => sizeit($pop_all),
260                                 'SUM_ALL' => sizeit($sum_all)
261                              )
262                       );
263
264     }
265 */
266
267 }
268
269 // common page data.
270
271 $theme_color = Config::get('USER_INITIAL_THEME');
272
273 $tpl->assign(array('TR_CLIENT_DOMAIN_STATISTICS_PAGE_TITLE' => tr('ispCP - Client/Domain Statistics'),
274         'THEME_COLOR_PATH' => "../themes/$theme_color",
275         'THEME_CHARSET' => tr('encoding'),
276         'ISP_LOGO' => get_logo($_SESSION['user_id'])));
277
278 // dynamic page data.
279
280 $current_month = date("m", time());
281 $current_year = date("Y", time());
282 list ($current_month, $current_year) = gen_page_post_data($tpl, $current_month, $current_year);
283 gen_dmn_traff_list($tpl, $sql, $current_month, $current_year, $_SESSION['user_id']);
284
285 // static page messages.
286
287 gen_client_mainmenu($tpl, Config::get('CLIENT_TEMPLATE_PATH') . '/main_menu_statistics.tpl');
288 gen_client_menu($tpl, Config::get('CLIENT_TEMPLATE_PATH') . '/menu_statistics.tpl');
289
290 gen_logged_from($tpl);
291
292 check_permissions($tpl);
293
294 $tpl->assign(array('TR_DOMAIN_STATISTICS' => tr('Domain statistics'),
295         'DOMAIN_URL' => 'http://' . $_SESSION['user_logged'] . '/stats/',
296         'TR_AWSTATS' => tr('Web Stats'),
297         'TR_MONTH' => tr('Month'),
298         'TR_YEAR' => tr('Year'),
299         'TR_SHOW' => tr('Show'),
300         'TR_DATE' => tr('Date'),
301         'TR_WEB_TRAFF' => tr('WEB'),
302         'TR_FTP_TRAFF' => tr('FTP'),
303         'TR_SMTP_TRAFF' => tr('SMTP'),
304         'TR_POP_TRAFF' => tr('POP/IMAP'),
305         'TR_SUM' => tr('Sum'),
306         'TR_ALL' => tr('Total')));
307
308 gen_page_message($tpl);
309 $tpl->parse('PAGE', 'page');
310 $tpl->prnt();
311
312 if (Config::get('DUMP_GUI_DEBUG'))
313     dump_gui_debug();
314
315 unset_messages();
316 ?>
317
Note: See TracBrowser for help on using the browser.