+// Generator (somewhat getter) for points_data, locked_mode
+function generatePointsLockedModeOptions ($lockedMode = NULL) {
+ // Is this cached?
+ if (!isset($GLOBALS[__FUNCTION__][$lockedMode])) {
+ // Generate output and cache it
+ $GLOBALS[__FUNCTION__][$lockedMode] = generateOptions(
+ '/ARRAY/',
+ array(
+ 'LOCKED',
+ 'UNLOCKED'
+ ),
+ array(),
+ $lockedMode,
+ '', '',
+ array(),
+ 'translatePointsLockedMode'
+ );
+ } // END - if
+
+ // Return content
+ return $GLOBALS[__FUNCTION__][$lockedMode];
+}
+
+// Generator (somewhat getter) for points_data, payment_method
+function generatePointsPaymentMethodOptions ($paymentMethod = NULL) {
+ // Is this cached?
+ if (!isset($GLOBALS[__FUNCTION__][$paymentMethod])) {
+ // Generate output and cache it
+ $GLOBALS[__FUNCTION__][$paymentMethod] = generateOptions(
+ '/ARRAY/',
+ array(
+ 'DIRECT',
+ 'REFERRAL'
+ ),
+ array(),
+ $paymentMethod,
+ '', '',
+ array(),
+ 'translatePointsPaymentMethod'
+ );
+ } // END - if
+
+ // Return content
+ return $GLOBALS[__FUNCTION__][$paymentMethod];
+}
+
+// Generator (somewhat getter) for points_data, notify_recipient
+function generatePointsNotifyRecipientOptions ($notifyRecipient = NULL) {
+ // Is this cached?
+ if (!isset($GLOBALS[__FUNCTION__][$notifyRecipient])) {
+ // Generate output and cache it
+ $GLOBALS[__FUNCTION__][$notifyRecipient] = generateOptions(
+ '/ARRAY/',
+ array(
+ 'Y',
+ 'N'
+ ),
+ array(),
+ $notifyRecipient,
+ '', '',
+ array(),
+ 'translatePointsNotifyRecipient'
+ );
+ } // END - if
+
+ // Return content
+ return $GLOBALS[__FUNCTION__][$notifyRecipient];
+}
+
+// Setter for referral id (no bigintval, or nicknames will fail!)
+function setReferralId ($refid) {
+ $GLOBALS['__refid'] = $refid;
+}
+
+// Checks if 'refid' is valid
+function isValidReferralId () {
+ return ((isset($GLOBALS['__refid'])) && (isValidId(getReferralId())));
+}
+
+// Getter for referral id
+function getReferralId () {
+ return $GLOBALS['__refid'];
+}
+
+// Determines referral id and sets it
+function determineReferralId () {
+ // Is it already detected?
+ if (isValidReferralId()) {
+ // 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 (isValidReferralId()) {
+ // 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(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(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')) && (isValidId(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')) && (isValidId(getDefRefid()))) {
+ // Set default refid as refid in URL
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using default refid (' . getDefRefid() . ')');
+ setReferralId(getDefRefid());
+ } else {
+ // 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')) || (!isValidId(getReferralId())) || ((!isValidId(getSession('refid'))) && (isExtensionInstalledAndNewer('sql_patches', '0.1.2')) && (isValidId(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 (isValidId(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 ((!isValidReferralId()) || (!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();
+}
+