]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/refback_functions.php
ext-refback is now longer essential for the referal system, please make sure that...
[mailer.git] / inc / libs / refback_functions.php
index 9cb0ac373452b37c697fe59dcc9684c396bed6dd..fce722d012cb69db1d79d3b76f7905d9ed8eeb8b 100644 (file)
@@ -59,7 +59,7 @@ function addRefbackPoints ($userid, $ref, $points, $ref_points) {
                initReferalSystem();
 
                // "Walk" through all refids
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',ref=' . $ref . ',level=' . $content['level'] . ',percents=' . $content['percents'] . ',points=' . $points . ' - LOOP START!');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',ref=' . $ref . ',level=' . $content['level'] . ',percents=' . $content['refback_percents'] . ',points=' . $points . ' - LOOP START!');
                foreach (getArrayFromRefbackLevel($userid, $content['level']) as $refid) {
                        // Skip level zero or if both are the same
                        if ($userid == $refid) {
@@ -72,15 +72,15 @@ function addRefbackPoints ($userid, $ref, $points, $ref_points) {
 
                        // Some percents given?
                        if ($percents > 0) {
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'points=' . $points . ',[percents]=' . $content['percents'] . ',percents=' . $percents . ',level=' . $content['level']);
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'points=' . $points . ',[percents]=' . $content['refback_percents'] . ',percents=' . $percents . ',level=' . $content['level']);
                                // Calculate points for refback
-                               $refback = $points * ($content['percents'] / 100) * ($percents / 100);
+                               $refback = $points * ($content['refback_percents'] / 100) * ($percents / 100);
 
                                // Update refback table ('refid' and 'userid' must be exchanged!)
                                SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_refs`
 SET
-       `points`=`points`+%s
+       `refback_points`=`refback_points`+%s
 WHERE
        `userid`=%s AND
        `refid`=%s
@@ -104,7 +104,7 @@ LIMIT 1",
                                // Reduce points if refid is found
                                if ($refid == $ref) {
                                        // Reduce points here!
-                                       $return = $points * ($content['percents'] / 100) - $refback;
+                                       $return = $points * ($content['refback_percents'] / 100) - $refback;
                                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'return=' . $return . ' - REDUCED!');
                                } // END - if
                        } // END - if
@@ -136,7 +136,7 @@ function getRefbackPercents ($userid, $ref) {
                $GLOBALS['refback_percents'][$userid][$ref] = '0';
 
                // Get percents from database
-               $result = SQL_QUERY_ESC("SELECT `refback` FROM `{?_MYSQL_PREFIX?}_user_refs` WHERE `userid`=%s AND `refid`=%s LIMIT 1",
+               $result = SQL_QUERY_ESC("SELECT `refback_percents` FROM `{?_MYSQL_PREFIX?}_user_refs` WHERE `userid`=%s AND `refid`=%s LIMIT 1",
                        array($ref, $userid), __FUNCTION__, __LINE__);
 
                // Entry found? (Should be!)
@@ -170,7 +170,8 @@ function getArrayFromRefbackLevel ($refid, $level) {
 FROM
        `{?_MYSQL_PREFIX?}_user_refs`
 WHERE
-       `refid`=%s AND `level`=%s
+       `refid`=%s AND
+       `level`=%s
 ORDER BY
        `userid` ASC",
                array($refid, $level), __FUNCTION__, __LINE__);
@@ -193,163 +194,6 @@ ORDER BY
        return $userIds;
 }
 
-// Update "refback table"
-function updateRefbackTable ($userid) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - ENTERED!');
-       // Load all referals
-       loadRefbackTable($userid);
-
-       // Add missing level > 1
-       addMissingRefbackLevels($userid);
-
-       // The last step is to flush all userid's entries to the database
-       flushRefbackTableToDatabase($userid);
-
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
-}
-
-// Loads all referals for given userid
-function loadRefbackTable ($userid) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - ENTERED!');
-       // Init array
-       $GLOBALS['refback_refid'][$userid] = array();
-
-       // Get all level entries from the refsystem table
-       $result = SQL_QUERY_ESC('SELECT `level` FROM `{?_MYSQL_PREFIX?}_refsystem` WHERE `userid`=%s ORDER BY `level` ASC',
-               array($userid), __FUNCTION__, __LINE__);
-
-       // Do we have entries?
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',SQL_NUMROWS()=' . SQL_NUMROWS($result));
-       if (SQL_NUMROWS($result) > 0) {
-               // Then walk through all levels
-               while (list($level) = SQL_FETCHROW($result)) {
-                       // Init array
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level);
-                       $GLOBALS['refback_refid'][$userid][$level] = array();
-
-                       // Level is = 1?
-                       if ($level == 1) {
-                               // Load all referals of this user
-                               $result_refs = SQL_QUERY_ESC('SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `refid`=%s ORDER BY `userid` ASC',
-                                       array($userid), __FUNCTION__, __LINE__);
-
-                               // Do we have entries?
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',SQL_NUMROWS()=' . SQL_NUMROWS($result_refs));
-                               if (SQL_NUMROWS($result_refs) > 0) {
-                                       // Then again walk through all
-                                       while (list($refid) = SQL_FETCHROW($result_refs)) {
-                                               // Add this refid
-                                               $GLOBALS['refback_refid'][$userid][$level][] = $refid;
-                                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . $refid);
-                                               // Load the refid's array as well
-                                               loadRefbackTable($refid);
-                                       } // END - while
-                               } // END - if
-
-                               // Free result
-                               SQL_FREERESULT($result_refs);
-                       } // END - if
-               } // END - while
-       } // END - if
-
-       // Free result
-       SQL_FREERESULT($result);
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
-}
-
-// Adds missing refback levels to the array
-function addMissingRefbackLevels ($userid) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - ENTERED!');
-       // If the array is gone, you have called this function without calling loadRefbackTable()
-       if (!isset($GLOBALS['refback_refid'][$userid])) {
-               // Please fix your code
-               debug_report_bug(__FUNCTION__, __LINE__, 'Called without calling loadRefbackTable() before! userid=' . $userid);
-       } // END - if
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',count()=' . count($GLOBALS['refback_refid'][$userid]));
-
-       // Now walk through the array, first levels
-       foreach ($GLOBALS['refback_refid'][$userid] as $level=>$levelArray) {
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',count()=' . count($levelArray));
-               // Next are the users
-               foreach ($levelArray as $refid) {
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . $refid);
-                       // Does the refid have an array?
-                       if (isset($GLOBALS['refback_refid'][$refid])) {
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . $refid . ',count()=' . count($GLOBALS['refback_refid'][$refid]));
-                               // Okay, then walk through here, too
-                               foreach ($GLOBALS['refback_refid'][$refid] as $refLevel=>$refArray) {
-                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . $refid . ',refLevel=' . $refLevel . ',count()=' . count($refArray));
-                                       // Also walk through this one
-                                       foreach ($refArray as $refRefid) {
-                                               // Calculate new level
-                                               $newLevel =  $level + $refLevel;
-                                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . $refid . ',refLevel=' . $refLevel . ',refRefid=' . $refRefid . ',newLevel=' . $newLevel);
-                                               // Is the refRefid not in?
-                                               if ((!isset($GLOBALS['refback_refid'][$userid][$newLevel])) || (!in_array($refRefid, $GLOBALS['refback_refid'][$userid][$newLevel]))) {
-                                                       // Then we must add this ref's refid to the userid's next level
-                                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',newLevel=' . $newLevel . ',refRefid=' . $refRefid . ' - ADDED!');
-                                                       $GLOBALS['refback_refid'][$userid][$newLevel][] = $refRefid;
-                                               } // END - if
-                                       } // END - foreach
-                               } // END - foreach
-                       } // END - foreach
-               } // END - foreach
-       } // END - foreach
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
-}
-
-// Flush all entries for given userid to database
-function flushRefbackTableToDatabase ($userid) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - ENTERED!');
-       // If the array is gone, you have called this function without calling loadRefbackTable()
-       if (!isset($GLOBALS['refback_refid'][$userid])) {
-               // Please fix your code
-               debug_report_bug(__FUNCTION__, __LINE__, 'Called without calling loadRefbackTable() before! userid=' . $userid);
-       } // END - if
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',count()=' . count($GLOBALS['refback_refid'][$userid]));
-
-       // If no entries are there, skip this whole step
-       if (count($GLOBALS['refback_refid'][$userid]) == 0) {
-               // No entries found
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - ABORTING...');
-               return;
-       } // END - if
-
-       // Prepare SQL
-       $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_user_refs` (`userid`,`level`,`refid`) VALUES ';
-
-       // Now walk through the array, first levels
-       foreach ($GLOBALS['refback_refid'][$userid] as $level=>$levelArray) {
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',count()=' . count($levelArray));
-               // Next are the users
-               foreach ($levelArray as $refid) {
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . $refid);
-                       // Query the user_refs table
-                       list($count) = SQL_FETCHROW(SQL_QUERY_ESC('SELECT COUNT(`id`) AS `count` FROM `{?_MYSQL_PREFIX?}_user_refs` WHERE `userid`=%s AND `level`=%s AND `refid`=%s LIMIT 1',
-                               array(
-                                       $userid,
-                                       $level,
-                                       $refid
-                               ), __FUNCTION__, __LINE__));
-
-                       // Do we have no entry?
-                       if ($count == 0) {
-                               // Then add it to the SQL
-                               $SQL .= '(' . $userid . ',' . $level . ',' . $refid . '),';
-                       } // END - if
-               } // END - foreach
-       } // END - foreach
-
-       // Remove last comma from SQL
-       $SQL = substr($SQL, 0, -1);
-
-       // And run it
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',SQL=' . $SQL);
-       SQL_QUERY($SQL, __FUNCTION__, __LINE__);
-
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
-}
-
 // "Getter" for array for user refs in given level
 function getArrayFromRefbackUserRefs ($userid, $level) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ' - ENTERED!');
