More rewrites, and output-mode fixed (we should documentate this)
[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 - 2009 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')) || (!isAdmin())) {
42         die();
43 }
44
45 // Add description as navigation point
46 addMenuDescription('admin', __FILE__);
47
48 if (isGetRequestElementSet('userid')) {
49         // Secure userid
50         $userid = bigintval(getRequestElement('userid'));
51
52         // Check if the user already exists
53         $result_user = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1",
54                 array($userid), __FILE__, __LINE__);
55
56         // Fix missing variable
57         $result_levels = false;
58
59         // User found?
60         if (SQL_NUMROWS($result_user) == 1) {
61                 // Get total refs
62                 $menge =     countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
63                 $menge_lck = countSumTotalData($userid, 'user_data', 'userid', 'refid', true, " AND `status` != 'CONFIRMED'");
64
65                 // Output info message
66                 loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink(getRequestElement('userid')), $menge, $menge_lck));
67
68                 // Load all referal levels
69                 $result_levels = SQL_QUERY("SELECT
70         `level`, `percents`
71 FROM
72         `{?_MYSQL_PREFIX?}_refdepths`
73 WHERE
74         `level` > 0
75 ORDER BY
76         `level` ASC", __FILE__, __LINE__);
77
78                 // Are there some levels (VERY BAD IF NONE!)
79                 if (SQL_NUMROWS($result_levels) > 0) {
80                         // List all ref levels or entries if no refback is installed
81                         $OUT = ''; $SW = 2;
82                         while ($levels = SQL_FETCHARRAY($result_levels)) {
83                                 // Insert more data
84                                 $levels['sw']    = $SW;
85
86                                 // Is the refback still active? ;-)
87                                 if (isExtensionActive('refback')) {
88                                         // Load all refs of this user
89                                         $result_refs = SQL_QUERY_ESC("SELECT `refid` FROM `{?_MYSQL_PREFIX?}_user_refs` WHERE `userid`=%s AND `level`='%s' ORDER BY refid ASC",
90                                                 array($userid, $levels['level']), __FILE__, __LINE__);
91                                         //* DEBUG: */ outputHtml($userid.'/'.$levels['level'].'/'.SQL_NUMROWS($result_refs)."<br />");
92
93                                         // Do we have levels?
94                                         if (SQL_NUMROWS($result_refs) > 0) {
95                                                 // Count entries
96                                                 $menge =     countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
97                                                 $menge_lck = countSumTotalData($userid, 'user_data', 'userid', 'refid', true, " AND `status` != 'CONFIRMED'");
98
99                                                 // Output info message
100                                                 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink($userid), $menge, $menge_lck);
101
102                                                 // Init variables
103                                                 $OUT_REFS = ''; $SW = 2;
104
105                                                 // Load all refs
106                                                 while ($content = SQL_FETCHARRAY($result_refs)) {
107                                                         // Query for data
108                                                         $result_user = SQL_QUERY_ESC("SELECT `userid`, `gender`, `surname`, `family`, `email`, `status`, `joined` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1",
109                                                                 array($content['refid']), __FILE__, __LINE__);
110
111                                                         // Is the data there?
112                                                         if (SQL_NUMROWS($result_user) == 1) {
113                                                                 // Load data
114                                                                 $data = SQL_FETCHARRAY($result_user);
115
116                                                                 // Check for referals
117                                                                 $refs_cnt = countSumTotalData($data['userid'], 'refsystem', 'counter');
118
119                                                                 // Prepare data for the template
120                                                                 $content = array(
121                                                                         'sw'         => $SW,
122                                                                         'u_link'     => generateUserProfileLink($data['userid']),
123                                                                         'gender'     => translateGender($data['gender']),
124                                                                         'refs_link'  => 0,
125                                                                         'surname'    => $data['surname'],
126                                                                         'family'     => $data['family'],
127                                                                         'email'      => "[<a href=\"".generateEmailLink($data['email'], 'user_data')."\">".$data['email']."</a>]",
128                                                                         'status'     => translateUserStatus($data['status']),
129                                                                         'registered' => generateDateTime($data['joined'], 3),
130                                                                 );
131
132                                                                 // Check if referal count is larger 0 and update link
133                                                                 if ($refs_cnt > 0) $content['refs_link'] = generateUserProfileLink($data['userid'], $refs_cnt, "list_refs");
134
135                                                                 // Load template for level one
136                                                                 $OUT_REFS .= loadTemplate('admin_list_refs_row', true, $content);
137                                                         } else {
138                                                                 // No refs found
139                                                                 $OUT_REFS = loadTemplate('admin_list_refs_nodata', true, $content['refid']);
140                                                         }
141
142                                                         // Free result
143                                                         SQL_FREERESULT($result_user);
144
145                                                         // Add content
146                                                         $levels['rows'] = $OUT_REFS;
147
148                                                         // Switch colors
149                                                         $SW = 3 - $SW;
150                                                 } // END - while
151                                         } else {
152                                                 // Output info message
153                                                 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink($userid), 0, 0);
154
155                                                 // No refs found
156                                                 $levels['rows'] = loadTemplate('admin_list_refs_norefs', true, array('userid' => $userid));
157                                         }
158
159                                         // Free result
160                                         SQL_FREERESULT($result_refs);
161
162                                         // Load level template
163                                         $OUT .= loadTemplate('admin_list_refs_level', true, $levels);
164                                 } else {
165                                         // Check for referals
166                                         $refs_cnt = countSumTotalData($levels['userid'], 'user_data', 'userid', 'refid', true);
167
168                                         // Prepare data for the template
169                                         $content = array(
170                                                 'sw'         => $SW,
171                                                 'u_link'     => generateUserProfileLink($levels['userid']),
172                                                 'gender'     => translateGender($levels['gender']),
173                                                 'refs_link'  => 0,
174                                                 'surname'    => $levels['surname'],
175                                                 'family'     => $levels['family'],
176                                                 'email'      => "[<a href=\"".generateEmailLink($levels['email'], 'user_data')."\">".$levels['email']."</a>]",
177                                                 'status'     => translateUserStatus($levels['status']),
178                                                 'registered' => generateDateTime($levels['joined'], 3),
179                                         );
180
181                                         // Check if referal count is larger 0 and update link
182                                         if ($refs_cnt > 0) $content['refs_link'] = generateUserProfileLink($levels['userid'], $refs_cnt, 'list_refs');
183
184                                         // Load template for level one
185                                         $OUT .= loadTemplate('admin_list_refs_row', true, $content);
186
187                                         // Switch colors
188                                         $SW = 3 - $SW;
189                                 }
190                         } // END - while
191
192                         // Prepare content
193                         $content = array(
194                                 'rows' => $OUT,
195                                 'userid'  => generateUserProfileLink(getRequestElement('userid'))
196                         );
197
198                         // Load main template
199                         if (isExtensionActive('refback')) {
200                                 loadTemplate('admin_list_refs2', false, $content);
201                         } else {
202                                 loadTemplate('admin_list_refs', false, $content);
203                         }
204                 } elseif (isExtensionActive('refback')) {
205                         // No levels found, very bad!
206                         loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NO_REF_LEVELS'));
207                 } else {
208                         // No refs made so far
209                         loadTemplate('admin_settings_saved', false, getMessage('USER_REF_404'));
210                 }
211
212                 // Free result
213                 SQL_FREERESULT($result_levels);
214         } else {
215                 // User not found
216                 loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_MEMBER_404'), getRequestElement('userid')));
217         }
218
219         // Free memory
220         SQL_FREERESULT($result_user);
221 } else {
222         // Output selection form with all confirmed user accounts listed
223         addMemberSelectionBox();
224 }
225
226 // [EOF]
227 ?>