]> git.mxchange.org Git - mailer.git/blobdiff - inc/referral-functions.php
Rewrote some 'manual' cache rebuilding to use rebuildCache()
[mailer.git] / inc / referral-functions.php
index 6078e378fa309f9a80c15a0ec5968dc2a60aa8cd..667a25e0d4725677bc84bd09f0a38c5e6f548569 100644 (file)
@@ -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']++;
@@ -806,5 +806,103 @@ function getReferralId () {
        return $GLOBALS['__refid'];
 }
 
+// Determines referral id and sets it
+function determineReferralId () {
+       // Do we have it already detected?
+       if (isReferralIdValid()) {
+               // Do not determine it, just return it
+               return getReferralId();
+       } // END - if
+
+       // Skip this in non-html-mode and outside ref.php
+       if ((!isHtmlOutputMode()) && (basename($_SERVER['PHP_SELF']) != 'ref.php')) {
+               return false;
+       } // END - if
+
+       // 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('refid') . ')');
+               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;
+
+               // Do we have 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());
+       }
+
+       // Return determined refid
+       return getReferralId();
+}
+
 // [EOF]
 ?>