@@ -360,8 +204,8 @@ function getArrayFromRefbackUserRefs ($userid, $level) {
        $result = SQL_QUERY_ESC("SELECT
        r.`id`,
        r.`refid`,
-       r.`refback`,
-       r.`points`,
+       r.`refback_percents`,
+       r.`refback_points`,
        d.`status`,
        d.`joined`,
        d.`mails_confirmed`,
@@ -416,7 +260,7 @@ function getArrayFromUserRefbackData ($id) {
        $id = bigintval($id);
 
        // Get entry from database
-       $result = SQL_QUERY_ESC("SELECT `id`, `userid`, `refid`, `refback`, `level`, `points` FROM `{?_MYSQL_PREFIX?}_user_refs` WHERE `id`=%s AND `userid`=%s LIMIT 1",
+       $result = SQL_QUERY_ESC("SELECT `id`, `userid`, `refid`, `refback_percents`, `level`, `refback_points` FROM `{?_MYSQL_PREFIX?}_user_refs` WHERE `id`=%s AND `userid`=%s LIMIT 1",
                array($id, getMemberId()), __FUNCTION__, __LINE__);
 
        // Is there an entry?
@@ -469,7 +313,11 @@ function updateMemberRefbackPercents ($id, $percents) {
 
        // Update entry
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_refs` SET `refback`='%s' WHERE `id`=%s AND `userid`=%s LIMIT 1",
-               array($percents, $id, getMemberId()), __FUNCTION__, __LINE__);
+               array(
+                       $percents,
+                       $id,
+                       getMemberId()
+               ), __FUNCTION__, __LINE__);
 
        // Entry updated?
        if (SQL_HASZEROAFFECTED()) {
@@ -479,7 +327,7 @@ function updateMemberRefbackPercents ($id, $percents) {
        } // END - if
 
        // Prepare email content
-       $dummy['percents'] = $percents;
+       $dummy['refback_percents'] = $percents;
 
        // Load member email template
        $mail = loadEmailTemplate('member_refback', $dummy, $dummy['refid']);