// 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']);
}
/**
- * 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...
$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?
);
} // 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']++;
$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);
$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
$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
$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 . '),';
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]
?>