Referal overview finished and rewritten for refback extension
[mailer.git] / inc / modules / admin / what-list_refs.php
index 83b1760ceda9d482c048b26ac55c90a120ee923f..45592329213e47a49f2f8af891b2abae565ffb8e 100644 (file)
@@ -6,7 +6,7 @@
  * -------------------------------------------------------------------- *
  * File              : what-list_refs.php                               *
  * -------------------------------------------------------------------- *
- * Short description : Show all referrals made by a member              *
+ * Short description : Show all referals made by a member               *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Alle generierten Refs eines Mitgliedes anzeigen  *
  * -------------------------------------------------------------------- *
@@ -47,36 +47,172 @@ if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
 ADD_DESCR("admin", basename(__FILE__));
 
 if (!empty($_GET['u_id'])) {
+       // Secure userid
+       $uid = bigintval($_GET['u_id']);
+
        // Check if the user already exists
-       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
-        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) == 1) {
-               // Load all referal levels
-               $result_levels = SQL_QUERY_ESC("SELECT d.level, d.percents, r.counter
-FROM "._MYSQL_PREFIX."_refdepths AS d
-LEFT JOIN "._MYSQL_PREFIX."_refsystem AS r
-ON d.level=r.level
-WHERE r.userid=%s
-ORDER BY d.level ASC",
-                       array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+       $result_user = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
+               array($uid), __FILE__, __LINE__);
+
+       // User found?
+       if (SQL_NUMROWS($result_user) == 1) {
+               // Is the refback extension installed?
+               if (EXT_IS_ACTIVE("refback")) {
+                       // Load all referal levels
+                       $result_levels = SQL_QUERY("SELECT level, percents
+FROM "._MYSQL_PREFIX."_refdepths
+WHERE level > 0
+ORDER BY level ASC", __FILE__, __LINE__);
+               } else {
+                       // Loads surname, family's name and the email address
+                       $result     = SQL_QUERY_ESC("SELECT COUNT(*) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%s",
+                               array($uid), __FILE__, __LINE__);
+                       $result_lck = SQL_QUERY_ESC("SELECT COUNT(*) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%s AND status != 'CONFIRMED' ORDER BY userid",
+                               array($uid), __FILE__, __LINE__);
+                       $menge      = SQL_RESULT($result    , 0, 0);
+                       $menge_lck  = SQL_RESULT($result_lck, 0, 0);
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+                       SQL_FREERESULT($result_lck);
+
+                       // Query for refs
+                       $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",
+                               array($uid), __FILE__, __LINE__);
+
+                       // Output info message
+                       OUTPUT_HTML(ADMIN_TOTAL_REFS_1."".ADMIN_USER_PROFILE_LINK($_GET['u_id'])."".ADMIN_TOTAL_REFS_2.$menge.ADMIN_TOTAL_REFS_3.$menge_lck.ADMIN_TOTAL_REFS_4."<BR><BR>");
+               }
 
                // Are there some levels (VERY BAD IF NONE!)
                if (SQL_NUMROWS($result_levels) > 0) {
-                       // List all ref levels
+                       // List all ref levels or entries if no refback is installed
                        $OUT = ""; $SW = 2;
                        while ($levels = SQL_FETCHARRAY($result_levels)) {
                                // Insert more data
                                $levels['sw']    = $SW;
-                               $levels['level'] = ($levels['level'] + 1);
 
-                               // Load all refs of this user
-                               //$result_refs = SQL_QUERY_ESC("SELECT 
-                               // Load level template
-                               $OUT .= LOAD_TEMPLATE("admin_list_refs_level", true, $levels);
+                               // Is the refback still active? ;-)
+                               if (EXT_IS_ACTIVE("refback")) {
+                                       // Load all refs of this user
+                                       $result_refs = SQL_QUERY_ESC("SELECT refid FROM "._MYSQL_PREFIX."_user_refs WHERE userid=%s AND level='%s' ORDER BY refid ASC",
+                                               array($uid, $levels['level']), __FILE__, __LINE__);
+                                       //* DEBUG: */ echo $uid."/".$levels['level']."/".SQL_NUMROWS($result_refs)."<br />\n";
+
+                                       // Do we have levels?
+                                       if (SQL_NUMROWS($result_refs) > 0) {
+                                               // Loads surname, family's name and the email address
+                                               $result     = SQL_QUERY_ESC("SELECT COUNT(*) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%s",
+                                                       array($uid), __FILE__, __LINE__);
+                                               $result_lck = SQL_QUERY_ESC("SELECT COUNT(*) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%s AND status != 'CONFIRMED' ORDER BY userid",
+                                                       array($uid), __FILE__, __LINE__);
+                                               $menge      = SQL_RESULT($result    , 0, 0);
+                                               $menge_lck  = SQL_RESULT($result_lck, 0, 0);
+
+                                               // Free memory
+                                               SQL_FREERESULT($result);
+                                               SQL_FREERESULT($result_lck);
+
+                                               // Output info message
+                                               $levels['info'] = ADMIN_TOTAL_REFS_1."".ADMIN_USER_PROFILE_LINK($uid)."".ADMIN_TOTAL_REFS_2.$menge.ADMIN_TOTAL_REFS_3.$menge_lck.ADMIN_TOTAL_REFS_4;
+
+                                               // Load all refs
+                                               $OUT_REFS = ""; $SW = 2;
+                                               while (list($refid) = SQL_FETCHROW($result_refs)) {
+                                                       // Query for data
+                                                       $result_user = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email, status, joined FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
+                                                               array($refid), __FILE__, __LINE__);
+
+                                                       // Is the data there?
+                                                       if (SQL_NUMROWS($result_user) == 1) {
+                                                               // Load data
+                                                               $data = SQL_FETCHARRAY($result_user);
+
+                                                               // Check for referals
+                                                               $result_cnt = SQL_QUERY_ESC("SELECT COUNT(userid) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%s",
+                                                                       array($refid), __FILE__, __LINE__);
+
+                                                               // Load refs
+                                                               $refs_cnt = SQL_RESULT($result_cnt, 0, 0);
+
+                                                               // Free result
+                                                               SQL_FREERESULT($result_cnt);
 
-                               // Switch colors
-                               $SW = 3 - $SW;
-                       } // END - if
+                                                               // Prepare data for the template
+                                                               $content = array(
+                                                                       'sw'         => $SW,
+                                                                       'u_link'     => ADMIN_USER_PROFILE_LINK($data['userid']),
+                                                                       'gender'     => TRANSLATE_GENDER($data['gender']),
+                                                                       'refs_link'  => "0",
+                                                                       'surname'    => $data['surname'],
+                                                                       'family'     => $data['family'],
+                                                                       'email'      => "[<A href=\"".CREATE_EMAIL_LINK($data['email'], "user_data")."\">".$data['email']."</A>]",
+                                                                       'status'     => TRANSLATE_STATUS($data['status']),
+                                                                       'registered' => MAKE_DATETIME($data['joined'], "3"),
+                                                               );
+
+                                                               // Check if referal count is larger 0 and update link
+                                                               if ($refs_cnt > 0) $content['refs_link'] = ADMIN_USER_PROFILE_LINK($data['userid'], $refs_cnt, "list_refs");
+
+                                                               // Load template for level one
+                                                               $OUT_REFS .= LOAD_TEMPLATE("admin_list_refs_row", true, $content);
+                                                       } else {
+                                                               // No refs found
+                                                               $OUT_REFS = LOAD_TEMPLATE("admin_list_refs_nodata", true, $refid);
+                                                       }
+
+                                                       // Free result
+                                                       SQL_FREERESULT($result_user);
+
+                                                       // Add content
+                                                       $levels['rows'] = $OUT_REFS;
+
+                                                       // Switch colors
+                                                       $SW = 3 - $SW;
+                                               } // END - while
+                                       } else {
+                                               // Output info message
+                                               $levels['info'] = ADMIN_TOTAL_REFS_1."".ADMIN_USER_PROFILE_LINK($uid)."".ADMIN_TOTAL_REFS_2."0".ADMIN_TOTAL_REFS_3."0".ADMIN_TOTAL_REFS_4;
+
+                                               // No refs found
+                                               $levels['rows'] = LOAD_TEMPLATE("admin_list_refs_norefs", true, array('uid' => $uid));
+                                       }
+
+                                       // Free result
+                                       SQL_FREERESULT($result_refs);
+
+                                       // Load level template
+                                       $OUT .= LOAD_TEMPLATE("admin_list_refs_level", true, $levels);
+                               } else {
+                                       // Check for referals
+                                       $result_refs = SQL_QUERY_ESC("SELECT COUNT(userid) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%s",
+                                        array(bigintval($levels['userid'])), __FILE__, __LINE__);
+                                       $refs_cnt = SQL_RESULT($result_refs, 0, 0);
+                                       SQL_FREERESULT($result_refs);
+
+                                       // Prepare data for the template
+                                       $content = array(
+                                               'sw'         => $SW,
+                                               'u_link'     => ADMIN_USER_PROFILE_LINK($levels['userid']),
+                                               'gender'     => TRANSLATE_GENDER($levels['gender']),
+                                               'refs_link'  => "0",
+                                               'surname'    => $levels['surname'],
+                                               'family'     => $levels['family'],
+                                               'email'      => "[<A href=\"".CREATE_EMAIL_LINK($levels['email'], "user_data")."\">".$levels['email']."</A>]",
+                                               'status'     => TRANSLATE_STATUS($levels['status']),
+                                               'registered' => MAKE_DATETIME($levels['joined'], "3"),
+                                       );
+
+                                       // Check if referal count is larger 0 and update link
+                                       if ($refs_cnt > 0) $content['refs_link'] = ADMIN_USER_PROFILE_LINK($levels['userid'], $refs_cnt, "list_refs");
+
+                                       // Load template for level one
+                                       $OUT .= LOAD_TEMPLATE("admin_list_refs_row", true, $content);
+
+                                       // Switch colors
+                                       $SW = 3 - $SW;
+                               }
+                       } // END - while
 
                        // Prepare content
                        $content = array(
@@ -84,11 +220,18 @@ ORDER BY d.level ASC",
                                'uid'  => ADMIN_USER_PROFILE_LINK($_GET['u_id'])
                        );
 
-                       // Load mein template
-                       LOAD_TEMPLATE("admin_list_refs", false, $content);
-               } else {
+                       // Load main template
+                       if (EXT_IS_ACTIVE("refback")) {
+                               LOAD_TEMPLATE("admin_list_refs2", false, $content);
+                       } else {
+                               LOAD_TEMPLATE("admin_list_refs", false, $content);
+                       }
+               } elseif (EXT_IS_ACTIVE("refback")) {
                        // No levels found, very bad!
                        LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_REF_LEVELS);
+               } else {
+                       // No refs made so far
+                       LOAD_TEMPLATE("admin_settings_saved", false, USER_REF_404);
                }
 
                // Free result
@@ -99,7 +242,7 @@ ORDER BY d.level ASC",
        }
 
        // Free memory
-       SQL_FREERESULT($result);
+       SQL_FREERESULT($result_user);
 } else {
        // Output selection form with all confirmed user accounts listed
        ADD_MEMBER_SELECTION_BOX();