forked from srajbr/OpenInviter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstats.php
115 lines (112 loc) · 5.86 KB
/
stats.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
/*
* Created on Jul 16, 2009
*
* Owner: George
*/
session_start();
include('openinviter.php');
$oi=new OpenInviter();
$ers=array();
if (!$oi->settings['stats']) { echo 'Stats not enabled.';exit; }
$doLogin=false;
$hash=md5($oi->settings['stats_user'].$oi->settings['stats_password']);
if (empty($_SESSION['_oi_isLogged'])) $doLogin=true;
elseif($_SESSION['_oi_isLogged']!=$hash) $doLogin=true;
if ($doLogin)
{
if ($_SERVER['REQUEST_METHOD']=='POST')
{
if (empty($_POST['user_box'])) $ers['user']="User box is empty!";
elseif($_POST['user_box']!=$oi->settings['stats_user']) $ers['user']="Invalid user/password!";
if (empty($_POST['password_box'])) $ers['password']="Password box is empty!";
elseif($_POST['password_box']!=$oi->settings['stats_password']) $ers['password']="Invalid user/password!";
if (count($ers)==0) { $_SESSION['_oi_isLogged']=$hash;header("Location: stats.php");exit; }
else echo ers($ers);
}
else { $_POST['user_box']=''; $_POST['password_box']=''; }
echo showStyles();
echo "<body><table align='center'><tr><td align='center'><form method='POST' action='?'>
<table>
<tr class='tableHeader'><td colspan='2' align='center'>Login</td></tr>
<tr class='tableOddRow'><td><label>User:</label></td><td><input type='text' name='user_box' value='{$_POST['user_box']}'></td></tr>
<tr class='tableEvenRow'><td><label>Password:</label></td><td><input type='password' name='password_box' value=''></td></tr>
<tr class='tableFooter'><td colspan='2'><input type='submit' value='Login'></td></tr>
</table>
</form></td><tr><table>
";
exit;
}
echo showStyles();
if (isset($_GET['op']))
if ($_GET['op']=='reset')
{
$oi->statsQuery("DELETE FROM oi_imports");
$oi->statsQuery("DELETE FROM oi_messages");
}
$plugins=$oi->getPlugins();
$import_stats=array();$messages_stats=array();
$res=$oi->statsQuery("SELECT COUNT(id) AS total_imports,SUM(contacts) AS total_contacts,service FROM oi_imports GROUP BY service ORDER BY total_imports DESC,total_contacts DESC");
while ($row=sqlite_fetch_array($res)) $import_stats[$row['service']]=$row;
$res=$oi->statsQuery("SELECT COUNT(id) AS total_sends,SUM(messages) AS total_messages,service FROM oi_messages GROUP BY service");
while ($row=sqlite_fetch_array($res)) $messages_stats[$row['service']]=$row;
echo "<center><h1 class='title'>OpenInviter Stats</h1></center>";
echo "<table class='table' align='center' cellspacing='0' cellpadding='0' width='500'>
<tr class='tableHeader'><td colspan='5'>OpenInviter Statistics</td></tr>";
if (!empty($import_stats))
{
echo "<tr class='tableDesc'><td>Service</td><td>Users who imported contacts</td><td>Contacts imported</td><td>Users who sent messages</td><td>Messages sent</td></tr>";
$total_imports=0;$total_contacts=0;$total_sends=0;$total_messages=0;$odd=true;
foreach ($import_stats as $service=>$details)
{
$total_imports+=$details['total_imports'];
$total_contacts+=$details['total_contacts'];
echo "<tr class='".($odd?'tableOddRow':'tableEvenRow')."'><td><b>".(isset($plugins['email'][$service])?$plugins['email'][$service]['name']:(isset($plugins['social'][$service])?$plugins['social'][$service]['name']:$service))."</b></td><td align='center'>{$details['total_imports']}</td><td align='center'>{$details['total_contacts']}</td>";
if (isset($messages_stats[$service]))
{
$total_sends+=$messages_stats[$service]['total_sends'];
$total_messages+=$messages_stats[$service]['total_messages'];
echo "<td align='center'>{$messages_stats[$service]['total_sends']}</td><td align='center'>{$messages_stats[$service]['total_messages']}</td>";
}
else echo "<td align='center'>-</td><td align='center'>-</td>";
echo "</tr>";
$odd=!$odd;
}
echo "<tr class='tableFooter'><td>Total</td><td>{$total_imports}</td><td>{$total_contacts}</td><td>{$total_sends}</td><td>{$total_messages}</td></tr>
</table>
<br><center><a href='?op=reset'>Reset statistics</a></center>";
}
else
echo "<tr class='tableOddRow'><td colspan='5' style='padding:25px;' align='center'>There are no statistics available yet</td></tr></table>";
echo "<br><center><a target='_blank' href='http://openinviter.com' title='Powered by OpenInviter.com'><img src='http://openinviter.com/images/banners/banner_blue_1.gif' alt='Powered by OpenInviter.com' style='border:none;'></a></center>";
function showStyles()
{
$contents="<style>
.tableDesc{ color:#3d3d3d;font-family:Arial, Helvetica, sans-serif;font-weight:normal;font-size:12px;text-decoration:none; }
.tableDesc td{ text-align:center; }
.table{ border:1px solid #e1e1e1;padding:1px 1px 1px 1px;font-family:Arial, Helvetica, sans-serif;font-weight:normal;font-size:11px; }
.table td { padding:5px; }
.tableFooter{ height:30px;text-align:center;font-family:Arial, Helvetica, sans-serif;font-size:14px;color:#000000;font-weight:600;background-color:#C7DEE6; }
.tableFooter td{ text-align:center; }
.tableHeader{ background-color:#5fb52b;height:21px;font-family:Arial, Helvetica, sans-serif;font-size:12px;color:#FFFFFF;font-weight:bold;text-decoration:none;text-align:left;vertical-align:middle;padding-left:10px; }
.tableHeader td{ text-align:center; }
.tableOddRow{ background-color:#eaeaea;height:32px; }
.tableEvenRow{ background-color:#f5f5f5;height:32px; }
.title{ color:#89BDF6; }
body{ background-color:#F4F3EF; }
a{ color:#FF7E00;font-family:Arial, Helvetica, sans-serif;font-weight:bold;font-size:14px; }
</style>";
return $contents;
}
function ers($ers)
{
if (!empty($ers))
{
$contents="<table cellspacing='0' cellpadding='0' style='border:1px solid red;' align='center'><tr><td valign='middle' style='padding:3px' valign='middle'><img src='images/ers.gif'></td><td valign='middle' style='color:red;padding:5px;'>";
foreach ($ers as $key=>$error)
$contents.="{$error}<br >";
$contents.="</td></tr></table><br >";
return $contents;
}
}
?>