3632c774ffab026f5606cfbb78ebc6b42d6cac7e
[mailer.git] / inc / modules / admin / what-list_refs.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 01/28/2004 *
4  * ===================                          Last change: 06/10/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : what-list_refs.php                               *
8  * -------------------------------------------------------------------- *
9  * Short description : Show all referrals made by a member              *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Alle generierten Refs eines Mitgliedes anzeigen  *
12  * -------------------------------------------------------------------- *
13  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
14  * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
15  * For more information visit: http://mxchange.org                      *
16  *                                                                      *
17  * This program is free software; you can redistribute it and/or modify *
18  * it under the terms of the GNU General Public License as published by *
19  * the Free Software Foundation; either version 2 of the License, or    *
20  * (at your option) any later version.                                  *
21  *                                                                      *
22  * This program is distributed in the hope that it will be useful,      *
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
25  * GNU General Public License for more details.                         *
26  *                                                                      *
27  * You should have received a copy of the GNU General Public License    *
28  * along with this program; if not, write to the Free Software          *
29  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
30  * MA  02110-1301  USA                                                  *
31  ************************************************************************/
32
33 // Some security stuff...
34 if ((!defined('__SECURITY')) || (!isAdmin())) {
35         die();
36 } // END - if
37
38 // Add description as navigation point
39 addYouAreHereLink('admin', __FILE__);
40
41 if (isGetRequestElementSet('userid')) {
42         // Secure userid
43         $userid = bigintval(getRequestElement('userid'));
44
45         // Fix missing variable
46         $result_levels = false;
47
48         // User found?
49         if (fetchUserData($userid)) {
50                 // Get total refs
51                 $menge =     countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
52                 $menge_lck = countSumTotalData($userid, 'user_data', 'userid', 'refid', true, " AND `status` != 'CONFIRMED'");
53
54                 // Output info message
55                 displayMessage(sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink(getRequestElement('userid')), $menge, $menge_lck));
56
57                 // Load all referral levels
58                 $result_levels = SQL_QUERY("SELECT
59         `level`,`percents`
60 FROM
61         `{?_MYSQL_PREFIX?}_refdepths`
62 WHERE
63         `level` > 0
64 ORDER BY
65         `level` ASC", __FILE__, __LINE__);
66
67                 // Are there some levels (VERY BAD IF NONE!)
68                 if (!SQL_HASZERONUMS($result_levels)) {
69                         // List all ref levels or entries if no refback is installed
70                         $OUT = '';
71                         while ($levels = SQL_FETCHARRAY($result_levels)) {
72                                 // Is the refback still active? ;-)
73                                 if (isExtensionActive('refback')) {
74                                         // Load all refs of this user
75                                         $result_refs = SQL_QUERY_ESC("SELECT `refid` FROM `{?_MYSQL_PREFIX?}_user_refs` WHERE `userid`=%s AND `level`=%s ORDER BY `refid` ASC",
76                                                 array($userid, $levels['level']), __FILE__, __LINE__);
77                                         //* DEBUG: */ debugOutput($userid.'/'.$levels['level'].'/'.SQL_NUMROWS($result_refs));
78
79                                         // Do we have levels?
80                                         if (!SQL_HASZERONUMS($result_refs)) {
81                                                 // Count entries
82                                                 $menge =     countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
83                                                 $menge_lck = countSumTotalData($userid, 'user_data', 'userid', 'refid', true, " AND `status` != 'CONFIRMED'");
84
85                                                 // Output info message
86                                                 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink($userid), $menge, $menge_lck);
87
88                                                 // Init variables
89                                                 $OUT_REFS = '';
90
91                                                 // Load all refs
92                                                 while ($content = SQL_FETCHARRAY($result_refs)) {
93                                                         // Is the data there?
94                                                         if (fetchUserData($content['refid'])) {
95                                                                 // Check for referrals
96                                                                 $refs_cnt = countSumTotalData(getUserData('userid'), 'user_refs', 'id', 'userid', true);
97
98                                                                 // Prepare data for the template
99                                                                 // @TODO Try to rewrite some to EL
100                                                                 $content = array(
101                                                                         'userid'     => getUserData('userid'),
102                                                                         'gender'     => getUserData('gender'),
103                                                                         'refs_link'  => 0,
104                                                                         'surname'    => getUserData('surname'),
105                                                                         'family'     => getUserData('family'),
106                                                                         'email'      => '[<a href="' . generateEmailLink(getUserData('email'), 'user_data') . '">' . getUserData('email') . '</a>]',
107                                                                         'status'     => getUserData('status'),
108                                                                         'registered' => generateDateTime(getUserData('joined'), 3),
109                                                                 );
110
111                                                                 // Check if referral count is larger 0 and update link
112                                                                 if ($refs_cnt > 0) {
113                                                                         $content['refs_link'] = generateUserProfileLink(getUserData('userid'), $refs_cnt, 'list_refs');
114                                                                 } // END - if
115
116                                                                 // Load template for level one
117                                                                 $OUT_REFS .= loadTemplate('admin_list_refs_row', true, $content);
118                                                         } else {
119                                                                 // No refs found
120                                                                 $OUT_REFS = loadTemplate('admin_list_refs_nodata', true, $content);
121                                                         }
122
123                                                         // Add content
124                                                         $levels['rows'] = $OUT_REFS;
125                                                 } // END - while
126                                         } else {
127                                                 // Output info message
128                                                 $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink($userid), 0, 0);
129
130                                                 // No refs found
131                                                 $levels['rows'] = loadTemplate('admin_list_refs_norefs', true, array('userid' => $userid));
132                                         }
133
134                                         // Free result
135                                         SQL_FREERESULT($result_refs);
136
137                                         // Load level template
138                                         $OUT .= loadTemplate('admin_list_refs_level', true, $levels);
139                                 } else {
140                                         // Check for referrals
141                                         $refs_cnt = countSumTotalData($levels['userid'], 'user_data', 'userid', 'refid', true);
142
143                                         // Prepare data for the template
144                                         $content = array(
145                                                 'userid'     => $levels['userid'],
146                                                 'gender'     => $levels['gender'],
147                                                 'refs_link'  => 0,
148                                                 'surname'    => $levels['surname'],
149                                                 'family'     => $levels['family'],
150                                                 'email'      => '[<a href="' . generateEmailLink($levels['email'], 'user_data') . '">' . $levels['email'] . '</a>]',
151                                                 'status'     => $levels['status'],
152                                                 'registered' => generateDateTime($levels['joined'], 3),
153                                         );
154
155                                         // Check if referral count is larger 0 and update link
156                                         if ($refs_cnt > 0) {
157                                                 $content['refs_link'] = generateUserProfileLink($levels['userid'], $refs_cnt, 'list_refs');
158                                         } // END - if
159
160                                         // Load template for level one
161                                         $OUT .= loadTemplate('admin_list_refs_row', true, $content);
162                                 }
163                         } // END - while
164
165                         // Prepare content
166                         $content = array(
167                                 'rows'   => $OUT,
168                                 'userid' => getRequestElement('userid')
169                         );
170
171                         // Load main template
172                         if (isExtensionActive('refback')) {
173                                 loadTemplate('admin_list_refs2', false, $content);
174                         } else {
175                                 loadTemplate('admin_list_refs', false, $content);
176                         }
177                 } elseif (isExtensionActive('refback')) {
178                         // No levels found, very bad!
179                         displayMessage('{--ADMIN_NO_REFERRAL_LEVELS--}');
180                 } else {
181                         // No refs made so far
182                         displayMessage('{--USER_REFERRAL_404--}');
183                 }
184
185                 // Free result
186                 SQL_FREERESULT($result_levels);
187         } else {
188                 // User not found
189                 displayMessage('{%message,ADMIN_MEMBER_404=' . getRequestElement('userid') . '%}');
190         }
191 } else {
192         // Output selection form with all confirmed user accounts listed
193         addMemberSelectionBox();
194 }
195
196 // [EOF]
197 ?>