X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Freferral-functions.php;h=267fd279638bd8556924cf3df6a1b5e4f733f66c;hb=dc34f7a02db42331e2d521684d0852b04e677eb7;hp=26700a53061e710b70659489379f8742bb51b0d5;hpb=596c8ab32594401ca84abfbfe35513ddfff31bec;p=mailer.git diff --git a/inc/referral-functions.php b/inc/referral-functions.php index 26700a5306..267fd27963 100644 --- a/inc/referral-functions.php +++ b/inc/referral-functions.php @@ -100,7 +100,7 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU $sendNotify = isPaymentRecipientNotificationEnabled($subject); // When $userid is NULL add points to jackpot - if ((!isValidUserId($userid)) && ($paymentMethod == 'DIRECT') && (isExtensionActive('jackpot'))) { + if ((!isValidId($userid)) && ($paymentMethod == 'DIRECT') && (isExtensionActive('jackpot'))) { // Add points to jackpot only in DIRECT mode return addPointsToJackpot($points); } // END - if @@ -128,7 +128,7 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU // Pay refback here if level > 0 and in ref-mode //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',points=' . $points . ',paymentMethod=' . $paymentMethod); - if (($userid != $refid) && (substr($subject, 0, 8) != 'refback:') &&($paymentMethod == 'REFERRAL') && (isValidUserId(getUserData('refid'))) && (isExtensionActive('refback'))) { + if (($userid != $refid) && (substr($subject, 0, 8) != 'refback:') &&($paymentMethod == 'REFERRAL') && (isValidId(getUserData('refid'))) && (isExtensionActive('refback'))) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',ref_points=' . $ref_points . ',depth=' . convertNullToZero($GLOBALS['ref_level']) . ' - BEFORE!'); $ref_points = addRefbackPoints($userid, getUserData('refid'), $points, $ref_points); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',ref_points=' . $ref_points . ',depth=' . convertNullToZero($GLOBALS['ref_level']) . ' - AFTER!'); @@ -277,7 +277,7 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU // Maybe there's another ref? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'points=' . $points . ',refid(var|data)=' . convertNullToZero($refid) . '|' . convertNullToZero(getUserData('refid')) . ',userid=' . $userid . ',paymentMethod=' . $paymentMethod . ',subject=' . $subject . ',ref_level=' . $GLOBALS['ref_level']); - if ((isValidUserId(getUserData('refid'))) && ($points > 0) && (getUserData('refid') != $userid) && ($paymentMethod == 'REFERRAL')) { + if ((isValidId(getUserData('refid'))) && ($points > 0) && (getUserData('refid') != $userid) && ($paymentMethod == 'REFERRAL')) { // Is _ref there? if (substr($subject, -4, 4) == '_ref') { // Then remove it, no double _ref suffix! @@ -299,62 +299,62 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU function updateReferralCounter ($userid) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - ENTERED!'); // Init referral id - $ref = NULL; + $refid = NULL; // Check for his referral if (fetchUserData($userid)) { // Get it - $ref = getUserData('refid'); - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',ref=' . convertZeroToNull($ref) . ' - FETCHED!'); + $refid = getUserData('refid'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . convertZeroToNull($refid) . ' - FETCHED!'); } // END - if // Init entries if (empty($GLOBALS['cache_array']['ref_level'][$userid])) { $GLOBALS['cache_array']['ref_level'][$userid] = NULL; } // END - if - if (empty($GLOBALS['cache_array']['ref_level'][$ref])) { - $GLOBALS['cache_array']['ref_level'][$ref] = NULL; + if (empty($GLOBALS['cache_array']['ref_level'][$refid])) { + $GLOBALS['cache_array']['ref_level'][$refid] = NULL; } // END - if - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',ref=' . convertZeroToNull($ref)); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . convertZeroToNull($refid)); // When he has a referral... - if (($ref > 0) && ($ref != $userid)) { + if ((isValidId($refid)) && ($refid != $userid)) { // Move to next referral level and count his counter one up - $GLOBALS['cache_array']['ref_level'][$ref] = $GLOBALS['cache_array']['ref_level'][$userid] + 1; - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',ref(' . $ref . ')=' . $GLOBALS['cache_array']['ref_level'][$ref] . ' - ADVANCED!'); + $GLOBALS['cache_array']['ref_level'][$refid] = $GLOBALS['cache_array']['ref_level'][$userid] + 1; + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid(' . $refid . ')=' . $GLOBALS['cache_array']['ref_level'][$refid] . ' - ADVANCED!'); // Update counter SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_refsystem` SET `counter`=`counter`+1 WHERE `userid`=%s AND `level`=%s LIMIT 1", array( - bigintval($ref), - bigintval($GLOBALS['cache_array']['ref_level'][$ref]) + bigintval($refid), + bigintval($GLOBALS['cache_array']['ref_level'][$refid]) ), __FUNCTION__, __LINE__); // When no entry was updated then we have to create it here - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ref=' . $ref . ',level=' . $GLOBALS['cache_array']['ref_level'][$ref] . ',updated=' . SQL_AFFECTEDROWS()); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . $refid . ',level=' . $GLOBALS['cache_array']['ref_level'][$refid] . ',updated=' . SQL_AFFECTEDROWS()); if (SQL_HASZEROAFFECTED()) { // First count! SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_refsystem` (`userid`, `level`, `counter`) VALUES (%s,%s,1)", array( - bigintval($ref), - convertZeroToNull($GLOBALS['cache_array']['ref_level'][$ref]) + bigintval($refid), + convertZeroToNull($GLOBALS['cache_array']['ref_level'][$refid]) ), __FUNCTION__, __LINE__); - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ref=' . $ref . ',level=' . $GLOBALS['cache_array']['ref_level'][$ref] . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS()); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . $refid . ',level=' . $GLOBALS['cache_array']['ref_level'][$refid] . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS()); } // END - if // Advance to next level - updateReferralCounter($ref); - } elseif ((($ref == $userid) || ($ref == '0')) && (isExtensionInstalledAndNewer('cache', '0.1.2'))) { + updateReferralCounter($refid); + } elseif ((($refid == $userid) || (!isValidId($refid))) && (isExtensionInstalledAndNewer('cache', '0.1.2'))) { // Remove cache here - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ref=' . convertZeroToNull($ref) . ' - CACHE!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . convertZeroToNull($refid) . ' - CACHE!'); rebuildCache('refsystem', 'refsystem'); } // Update the referral table updateReferralTable($userid); - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',ref=' . convertZeroToNull($ref) . ',level=' . convertZeroToNull($GLOBALS['cache_array']['ref_level'][$ref]) . ' - EXIT!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . convertZeroToNull($refid) . ',level=' . convertZeroToNull($GLOBALS['cache_array']['ref_level'][$refid]) . ' - EXIT!'); } // Subtract points from database and mediadata cache @@ -372,6 +372,7 @@ function subtractPoints ($subject, $userid, $points) { 'userid' => $userid, 'points' => $points, 'points_mode' => 'sub', + 'column' => 'used_points', 'added' => (!SQL_HASZEROAFFECTED()) ); @@ -389,29 +390,29 @@ function getUserReferralPoints ($userid, $level) { // Get refs from database $result = SQL_QUERY_ESC('SELECT - ur.`id`, - ur.`refid`, - ud.`status`, - ud.`last_online`, - ud.`mails_confirmed`, - ud.`emails_received`, - ud.`subid` + `ur`.`id`, + `ur`.`refid`, + `ud`.`status`, + `ud`.`last_online`, + `ud`.`mails_confirmed`, + `ud`.`emails_received`, + `ud`.`subid` FROM `{?_MYSQL_PREFIX?}_user_refs` AS `ur` LEFT JOIN `{?_MYSQL_PREFIX?}_user_points` AS `up` ON - ur.`refid`=up.`userid` AND - (ur.`level`=0 OR ur.`level` IS NULL) + `ur`.`refid`=`up`.`userid` AND + (`ur`.`level`=0 OR `ur`.`level` IS NULL) LEFT JOIN `{?_MYSQL_PREFIX?}_user_data` AS `ud` ON - ur.`refid`=ud.`userid` + `ur`.`refid`=`ud`.`userid` WHERE - ur.`userid`=%s AND - ur.`level`=%s + `ur`.`userid`=%s AND + `ur`.`level`=%s ORDER BY - ur.`refid` ASC', + `ur`.`refid` ASC', array( bigintval($userid), bigintval($level) @@ -650,7 +651,7 @@ function addMissingReferralLevels ($userid) { // Also walk through this one foreach ($refArray as $refRefid) { // Calculate new level - $newLevel = $level + $refLevel; + $newLevel = $level + $refLevel; //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . convertNullToZero($refid) . ',refLevel=' . $refLevel . ',refRefid=' . $refRefid . ',newLevel=' . $newLevel); // Is the refRefid not in? if ((!isset($GLOBALS['referral_refid'][$userid][$newLevel])) || (!in_array($refRefid, $GLOBALS['referral_refid'][$userid][$newLevel]))) { @@ -698,12 +699,7 @@ function flushReferralTableToDatabase ($userid) { 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__)); + $count = countSumTotalData(bigintval($userid), 'user_refs', 'id', 'userid', TRUE, ' AND `level`=' . bigintval($level) . ' AND `refid`=' . bigintval($refid)); // Is there no entry? if ($count == 0) { @@ -729,7 +725,7 @@ function flushReferralTableToDatabase ($userid) { } // Generator (somewhat getter) for points_data, locked_mode -function generatePointsLockedModeOptions ($lockedMode = NULL) { +function generatePointsLockedModeOptions ($lockedMode = NULL) { // Is this cached? if (!isset($GLOBALS[__FUNCTION__][$lockedMode])) { // Generate output and cache it @@ -752,7 +748,7 @@ function generatePointsLockedModeOptions ($lockedMode = NULL) { } // Generator (somewhat getter) for points_data, payment_method -function generatePointsPaymentMethodOptions ($paymentMethod = NULL) { +function generatePointsPaymentMethodOptions ($paymentMethod = NULL) { // Is this cached? if (!isset($GLOBALS[__FUNCTION__][$paymentMethod])) { // Generate output and cache it @@ -775,7 +771,7 @@ function generatePointsPaymentMethodOptions ($paymentMethod = NULL) { } // Generator (somewhat getter) for points_data, notify_recipient -function generatePointsNotifyRecipientOptions ($notifyRecipient = NULL) { +function generatePointsNotifyRecipientOptions ($notifyRecipient = NULL) { // Is this cached? if (!isset($GLOBALS[__FUNCTION__][$notifyRecipient])) { // Generate output and cache it @@ -834,16 +830,16 @@ function determineReferralId () { } elseif (isGetRequestElementSet('refid')) { // Get referral id from GET parameter refid //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from GET data (' . getRequestElement('refid') . ')'); - setReferralId(secureString(getRequestElement('refid'))); + setReferralId(getRequestElement('refid')); } elseif (isGetRequestElementSet('ref')) { // Set refid=ref (the referral link uses such variable) //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using ref from GET data (' . getRequestElement('ref') . ')'); - setReferralId(secureString(getRequestElement('ref'))); + setReferralId(getRequestElement('ref')); } elseif ((isGetRequestElementSet('user')) && (basename($_SERVER['PHP_SELF']) == 'click.php')) { // The variable user comes from click.php //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using user from GET data (' . getRequestElement('user') . ')'); setReferralId(bigintval(getRequestElement('user'))); - } elseif ((isSessionVariableSet('refid')) && (isValidUserId(getSession('refid')))) { + } elseif ((isSessionVariableSet('refid')) && (isValidId(getSession('refid')))) { // Set session refid as global //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from SESSION data (' . getSession('refid') . ')'); setReferralId(bigintval(getSession('refid'))); @@ -851,18 +847,18 @@ function determineReferralId () { // Select a random user which has confirmed enougth mails //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Checking random referral id'); setReferralId(determineRandomReferralId()); - } elseif ((isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidUserId(getDefRefid()))) { + } elseif ((isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidId(getDefRefid()))) { // Set default refid as refid in URL //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using default refid (' . getDefRefid() . ')'); setReferralId(getDefRefid()); } else { - // No default id when sql_patches is not installed or none set + // No default id when ext-sql_patches is not installed or none set //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using NULL as refid'); setReferralId(NULL); } // Set cookie when default refid > 0 - if ((!isSessionVariableSet('refid')) || (!isValidUserId(getReferralId())) || ((!isValidUserId(getSession('refid'))) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidUserId(getDefRefid())))) { + if ((!isSessionVariableSet('refid')) || (!isValidId(getReferralId())) || ((!isValidId(getSession('refid'))) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidId(getDefRefid())))) { // Default is not found $found = FALSE; @@ -877,7 +873,7 @@ function determineReferralId () { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from user account by nickname (' . getUserData('userid') . ')'); setReferralId(getUserData('userid')); } // END - if - } elseif (isValidUserId(getReferralId())) { + } elseif (isValidId(getReferralId())) { // Direct userid entered //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using direct userid (' . getReferralId() . ')'); $found = fetchUserData(getReferralId());