1 |
<?php |
2 |
# stats.php - Statistics |
3 |
# |
4 |
# Written by |
5 |
# Francisco Burzi |
6 |
# Patrik Wallström <pawal@blipp.com> |
7 |
# Rewritten by |
8 |
# Aron Boström <aron@linux.se> |
9 |
# |
10 |
# This file is part of Gnuheter. |
11 |
# See the file README for copyright notice. |
12 |
# |
13 |
# This program is free software; you can redistribute it and/or modify |
14 |
# it under the terms of the GNU General Public License as published by |
15 |
# the Free Software Foundation; either version 2 of the License, or |
16 |
# (at your option) any later version. |
17 |
# |
18 |
# This program is distributed in the hope that it will be useful, |
19 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
20 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
21 |
# GNU General Public License for more details. |
22 |
# |
23 |
# You should have received a copy of the GNU General Public License |
24 |
# along with this program; if not, write to the Free Software |
25 |
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
26 |
# 02111-1307 USA. |
27 |
# |
28 |
# $Id: stats.php,v 1.2 2002/06/04 12:42:24 pawal Exp $ |
29 |
|
30 |
/* inkluderar nödvändiga filer. counter_lib används bara för att visa nuvarande besökarens OS och läsare. Kan tas bort när betatestning är klar. */ |
31 |
include('mainfile.php'); |
32 |
include_once("counter_lib.php"); |
33 |
include('header.php'); |
34 |
|
35 |
|
36 |
/** stat_open_table är en funktion som öppnar en ruta med svart ram och vit botten som endast finns på statistik-sidan. |
37 |
Denna funktion borde knske ersättas av något bättre, och mer anpassningsbart.*/ |
38 |
function stat_open_table() { ?> |
39 |
<table cellspacing="0" cellpadding="2" border="0" bgcolor="#700000"><tr><td colspan="2"> |
40 |
<table cellspacing="0" cellpadding="3" border="0" bgcolor="#ffffff"> |
41 |
<? |
42 |
} |
43 |
|
44 |
/** stat_close_table stänger en ruta med statistik i.*/ |
45 |
function stat_close_table() { |
46 |
echo "</table></td></tr></table>\n"; |
47 |
} |
48 |
|
49 |
|
50 |
/** Ritar bild om det finns. */ |
51 |
function img($bild) |
52 |
{ |
53 |
if ($bild!="ingen") |
54 |
return "<img src=\"images/stats/$bild\" border=\"0\" alt=\"\"> "; |
55 |
else |
56 |
return ""; |
57 |
} |
58 |
|
59 |
|
60 |
/** funktionen rita($namn,$antal,$totalt,$bild) ritar upp en post i statistiken för Webbläsare eller Operativsystem. |
61 |
$namn är den den text som ska visas, $bild är den bild som ska visas, "ingen" används om man inte vill ha bild. |
62 |
$totalt är totala antalet sidträffar, används för att beräkna hur stor andel som aktuell post utgör. Parametern bör vara satt till $hits. |
63 |
$antal är antalet träffar som aktuell post har fått.*/ |
64 |
function rita($namn,$antal,$totalt,$bild) |
65 |
{ |
66 |
$ut="<tr align=\"left\"><td align=\"left\">"; |
67 |
$ut.=img($bild); |
68 |
$ut.="$namn: </td><td align=\"left\"><div align=\"left\"><img src=\"images/leftbar.png\" height=14 width=7 alt=\"\">"; |
69 |
$ut.="<img src=\"images/mainbar.png\" alt=\"\" height=14 width=".substr(200*$antal/$totalt,0,5).">"; |
70 |
$ut.="<img src=\"images/rightbar.png\" height=14 width=7 alt=\"\"> ".substr(100*$antal/$totalt,0,5)." % ($antal)</div></td></tr>\n"; |
71 |
echo $ut; |
72 |
} |
73 |
|
74 |
|
75 |
/* Information till besökaren om vilket OS och vilken läsare den har. Statistik över totala antalet sidträffar. |
76 |
Denna del används mest för buggtestningsperioden.*/ |
77 |
$dkn = mysql_query("SELECT count FROM counter WHERE typ=0"); |
78 |
if (!$dkn) { echo mysql_errno(). ": ".mysql_error(). "<br>"; exit(); } |
79 |
$rad = mysql_fetch_object($dkn); |
80 |
$hits=$rad->count; |
81 |
mysql_free_result($dkn); |
82 |
$dkn = mysql_query("SELECT bild, var FROM counter WHERE typ=1 && pid=".valla($HTTP_USER_AGENT).""); |
83 |
if (!$dkn) { echo mysql_errno(). ": ".mysql_error(). "<br>"; exit(); } |
84 |
$rad = mysql_fetch_object($dkn); |
85 |
$valla=$rad; |
86 |
mysql_free_result($dkn); |
87 |
$dkn = mysql_query("SELECT bild, var FROM counter WHERE typ=2 && pid=".op_sys($HTTP_USER_AGENT).""); |
88 |
if (!$dkn) { echo mysql_errno(). ": ".mysql_error(). "<br>"; exit(); } |
89 |
$rad = mysql_fetch_object($dkn); |
90 |
$os=$rad; |
91 |
mysql_free_result($dkn); |
92 |
echo "<div align=\"center\"> |
93 |
<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" bgcolor=\"#301515\"><tr><td colspan=\"2\"> |
94 |
<table cellspacing=\"0\" cellpadding=\"3\" border=\"0\" bgcolor=\"#ffffff\"><tr><td> |
95 |
Vi har fått <b>$hits</b> träffar från och med $startdate<br> |
96 |
Du använder webbläsare: <br>'".img($valla->bild)." $valla->var'<br> |
97 |
På operativsystemet: <br>'".img($os->bild)." $os->var'<br> |
98 |
Med användaridentifieringen: <br>'".getenv("HTTP_USER_AGENT")."'.<br> |
99 |
Om detta inte stämmer var vänlig kontakta |
100 |
<A HREF=\"mailto:gnuheter-dev@mail.freesoftware.fsf.org\">Gnuheters utvecklare</a>.</td></tr></table></td></tr></table> |
101 |
<br><br></div>"; |
102 |
|
103 |
|
104 |
/* Hämtar data ur dataasen och presenterar webbläsare (typ=1) */ |
105 |
$dkn = mysql_query("SELECT bild, var, count FROM counter WHERE typ=1 ORDER BY count DESC"); |
106 |
if (!$dkn) { echo mysql_errno(). ": ".mysql_error(). "<br>"; exit(); } |
107 |
$i=mysql_num_rows($dkn); |
108 |
if ($i>=1) |
109 |
{ |
110 |
echo "<div align=\"center\">"; |
111 |
stat_open_table(); |
112 |
echo "<font color=\"#ffffff\"><div align=\"center\"><b>Webbläsare</b></div>\n"; |
113 |
} |
114 |
for ($j=0;$j<$i;$j++) |
115 |
{ |
116 |
mysql_data_seek($dkn,$j); |
117 |
$rad = mysql_fetch_object($dkn); |
118 |
rita($rad->var,$rad->count,$hits,$rad->bild); |
119 |
} |
120 |
mysql_free_result($dkn); |
121 |
if ($i>=1) |
122 |
{ |
123 |
echo "</font>"; |
124 |
stat_close_table(); |
125 |
echo "<br><br>"; |
126 |
} |
127 |
|
128 |
|
129 |
/* Hämtar data ur dataasen och presenterar OS (typ=2) */ |
130 |
$dkn = mysql_query("SELECT bild, var, count FROM counter WHERE typ=2 ORDER BY count DESC"); |
131 |
if (!$dkn) { echo mysql_errno(). ": ".mysql_error(). "<br>"; exit(); } |
132 |
$i=mysql_num_rows($dkn); |
133 |
if ($i>=1) |
134 |
{ |
135 |
echo "<div align=\"center\">"; |
136 |
stat_open_table(); |
137 |
echo "<font color=\"#ffffff\"><div align=\"center\"><b>Operativsystem</b></div>\n"; |
138 |
} |
139 |
for ($j=0;$j<$i;$j++) |
140 |
{ |
141 |
mysql_data_seek($dkn,$j); |
142 |
$rad = mysql_fetch_object($dkn); |
143 |
rita($rad->var,$rad->count,$hits,$rad->bild); |
144 |
} |
145 |
mysql_free_result($dkn); |
146 |
if ($i>=1) |
147 |
{ |
148 |
echo "</font>"; |
149 |
stat_close_table(); |
150 |
echo "<br><br>"; |
151 |
} |
152 |
|
153 |
|
154 |
/* Övrig information som ska visas hämtas här.*/ |
155 |
$result = mysql_query("SELECT COUNT(*) FROM users"); |
156 |
list ($unum) = mysql_fetch_row($result); |
157 |
$result = mysql_query("SELECT COUNT(*) FROM authors"); |
158 |
list ($anum) = mysql_fetch_row($result); |
159 |
$result = mysql_query("SELECT COUNT(*) FROM stories"); |
160 |
list ($snum) = mysql_fetch_row($result); |
161 |
$result = mysql_query("SELECT COUNT(*) FROM comments"); |
162 |
list ($cnum) = mysql_fetch_row($result); |
163 |
/* $result = mysql_query("SELECT COUNT(*) FROM sections"); |
164 |
list ($secnum) = mysql_fetch_row($result); |
165 |
$result = mysql_query("SELECT COUNT(*) FROM seccont"); |
166 |
list ($secanum) = mysql_fetch_row($result); */ |
167 |
$result = mysql_query("SELECT COUNT(*) FROM queue"); |
168 |
list ($subnum) = mysql_fetch_row($result); |
169 |
$result = mysql_query("SELECT COUNT(*) FROM topics"); |
170 |
list ($tnum) = mysql_fetch_row($result); |
171 |
$result = mysql_query("SELECT COUNT(*) FROM links_links"); |
172 |
list ($links) = mysql_fetch_row($result); |
173 |
$result = mysql_query("SELECT COUNT(*) FROM links_categories"); |
174 |
list ($cat1) = mysql_fetch_row($result); |
175 |
$result = mysql_query("SELECT COUNT(*) FROM links_subcategories"); |
176 |
list ($cat2) = mysql_fetch_row($result); |
177 |
$cat = $cat1+$cat2; |
178 |
|
179 |
|
180 |
/* Övrig information visas här. */ |
181 |
stat_open_table(); |
182 |
echo "<font color=\"#ffffff\"><div align=\"center\"><b>Diverse statistik</b></div></font>\n"; |
183 |
echo "<tr><td><img src=\"images/stats/users.png\" border=\"0\"> Registrerade användare: </td><td><b>$unum</b></td></tr>\n"; |
184 |
echo "<tr><td><img src=\"images/stats/authors.png\" border=\"0\"> Aktiva skribenter: </td><td><b>$anum</b></td></tr>\n"; |
185 |
echo "<tr><td><img src=\"images/stats/news.png\" border=\"0\"> Publicerade artiklar: </td><td><b>$snum</b></td></tr>\n"; |
186 |
echo "<tr><td><img src=\"images/stats/topics.png\" border=\"0\"> Aktiva ämnen: </td><td><b>$tnum</b></td></tr>\n"; |
187 |
echo "<tr><td><img src=\"images/stats/comments.png\" border=\"0\"> Postade kommentarer: </td><td><b>$cnum</b></td></tr>\n"; |
188 |
echo "<tr><td><img src=\"images/stats/topics.png\" border=\"0\"> Länkar i länkdatabasen: </td><td><b>$links</b></td></tr>\n"; |
189 |
echo "<tr><td><img src=\"images/stats/sections.png\" border=\"0\"> Kategorier i länkdatabasen: </td><td><b>$cat</b></td></tr>\n"; |
190 |
echo "<tr><td><img src=\"images/stats/waiting.png\" border=\"0\"> Nyheter i publiceringskön: </td><td><b>$subnum</b></td></tr>\n"; |
191 |
html_page_foot(); |
192 |
echo "<br><br></div>"; |
193 |
|
194 |
include('footer.php'); |
195 |
|
196 |
?> |