]> git.mxchange.org Git - mailer.git/blobdiff - inc/referral-functions.php
Extension ext-user for sub id tracking continued:
[mailer.git] / inc / referral-functions.php
index 6078e378fa309f9a80c15a0ec5968dc2a60aa8cd..0d3f523306c1ffe685776a698e05bb2d253bac5a 100644 (file)
@@ -52,7 +52,7 @@ function getReferralLevelPercents ($level) {
        // Default is zero
        $data['percents'] = '0';
 
-       // Do we have cache?
+       // Is there cache?
        if ((isset($GLOBALS['cache_array']['refdepths']['level'])) && (isExtensionActive('cache'))) {
                // First look for level
                $key = array_search($level, $GLOBALS['cache_array']['refdepths']['level']);
@@ -83,7 +83,7 @@ function getReferralLevelPercents ($level) {
 }
 
 /**
- * Dynamic referral and points system, can also send mails!
+ * Dynamic Referral and points system, can also send mails!
  *
  * subject       = Subject line, write in lower-case letters and underscore is allowed
  * userid        = Referral id wich should receive...
@@ -222,7 +222,7 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU
                                $message = loadEmailTemplate('guest_user_confirmed_referral', $content, bigintval($userid));
 
                                // Send email
-                               sendEmail($userid, '{--THANX_REFERRAL_ONE_SUBJECT--}', $message);
+                               sendEmail($userid, '{--THANKS_REFERRAL_ONE_SUBJECT--}', $message);
                        } // END - if
 
                        // Points updated, maybe I shall send him an email?
@@ -262,7 +262,7 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU
                                );
                        } // END - if
 
-                       // Increase referral level, if payment method is REFERRAL
+                       // Increase referral level, if payment method is 'REFERRAL'
                        if ($paymentMethod == 'REFERRAL') {
                                // Increase it
                                $GLOBALS['ref_level']++;
@@ -478,7 +478,7 @@ function getPointsDataArrayFromSubject ($subject) {
        $result = SQL_QUERY_ESC("SELECT `id`,`subject`,`column_name`,`locked_mode`,`payment_method`,`notify_recipient` FROM `{?_MYSQL_PREFIX?}_points_data` WHERE `subject`='%s' LIMIT 1",
                array($subject), __FUNCTION__, __LINE__);
 
-       // Do we have an entry?
+       // Is there an entry?
        if (SQL_NUMROWS($result) == 1) {
                // Then load it
                $pointsData = SQL_FETCHARRAY($result);
@@ -573,7 +573,7 @@ function loadReferralTable ($userid) {
        $GLOBALS['referral_result'][$userid] = SQL_QUERY_ESC('SELECT `level` FROM `{?_MYSQL_PREFIX?}_refsystem` WHERE `userid`=%s ORDER BY `level` ASC',
                array($userid), __FUNCTION__, __LINE__);
 
-       // Do we have entries?
+       // Are there entries?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',SQL_NUMROWS()=' . SQL_NUMROWS($GLOBALS['referral_result'][$userid]));
        if (SQL_NUMROWS($GLOBALS['referral_result'][$userid]) > 0) {
                // Then walk through all levels
@@ -588,7 +588,7 @@ function loadReferralTable ($userid) {
                                $GLOBALS['referral_result_refs'][$userid] = 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?
+                               // Are there entries?
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',SQL_NUMROWS()=' . SQL_NUMROWS($GLOBALS['referral_result_refs'][$userid]));
                                if (SQL_NUMROWS($GLOBALS['referral_result_refs'][$userid]) > 0) {
                                        // Then again walk through all
@@ -699,7 +699,7 @@ function flushReferralTableToDatabase ($userid) {
                                        $refid
                                ), __FUNCTION__, __LINE__));
 
-                       // Do we have no entry?
+                       // Is there no entry?
                        if ($count == 0) {
                                // Then add it to the SQL
                                $SQL .= '(' . $userid . ',' . $level . ',' . $refid . '),';
@@ -806,5 +806,104 @@ function getReferralId () {
        return $GLOBALS['__refid'];
 }
 
+// Determines referral id and sets it
+function determineReferralId () {
+       // Is it already detected?
+       if (isReferralIdValid()) {
+               // Do not determine it, just return it
+               return getReferralId();
+       } elseif ((!isHtmlOutputMode()) && (basename($_SERVER['PHP_SELF']) != 'ref.php')) {
+               // Skip this in non-html-mode and outside ref.php
+               return false;
+       }
+
+       // Check if refid is set
+       if (isReferralIdValid()) {
+               // This is fine...
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from GLOBALS (' . getReferralId() . ')');
+       } elseif (isPostRequestElementSet('refid')) {
+               // Get referral id from POST element refid
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from POST data (' . postRequestElement('refid') . ')');
+               setReferralId(secureString(postRequestElement('refid')));
+       } 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')));
+       } 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')));
+       } 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')))) {
+               // Set session refid as global
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from SESSION data (' . getSession('refid') . ')');
+               setReferralId(bigintval(getSession('refid')));
+       } elseif ((isExtensionInstalledAndNewer('user', '0.3.4')) && (isRandomReferralIdEnabled())) {
+               // 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()))) {
+               // 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
+               //* 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())))) {
+               // Default is not found
+               $found = false;
+
+               // Is there nickname or userid set?
+               if ((isExtensionActive('nickname')) && (isNicknameUsed(getReferralId()))) {
+                       // Nickname in URL, so load the id
+                       $found = fetchUserData(getReferralId(), 'nickname');
+
+                       // If we found it, use the userid as referral id
+                       if ($found === true) {
+                               // Set the userid as 'refid'
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from user account by nickname (' . getUserData('userid') . ')');
+                               setReferralId(getUserData('userid'));
+                       } // END - if
+               } elseif (isValidUserId(getReferralId())) {
+                       // Direct userid entered
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using direct userid (' . getReferralId() . ')');
+                       $found = fetchUserData(getReferralId());
+               }
+
+               // Is the record valid?
+               if ((($found === false) || (!isUserDataValid())) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2'))) {
+                       // No, then reset referral id
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using default refid (' . getDefRefid() . ')');
+                       setReferralId(getDefRefid());
+               } // END - if
+
+               // Set cookie
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Saving refid to session (' . getReferralId() . ') #1');
+               setSession('refid', getReferralId());
+       } elseif ((!isReferralIdValid()) || (!fetchUserData(getReferralId()))) {
+               // Not valid!
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Not valid referral id (' . getReferralId() . '), setting NULL in session');
+               setReferralId(NULL);
+               setSession('refid', NULL);
+       } else {
+               // Set it from GLOBALS array in session
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Saving refid to session (' . getReferralId() . ') #2');
+               setSession('refid', getReferralId());
+       }
+
+       // Run post validation filter chain
+       runFilterChain('post_refid_validation');
+
+       // Return determined refid
+       return getReferralId();
+}
+
 // [EOF]
 ?>