2 /************************************************************************
3 * MXChange v0.2.1 Start: 01/28/2004 *
4 * ================ Last change: 06/10/2004 *
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 * -------------------------------------------------------------------- *
14 * Mod created by : Lars Moehlenbruch ( http://www.surfo.net ) *
16 * -------------------------------------------------------------------- *
18 * Highly modified by Roland Haeder *
20 * -------------------------------------------------------------------- *
21 * Copyright (c) 2003 - 2008 by Roland Haeder *
22 * For more information visit: http://www.mxchange.org *
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. *
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. *
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, *
38 ************************************************************************/
40 // Some security stuff...
41 if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
42 $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
46 // Add description as navigation point
47 ADD_DESCR('admin', __FILE__);
49 if (REQUEST_ISSET_GET('uid')) {
51 $uid = bigintval(REQUEST_GET('uid'));
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__);
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`
65 ORDER BY level ASC", __FILE__, __LINE__);
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);
76 SQL_FREERESULT($result);
77 SQL_FREERESULT($result_lck);
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__);
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));
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
91 while ($levels = SQL_FETCHARRAY($result_levels)) {
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";
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);
113 SQL_FREERESULT($result);
114 SQL_FREERESULT($result_lck);
116 // Output info message
117 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), ADMIN_USER_PROFILE_LINK($uid), $menge, $menge_lck);
120 $OUT_REFS = ''; $SW = 2;
123 while ($content = SQL_FETCHARRAY($result_refs)) {
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__);
128 // Is the data there?
129 if (SQL_NUMROWS($result_user) == 1) {
131 $data = SQL_FETCHARRAY($result_user);
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__);
138 $refs_cnt = SQL_RESULT($result_cnt, 0, 0);
141 SQL_FREERESULT($result_cnt);
143 // Prepare data for the template
146 'u_link' => ADMIN_USER_PROFILE_LINK($data['userid']),
147 'gender' => TRANSLATE_GENDER($data['gender']),
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"),
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");
159 // Load template for level one
160 $OUT_REFS .= LOAD_TEMPLATE("admin_list_refs_row", true, $content);
163 $OUT_REFS = LOAD_TEMPLATE("admin_list_refs_nodata", true, $content['refid']);
167 SQL_FREERESULT($result_user);
170 $levels['rows'] = $OUT_REFS;
176 // Output info message
177 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), ADMIN_USER_PROFILE_LINK($uid), "0", "0");
180 $levels['rows'] = LOAD_TEMPLATE("admin_list_refs_norefs", true, array('uid' => $uid));
184 SQL_FREERESULT($result_refs);
186 // Load level template
187 $OUT .= LOAD_TEMPLATE("admin_list_refs_level", true, $levels);
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);
195 // Prepare data for the template
198 'u_link' => ADMIN_USER_PROFILE_LINK($levels['userid']),
199 'gender' => TRANSLATE_GENDER($levels['gender']),
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"),
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");
211 // Load template for level one
212 $OUT .= LOAD_TEMPLATE("admin_list_refs_row", true, $content);
222 'uid' => ADMIN_USER_PROFILE_LINK(REQUEST_GET('uid'))
225 // Load main template
226 if (EXT_IS_ACTIVE('refback')) {
227 LOAD_TEMPLATE("admin_list_refs2", false, $content);
229 LOAD_TEMPLATE("admin_list_refs", false, $content);
231 } elseif (EXT_IS_ACTIVE('refback')) {
232 // No levels found, very bad!
233 LOAD_TEMPLATE('admin_settings_saved', false, getMessage('ADMIN_NO_REF_LEVELS'));
235 // No refs made so far
236 LOAD_TEMPLATE('admin_settings_saved', false, getMessage('USER_REF_404'));
240 SQL_FREERESULT($result_levels);
243 LOAD_TEMPLATE('admin_settings_saved', false, sprintf(getMessage('ADMIN_MEMBER_404'), REQUEST_GET('uid')));
247 SQL_FREERESULT($result_user);
249 // Output selection form with all confirmed user accounts listed
250 ADD_MEMBER_SELECTION_BOX();