* -------------------------------------------------------------------- *
* Kurzbeschreibung : Alle zum Referral-System gehoerenden Funktionen *
* -------------------------------------------------------------------- *
- * $Revision:: $ *
- * $Date:: $ *
- * $Tag:: 0.2.1-FINAL $ *
- * $Author:: $ *
- * -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2013 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2016 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
bigintval($GLOBALS['ref_level'])
), __FUNCTION__, __LINE__);
}
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pointsColumn='.$pointsColumn.',ref_points='.$ref_points.',userid='.$userid.',depth='.convertNullToZero($GLOBALS['ref_level']).',mode='.$paymentMethod.' - UPDATE! ('.SQL_AFFECTEDROWS().')');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pointsColumn='.$pointsColumn.',ref_points='.$ref_points.',userid='.$userid.',depth='.convertNullToZero($GLOBALS['ref_level']).',mode='.$paymentMethod.' - UPDATE! ('.sqlAffectedRows().')');
// No entry updated?
if (ifSqlHasZeroAffectedRows()) {
convertZeroToNull($GLOBALS['ref_level']),
$ref_points
), __FUNCTION__, __LINE__);
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'data='.$pointsColumn.',ref_points='.$ref_points.',userid='.$userid.',depth='.convertNullToZero($GLOBALS['ref_level']).',mode='.$paymentMethod.' - INSERTED! ('.SQL_AFFECTEDROWS().')');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'data='.$pointsColumn.',ref_points='.$ref_points.',userid='.$userid.',depth='.convertNullToZero($GLOBALS['ref_level']).',mode='.$paymentMethod.' - INSERTED! ('.sqlAffectedRows().')');
} // END - if
// Check affected rows
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . $refid . ',paymentMethod=' . $paymentMethod . ',sendNotify=' . intval($sendNotify) . ',isLocked=' . intval($isLocked));
// Send "referral confirmed" mails out?
- if ((isValidUserid($refid)) && ($refid != $userid) && ($sendNotify === TRUE)) {
+ if ((isValidId($refid)) && ($refid != $userid) && ($sendNotify === TRUE)) {
// Calculate the referral's points and percents
$percentsReferral = getReferralLevelPercents($GLOBALS['ref_level'] + 1);
//* 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 (($paymentMethod == 'REFERRAL') && (isValidId(getUserData('refid'))) && ($points > 0) && (getUserData('refid') != $userid)) {
// Is _ref there?
- if (substr($subject, -4, 4) == '_ref') {
+ if (ifSubjectHasReferralSuffix($subject)) {
// Then remove it, no double _ref suffix!
$subject = substr($subject, 0, -4);
} // END - if
// Then let's credit him here...
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',points=' . $points . ',ref_points=' . $ref_points . ',added[' . gettype($added) . ']=' . intval($added) . ',ref_level=' . $GLOBALS['ref_level'] . ' - ADVANCE!');
- $added = ($added && addPointsThroughReferralSystem(sprintf("%s_ref:%s", $subject, $GLOBALS['ref_level']), getUserData('refid'), $points, getFetchedUserData('userid', getUserData('refid'), 'refid')));
+ $added = ($added && addPointsThroughReferralSystem(sprintf('%s_ref:%s', $subject, $GLOBALS['ref_level']), getUserData('refid'), $points, getFetchedUserData('userid', getUserData('refid'), 'refid')));
} // END - if
} // END - if
} // END - if
), __FUNCTION__, __LINE__);
// When no entry was updated then we have to create it here
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . $refid . ',level=' . $GLOBALS['cache_array']['ref_level'][$refid] . ',updated=' . SQL_AFFECTEDROWS());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . $refid . ',level=' . $GLOBALS['cache_array']['ref_level'][$refid] . ',updated=' . sqlAffectedRows());
if (ifSqlHasZeroAffectedRows()) {
// First count!
sqlQueryEscaped("INSERT INTO `{?_MYSQL_PREFIX?}_refsystem` (`userid`, `level`, `counter`) VALUES (%s,%s,1)",
bigintval($refid),
convertZeroToNull($GLOBALS['cache_array']['ref_level'][$refid])
), __FUNCTION__, __LINE__);
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . $refid . ',level=' . $GLOBALS['cache_array']['ref_level'][$refid] . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . $refid . ',level=' . $GLOBALS['cache_array']['ref_level'][$refid] . ',sqlAffectedRows()=' . sqlAffectedRows());
} // END - if
// Advance to next level
), __FUNCTION__, __LINE__);
// Are there some entries?
- if (!ifSqlHasZeroNums($result)) {
+ if (!ifSqlHasZeroNumRows($result)) {
// Fetch all entries
while ($row = sqlFetchArray($result)) {
// Init click rate with zero
- $row['click_rate'] = '0';
-
- // Is at least one mail received?
- if ($row['emails_received'] > 0) {
- // Calculate click rate
- $row['click_rate'] = ($row['mails_confirmed'] / $row['emails_received'] * 100);
- } // END - if
+ $row['click_rate'] = calculatePercentageRate($row['mails_confirmed'], $row['emails_received']);
// Activity is 'active' by default because if ext-autopurge is not installed
$row['activity'] = '{--MEMBER_ACTIVITY_ACTIVE--}';
} // END - if
// Now checkout the entry in database table
- $result = sqlQueryEscaped("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__);
+ $result = sqlQueryEscaped("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__
+ );
// Is there an entry?
if (sqlNumRows($result) == 1) {
array($userid), __FUNCTION__, __LINE__);
// Are there entries?
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',SQL_NUMROWS()=' . SQL_NUMROWS($GLOBALS['referral_result'][$userid]));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',sqlNumRows()=' . sqlNumRows($GLOBALS['referral_result'][$userid]));
if (sqlNumRows($GLOBALS['referral_result'][$userid]) > 0) {
// Then walk through all levels
while (list($level) = sqlFetchRow($GLOBALS['referral_result'][$userid])) {
array($userid), __FUNCTION__, __LINE__);
// Are there entries?
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',SQL_NUMROWS()=' . SQL_NUMROWS($GLOBALS['referral_result_refs'][$userid]));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',sqlNumRows()=' . sqlNumRows($GLOBALS['referral_result_refs'][$userid]));
if (sqlNumRows($GLOBALS['referral_result_refs'][$userid]) > 0) {
// Then again walk through all
while (list($refid) = sqlFetchRow($GLOBALS['referral_result_refs'][$userid])) {
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',count()=' . count($GLOBALS['referral_refid'][$userid]));
// If no entries are there, skip this whole step
- if (count($GLOBALS['referral_refid'][$userid]) == 0) {
+ if (!isFilledArray($GLOBALS['referral_refid'][$userid])) {
// No entries found
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - ABORTING...');
return;
}
// Checks if 'refid' is valid
-function isReferralIdValid () {
- return ((isset($GLOBALS['__refid'])) && (getReferralId() !== NULL) && (getReferralId() > 0));
+function isValidReferralId () {
+ return ((isset($GLOBALS['__refid'])) && (isValidId(getReferralId())));
}
// Getter for referral id
// Determines referral id and sets it
function determineReferralId () {
// Is it already detected?
- if (isReferralIdValid()) {
+ if (isValidReferralId()) {
// Do not determine it, just return it
return getReferralId();
- } elseif ((!isHtmlOutputMode()) && (basename($_SERVER['PHP_SELF']) != 'ref.php')) {
+ } elseif ((!isHtmlOutputMode()) && (getModule() != 'ref')) {
// Skip this in non-html-mode and outside ref.php
return FALSE;
}
// Check if refid is set
- if (isReferralIdValid()) {
+ if (isValidReferralId()) {
// This is fine...
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from GLOBALS (' . getReferralId() . ')');
} elseif (isPostRequestElementSet('refid')) {
// 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')) {
+ } elseif ((isGetRequestElementSet('user')) && (getModule() == 'click')) {
// The variable user comes from click.php
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using user from GET data (' . getRequestElement('user') . ')');
setReferralId(bigintval(getRequestElement('user')));
// Set cookie
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Saving refid to session (' . getReferralId() . ') #1');
setSession('refid', getReferralId());
- } elseif ((!isReferralIdValid()) || (!fetchUserData(getReferralId()))) {
+ } elseif ((!isValidReferralId()) || (!fetchUserData(getReferralId()))) {
// Not valid!
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Not valid referral id (' . getReferralId() . '), setting NULL in session');
setReferralId(NULL);