]> git.mxchange.org Git - mailer.git/blob - 0.2.1/inc/modules/guest/what-stats.php
Copyright updated
[mailer.git] / 0.2.1 / inc / modules / guest / what-stats.php
1 <?php\r
2 /************************************************************************\r
3  * MXChange v0.2.1                                    Start: 12/14/2003 *\r
4  * ================                             Last change: 08/22/2004 *\r
5  *                                                                      *\r
6  * -------------------------------------------------------------------- *\r
7  * File              : what-stats.php                                   *\r
8  * -------------------------------------------------------------------- *\r
9  * Short description : Statistics                                       *\r
10  * -------------------------------------------------------------------- *\r
11  * Kurzbeschreibung  : Statistiken                                      *\r
12  * -------------------------------------------------------------------- *\r
13  *                                                                      *\r
14  * -------------------------------------------------------------------- *\r
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *\r
16  * For more information visit: http://www.mxchange.org                  *\r
17  *                                                                      *\r
18  * This program is free software; you can redistribute it and/or modify *\r
19  * it under the terms of the GNU General Public License as published by *\r
20  * the Free Software Foundation; either version 2 of the License, or    *\r
21  * (at your option) any later version.                                  *\r
22  *                                                                      *\r
23  * This program is distributed in the hope that it will be useful,      *\r
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *\r
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *\r
26  * GNU General Public License for more details.                         *\r
27  *                                                                      *\r
28  * You should have received a copy of the GNU General Public License    *\r
29  * along with this program; if not, write to the Free Software          *\r
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *\r
31  * MA  02110-1301  USA                                                  *\r
32  ************************************************************************/\r
33 \r
34 // Some security stuff...\r
35 if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))\r
36 {\r
37         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";\r
38         require($INC);\r
39 }\r
40 // Add description as navigation point\r
41 ADD_DESCR("guest", basename(__FILE__));\r
42 \r
43 // Derterminate which stats we want and set mode and title for the link below stats block\r
44 if (!isset($_GET['mode'])) $_GET['mode'] = strtolower($CONFIG['gstats_mode']);\r
45 switch ($_GET['mode'])\r
46 {\r
47         case "members": $CONFIG['gstats_mode'] = "MEMBERS"; $lmode = "modules"; $ltitle = GUEST_STATS_MODULES; break;\r
48         case "modules": $CONFIG['gstats_mode'] = "MODULES"; $lmode = "members"; $ltitle = GUEST_STATS_MEMBERS; break;\r
49 }\r
50 \r
51 OPEN_TABLE("100%", "guest_content", "center", "top");\r
52 switch ($CONFIG['gstats_mode'])\r
53 {\r
54 case "MEMBERS": // Statistics about your members\r
55         // Members yesterday / today online\r
56         $ymem = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE last_online >= ".START_YDAY." AND last_online < ".START_TDAY." AND status='CONFIRMED'", __FILE__, __LINE__));\r
57         $tmem = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE last_online >= ".START_TDAY." AND status='CONFIRMED'", __FILE__, __LINE__));\r
58 \r
59         // Yesterday / today registered\r
60         $yreg = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE joined >= ".START_YDAY." AND joined < ".START_TDAY, __FILE__, __LINE__));\r
61         $treg = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE joined >= ".START_TDAY, __FILE__, __LINE__));\r
62 \r
63         // Only males / females\r
64         $male   = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE sex='M' AND status='CONFIRMED'", __FILE__, __LINE__));\r
65         $female = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE sex='F' AND status='CONFIRMED'", __FILE__, __LINE__));\r
66 \r
67         // Unconfirmed accounts\r
68         $unconfirmed = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status != 'CONFIRMED'", __FILE__, __LINE__));\r
69 \r
70         // Total members\r
71         $total = $male + $female;\r
72 \r
73         // List every month\r
74         $months = array();\r
75         for ($idx = 1; $idx < 13; $idx++)\r
76         {\r
77                 $month = $idx; if ($idx < 10) $month = "0".$idx;\r
78                 $months[$month] = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE birth_month=%d AND status='CONFIRMED'",\r
79                  array(bigintval($month)), __FILE__, __LINE__));\r
80         }\r
81 \r
82         // Members in categories\r
83         $result = SQL_QUERY("SELECT id, cat FROM "._MYSQL_PREFIX."_cats WHERE visible='Y' ORDER BY id", __FILE__, __LINE__);\r
84 \r
85         // Load categories first\r
86         $cats = array(); $cat_cnt = array();\r
87         while (list($id, $cat) = SQL_FETCHROW($result))\r
88         {\r
89                 // Simple...\r
90                 $cats[$id] = $cat;\r
91         }\r
92 \r
93         // Now we have all categories loaded, count members\r
94         foreach ($cats as $id=>$dummy)\r
95         {\r
96                 // We only need id and nothing more to count...\r
97                 $cat_cnt[$id] = SQL_NUMROWS(SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_cats WHERE cat_id=%d",\r
98                  array(bigintval($id)), __FILE__, __LINE__));\r
99         }\r
100 \r
101         // Prepare data for the template\r
102         define('__TOTAL_USERS' , $total);\r
103         define('__UNCONFIRMED' , $unconfirmed);\r
104         define('__MALE_COUNT'  , $male);\r
105         define('__FEMALE_COUNT', $female);\r
106         define('__TMEM_COUNT'  , $tmem);\r
107         define('__YMEM_COUNT'  , $ymem);\r
108         define('__TREG_COUNT'  , $treg);\r
109         define('__YREG_COUNT'  , $yreg);\r
110         define('__LMODE_VALUE' , $lmode);\r
111         define('__LINK_TITLE'  , $ltitle);\r
112 \r
113         // Generate monthly stats\r
114         $SW = 2; $r2 = " right2"; $l = "ll"; $r = "lr"; $OUT = "";\r
115         foreach ($months as $month=>$cnt)\r
116         {\r
117                 if ($SW == 2) $OUT .= "<TR>\n";\r
118 \r
119                 // Prepare data for template\r
120                 $content = array(\r
121                         'l_class'  => $l,\r
122                         'm_descr'  => $MONTH_DESCR[$month],\r
123                         'r_class'  => $r,\r
124                         'r2_class' => $r2,\r
125                         'cnt'      => $cnt\r
126                 );\r
127 \r
128                 // Load row template\r
129                 $OUT .= LOAD_TEMPLATE("guest_stats_month_row", true, $content);\r
130 \r
131                 if ($SW == 2)\r
132                 {\r
133                         $r2 = "";\r
134                         $l = "rl"; $r = "rr";\r
135                 }\r
136                  else\r
137                 {\r
138                         $OUT .= "</TR>\n";\r
139                         $r2 = " right2";\r
140                         $l = "ll"; $r = "lr";\r
141                 }\r
142                 $SW = 3 - $SW;\r
143         }\r
144         define('__MONTH_STATS_ROWS', $OUT);\r
145 \r
146         // Generate category stats\r
147         $SW = 2; $OUT = "";\r
148         foreach ($cat_cnt as $id=>$cnt)\r
149         {\r
150                 // Prepare data for the template\r
151                 $content = array(\r
152                         'sw'  => $SW,\r
153                         'cat' => $cats[$id],\r
154                         'cnt' => $cnt,\r
155                 );\r
156 \r
157                 // Load row template and switch colors\r
158                 $OUT .= LOAD_TEMPLATE("guest_stats_cats_row", true, $content);\r
159                 $SW = 3 - $SW;\r
160         }\r
161         define('__CATS_STATS_ROWS', $OUT);\r
162 \r
163         // Load final template\r
164         LOAD_TEMPLATE("guest_stats_member");\r
165         break;\r
166 \r
167 case "MODULES": // TOP10 module clicks\r
168         $AND = "";\r
169         if (!IS_ADMIN()) $AND = " AND locked='N' AND visible='Y'";\r
170         $guest_t10 = SQL_QUERY("SELECT counter, title FROM "._MYSQL_PREFIX."_guest_menu WHERE counter > 0".$AND." ORDER BY counter DESC LIMIT 0,10", __FILE__, __LINE__);\r
171         $mem_t10   = SQL_QUERY("SELECT counter, title FROM "._MYSQL_PREFIX."_member_menu WHERE counter > 0".$AND." ORDER BY counter DESC LIMIT 0,10", __FILE__, __LINE__);\r
172         if ((SQL_NUMROWS($guest_t10) > 0) || (SQL_NUMROWS($mem_t10) > 0))\r
173         {\r
174                 // Output header\r
175                 OUTPUT_HTML ("<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"guest_table dashed\" width=\"310\">\r
176 <TR>\r
177   <TD align=\"center\" class=\"guest_stats_title bottom2\" colspan=\"2\"><STRONG>".GUEST_TOPTEN_STATS."</STRONG></TD>\r
178 </TR>");\r
179         }\r
180 \r
181         if (SQL_NUMROWS($guest_t10) > 0)\r
182         {\r
183                 // Guest clicks\r
184                 OUTPUT_HTML ("<TR>\r
185   <TD align=\"center\" class=\"guest_title2 bottom2\" colspan=\"2\">".GUEST_TOP_GUEST_STATS."</TD>\r
186 </TR>");\r
187                 $SW = 2;\r
188                 while (list($clicks, $title) = SQL_FETCHROW($guest_t10))\r
189                 {\r
190                         OUTPUT_HTML ("<TR>\r
191   <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"right\" width=\"250\">".$title."&nbsp;</TD>\r
192   <TD class=\"switch_sw".$SW." bottom2\" width=\"50\">&nbsp;".$clicks."</TD>\r
193 </TR>");\r
194                         $SW = 3 - $SW;\r
195                 }\r
196         }\r
197         if (SQL_NUMROWS($guest_t10) > 0)\r
198         {\r
199                 // Guest clicks\r
200                 OUTPUT_HTML ("<TR>\r
201   <TD align=\"center\" class=\"guest_title2 bottom2\" colspan=\"2\">".GUEST_TOP_MEMBER_STATS."</TD>\r
202 </TR>");\r
203                 $SW = 2;\r
204                 while (list($clicks, $title) = SQL_FETCHROW($mem_t10))\r
205                 {\r
206                         OUTPUT_HTML ("<TR>\r
207   <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"right\" width=\"250\">".$title."&nbsp;</TD>\r
208   <TD class=\"switch_sw".$SW." bottom2\" width=\"50\">&nbsp;".$clicks."</TD>\r
209 </TR>");\r
210                         $SW = 3 - $SW;\r
211                 }\r
212         }\r
213         if ((SQL_NUMROWS($guest_t10) > 0) || (SQL_NUMROWS($mem_t10) > 0))\r
214         {\r
215                 // Output footer\r
216                 OUTPUT_HTML ("<TR>\r
217   <TD align=\"center\" class=\"guest_stats_footer\" colspan=\"2\"><A href=\"".URL."/modules.php?module=index&amp;what=stats&amp;mode=".$lmode."\">".$ltitle."</A></TD>\r
218 </TR>\r
219 </TABLE>");\r
220         }\r
221         break;\r
222 \r
223 case "INACTIVE": // Deactivated stats\r
224         LOAD_TEMPLATE("admin_settings_saved", false, "<STRONG>".GUEST_STATS_DEACTIVATED."</STRONG>");\r
225         break;\r
226 }\r
227 CLOSE_TABLE();\r
228 //\r
229 ?>\r