A lot double-quotes rewritten to single-quotes, some redirect URLs fixed
[mailer.git] / inc / modules / admin / what-list_refs.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 01/28/2004 *
4  * ================                             Last change: 06/10/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : what-list_refs.php                               *
8  * -------------------------------------------------------------------- *
9  * Short description : Show all referals made by a member               *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Alle generierten Refs eines Mitgliedes anzeigen  *
12  * -------------------------------------------------------------------- *
13  *                                                                      *
14  *    Mod created by : Lars Moehlenbruch ( http://www.surfo.net )       *
15  *                                                                      *
16  * -------------------------------------------------------------------- *
17  *                                                                      *
18  *                 Highly modified by Roland Haeder                     *
19  *                                                                      *
20  * -------------------------------------------------------------------- *
21  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
22  * For more information visit: http://www.mxchange.org                  *
23  *                                                                      *
24  * This program is free software; you can redistribute it and/or modify *
25  * it under the terms of the GNU General Public License as published by *
26  * the Free Software Foundation; either version 2 of the License, or    *
27  * (at your option) any later version.                                  *
28  *                                                                      *
29  * This program is distributed in the hope that it will be useful,      *
30  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
31  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
32  * GNU General Public License for more details.                         *
33  *                                                                      *
34  * You should have received a copy of the GNU General Public License    *
35  * along with this program; if not, write to the Free Software          *
36  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
37  * MA  02110-1301  USA                                                  *
38  ************************************************************************/
39
40 // Some security stuff...
41 if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
42         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
43         require($INC);
44 }
45
46 // Add description as navigation point
47 ADD_DESCR('admin', __FILE__);
48
49 if (REQUEST_ISSET_GET('uid')) {
50         // Secure userid
51         $uid = bigintval(REQUEST_GET('uid'));
52
53         // Check if the user already exists
54         $result_user = SQL_QUERY_ESC("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1",
55                 array($uid), __FILE__, __LINE__);
56
57         // User found?
58         if (SQL_NUMROWS($result_user) == 1) {
59                 // Is the refback extension installed?
60                 if (EXT_IS_ACTIVE('refback')) {
61                         // Load all referal levels
62                         $result_levels = SQL_QUERY("SELECT level, percents
63 FROM `{!_MYSQL_PREFIX!}_refdepths`
64 WHERE level > 0
65 ORDER BY level ASC", __FILE__, __LINE__);
66                 } else {
67                         // Loads surname, family's name and the email address
68                         $result     = SQL_QUERY_ESC("SELECT COUNT(*) FROM `{!_MYSQL_PREFIX!}_user_data` WHERE refid=%s",
69                                 array($uid), __FILE__, __LINE__);
70                         $result_lck = SQL_QUERY_ESC("SELECT COUNT(*) FROM `{!_MYSQL_PREFIX!}_user_data` WHERE refid=%s AND status != 'CONFIRMED' ORDER BY userid",
71                                 array($uid), __FILE__, __LINE__);
72                         $menge      = SQL_RESULT($result    , 0, 0);
73                         $menge_lck  = SQL_RESULT($result_lck, 0, 0);
74
75                         // Free memory
76                         SQL_FREERESULT($result);
77                         SQL_FREERESULT($result_lck);
78
79                         // Query for refs
80                         $result_levels = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email, status, joined FROM `{!_MYSQL_PREFIX!}_user_data` WHERE refid=%s ORDER BY userid ASC",
81                                 array($uid), __FILE__, __LINE__);
82
83                         // Output info message
84                         LOAD_TEMPLATE('admin_settings_saved', false, sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), ADMIN_USER_PROFILE_LINK(REQUEST_GET('uid')), $menge, $menge_lck));
85                 }
86
87                 // Are there some levels (VERY BAD IF NONE!)
88                 if (SQL_NUMROWS($result_levels) > 0) {
89                         // List all ref levels or entries if no refback is installed
90                         $OUT = ''; $SW = 2;
91                         while ($levels = SQL_FETCHARRAY($result_levels)) {
92                                 // Insert more data
93                                 $levels['sw']    = $SW;
94
95                                 // Is the refback still active? ;-)
96                                 if (EXT_IS_ACTIVE('refback')) {
97                                         // Load all refs of this user
98                                         $result_refs = SQL_QUERY_ESC("SELECT refid FROM `{!_MYSQL_PREFIX!}_user_refs` WHERE userid=%s AND level='%s' ORDER BY refid ASC",
99                                                 array($uid, $levels['level']), __FILE__, __LINE__);
100                                         //* DEBUG: */ echo $uid."/".$levels['level']."/".SQL_NUMROWS($result_refs)."<br />\n";
101
102                                         // Do we have levels?
103                                         if (SQL_NUMROWS($result_refs) > 0) {
104                                                 // Loads surname, family's name and the email address
105                                                 $result     = SQL_QUERY_ESC("SELECT COUNT(*) FROM `{!_MYSQL_PREFIX!}_user_data` WHERE refid=%s",
106                                                         array($uid), __FILE__, __LINE__);
107                                                 $result_lck = SQL_QUERY_ESC("SELECT COUNT(*) FROM `{!_MYSQL_PREFIX!}_user_data` WHERE refid=%s AND status != 'CONFIRMED' ORDER BY userid",
108                                                         array($uid), __FILE__, __LINE__);
109                                                 $menge      = SQL_RESULT($result    , 0, 0);
110                                                 $menge_lck  = SQL_RESULT($result_lck, 0, 0);
111
112                                                 // Free memory
113                                                 SQL_FREERESULT($result);
114                                                 SQL_FREERESULT($result_lck);
115
116                                                 // Output info message
117                                                 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), ADMIN_USER_PROFILE_LINK($uid), $menge, $menge_lck);
118
119                                                 // Init variables
120                                                 $OUT_REFS = ''; $SW = 2;
121
122                                                 // Load all refs
123                                                 while ($content = SQL_FETCHARRAY($result_refs)) {
124                                                         // Query for data
125                                                         $result_user = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email, status, joined FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1",
126                                                                 array($content['refid']), __FILE__, __LINE__);
127
128                                                         // Is the data there?
129                                                         if (SQL_NUMROWS($result_user) == 1) {
130                                                                 // Load data
131                                                                 $data = SQL_FETCHARRAY($result_user);
132
133                                                                 // Check for referals
134                                                                 $result_cnt = SQL_QUERY_ESC("SELECT COUNT(userid) FROM `{!_MYSQL_PREFIX!}_user_data` WHERE refid=%s",
135                                                                         array($content['refid']), __FILE__, __LINE__);
136
137                                                                 // Load refs
138                                                                 $refs_cnt = SQL_RESULT($result_cnt, 0, 0);
139
140                                                                 // Free result
141                                                                 SQL_FREERESULT($result_cnt);
142
143                                                                 // Prepare data for the template
144                                                                 $content = array(
145                                                                         'sw'         => $SW,
146                                                                         'u_link'     => ADMIN_USER_PROFILE_LINK($data['userid']),
147                                                                         'gender'     => TRANSLATE_GENDER($data['gender']),
148                                                                         'refs_link'  => "0",
149                                                                         'surname'    => $data['surname'],
150                                                                         'family'     => $data['family'],
151                                                                         'email'      => "[<a href=\"".CREATE_EMAIL_LINK($data['email'], "user_data")."\">".$data['email']."</a>]",
152                                                                         'status'     => TRANSLATE_STATUS($data['status']),
153                                                                         'registered' => MAKE_DATETIME($data['joined'], "3"),
154                                                                 );
155
156                                                                 // Check if referal count is larger 0 and update link
157                                                                 if ($refs_cnt > 0) $content['refs_link'] = ADMIN_USER_PROFILE_LINK($data['userid'], $refs_cnt, "list_refs");
158
159                                                                 // Load template for level one
160                                                                 $OUT_REFS .= LOAD_TEMPLATE("admin_list_refs_row", true, $content);
161                                                         } else {
162                                                                 // No refs found
163                                                                 $OUT_REFS = LOAD_TEMPLATE("admin_list_refs_nodata", true, $content['refid']);
164                                                         }
165
166                                                         // Free result
167                                                         SQL_FREERESULT($result_user);
168
169                                                         // Add content
170                                                         $levels['rows'] = $OUT_REFS;
171
172                                                         // Switch colors
173                                                         $SW = 3 - $SW;
174                                                 } // END - while
175                                         } else {
176                                                 // Output info message
177                                                 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), ADMIN_USER_PROFILE_LINK($uid), "0", "0");
178
179                                                 // No refs found
180                                                 $levels['rows'] = LOAD_TEMPLATE("admin_list_refs_norefs", true, array('uid' => $uid));
181                                         }
182
183                                         // Free result
184                                         SQL_FREERESULT($result_refs);
185
186                                         // Load level template
187                                         $OUT .= LOAD_TEMPLATE("admin_list_refs_level", true, $levels);
188                                 } else {
189                                         // Check for referals
190                                         $result_refs = SQL_QUERY_ESC("SELECT COUNT(userid) FROM `{!_MYSQL_PREFIX!}_user_data` WHERE refid=%s",
191                                          array(bigintval($levels['userid'])), __FILE__, __LINE__);
192                                         $refs_cnt = SQL_RESULT($result_refs, 0, 0);
193                                         SQL_FREERESULT($result_refs);
194
195                                         // Prepare data for the template
196                                         $content = array(
197                                                 'sw'         => $SW,
198                                                 'u_link'     => ADMIN_USER_PROFILE_LINK($levels['userid']),
199                                                 'gender'     => TRANSLATE_GENDER($levels['gender']),
200                                                 'refs_link'  => "0",
201                                                 'surname'    => $levels['surname'],
202                                                 'family'     => $levels['family'],
203                                                 'email'      => "[<a href=\"".CREATE_EMAIL_LINK($levels['email'], "user_data")."\">".$levels['email']."</a>]",
204                                                 'status'     => TRANSLATE_STATUS($levels['status']),
205                                                 'registered' => MAKE_DATETIME($levels['joined'], "3"),
206                                         );
207
208                                         // Check if referal count is larger 0 and update link
209                                         if ($refs_cnt > 0) $content['refs_link'] = ADMIN_USER_PROFILE_LINK($levels['userid'], $refs_cnt, "list_refs");
210
211                                         // Load template for level one
212                                         $OUT .= LOAD_TEMPLATE("admin_list_refs_row", true, $content);
213
214                                         // Switch colors
215                                         $SW = 3 - $SW;
216                                 }
217                         } // END - while
218
219                         // Prepare content
220                         $content = array(
221                                 'rows' => $OUT,
222                                 'uid'  => ADMIN_USER_PROFILE_LINK(REQUEST_GET('uid'))
223                         );
224
225                         // Load main template
226                         if (EXT_IS_ACTIVE('refback')) {
227                                 LOAD_TEMPLATE("admin_list_refs2", false, $content);
228                         } else {
229                                 LOAD_TEMPLATE("admin_list_refs", false, $content);
230                         }
231                 } elseif (EXT_IS_ACTIVE('refback')) {
232                         // No levels found, very bad!
233                         LOAD_TEMPLATE('admin_settings_saved', false, getMessage('ADMIN_NO_REF_LEVELS'));
234                 } else {
235                         // No refs made so far
236                         LOAD_TEMPLATE('admin_settings_saved', false, getMessage('USER_REF_404'));
237                 }
238
239                 // Free result
240                 SQL_FREERESULT($result_levels);
241         } else {
242                 // User not found
243                 LOAD_TEMPLATE('admin_settings_saved', false, sprintf(getMessage('ADMIN_MEMBER_404'), REQUEST_GET('uid')));
244         }
245
246         // Free memory
247         SQL_FREERESULT($result_user);
248 } else {
249         // Output selection form with all confirmed user accounts listed
250         ADD_MEMBER_SELECTION_BOX();
251 }
252
253 //
254 ?>