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 - 2009 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')) || (!isAdmin())) {
45 // Add description as navigation point
46 addMenuDescription('admin', __FILE__);
48 if (isGetRequestElementSet('userid')) {
50 $userid = bigintval(getRequestElement('userid'));
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__);
56 // Fix missing variable
57 $result_levels = false;
60 if (SQL_NUMROWS($result_user) == 1) {
62 $menge = countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
63 $menge_lck = countSumTotalData($userid, 'user_data', 'userid', 'refid', true, " AND `status` != 'CONFIRMED'");
65 // Output info message
66 loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink(getRequestElement('userid')), $menge, $menge_lck));
68 // Load all referal levels
69 $result_levels = SQL_QUERY("SELECT
72 `{?_MYSQL_PREFIX?}_refdepths`
76 `level` ASC", __FILE__, __LINE__);
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
82 while ($levels = SQL_FETCHARRAY($result_levels)) {
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 />");
94 if (SQL_NUMROWS($result_refs) > 0) {
96 $menge = countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
97 $menge_lck = countSumTotalData($userid, 'user_data', 'userid', 'refid', true, " AND `status` != 'CONFIRMED'");
99 // Output info message
100 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink($userid), $menge, $menge_lck);
103 $OUT_REFS = ''; $SW = 2;
106 while ($content = SQL_FETCHARRAY($result_refs)) {
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__);
111 // Is the data there?
112 if (SQL_NUMROWS($result_user) == 1) {
114 $data = SQL_FETCHARRAY($result_user);
116 // Check for referals
117 $refs_cnt = countSumTotalData($data['userid'], 'refsystem', 'counter');
119 // Prepare data for the template
122 'u_link' => generateUserProfileLink($data['userid']),
123 'gender' => translateGender($data['gender']),
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'),
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");
135 // Load template for level one
136 $OUT_REFS .= loadTemplate('admin_list_refs_row', true, $content);
139 $OUT_REFS = loadTemplate('admin_list_refs_nodata', true, $content['refid']);
143 SQL_FREERESULT($result_user);
146 $levels['rows'] = $OUT_REFS;
152 // Output info message
153 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink($userid), '0', '0');
156 $levels['rows'] = loadTemplate('admin_list_refs_norefs', true, array('userid' => $userid));
160 SQL_FREERESULT($result_refs);
162 // Load level template
163 $OUT .= loadTemplate('admin_list_refs_level', true, $levels);
165 // Check for referals
166 $refs_cnt = countSumTotalData($levels['userid'], 'user_data', 'userid', 'refid', true);
168 // Prepare data for the template
171 'u_link' => generateUserProfileLink($levels['userid']),
172 'gender' => translateGender($levels['gender']),
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'),
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');
184 // Load template for level one
185 $OUT .= loadTemplate('admin_list_refs_row', true, $content);
195 'userid' => generateUserProfileLink(getRequestElement('userid'))
198 // Load main template
199 if (isExtensionActive('refback')) {
200 loadTemplate('admin_list_refs2', false, $content);
202 loadTemplate('admin_list_refs', false, $content);
204 } elseif (isExtensionActive('refback')) {
205 // No levels found, very bad!
206 loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NO_REF_LEVELS'));
208 // No refs made so far
209 loadTemplate('admin_settings_saved', false, getMessage('USER_REF_404'));
213 SQL_FREERESULT($result_levels);
216 loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_MEMBER_404'), getRequestElement('userid')));
220 SQL_FREERESULT($result_user);
222 // Output selection form with all confirmed user accounts listed
223 addMemberSelectionBox();