----------------------- '.__FUNCTION__.' - EXIT ------------------------ ');
+ /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',points=' . $points . ',sendNotify=' . intval($sendNotify) . ',refid=' . $refid . ',addMode=' . $addMode . ' - EXIT!');
+ return $added;
}
// Updates the referal counter
function updateReferalCounter ($userid) {
// Make it sure referal level zero (member him-/herself) is at least selected
- if (empty($GLOBALS['cache_array']['ref_level'][$userid])) $GLOBALS['cache_array']['ref_level'][$userid] = 1;
- //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',level='.$GLOBALS['cache_array']['ref_level'][$userid]);
+ if (empty($GLOBALS['cache_array']['ref_level'][$userid])) {
+ $GLOBALS['cache_array']['ref_level'][$userid] = NULL;
+ } // END - if
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.$userid.',level='.$GLOBALS['cache_array']['ref_level'][$userid]);
// Update counter
- SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_refsystem` SET `counter`=`counter`+1 WHERE `userid`=%s AND `level`='%s' LIMIT 1",
- array(bigintval($userid), $GLOBALS['cache_array']['ref_level'][$userid]), __FUNCTION__, __LINE__);
-
- // When no entry was updated then we have to create it here
- //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):updated=' . SQL_AFFECTEDROWS());
- if (SQL_AFFECTEDROWS() < 1) {
- // First count!
- SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_refsystem` (`userid`, `level`, `counter`) VALUES (%s,%s,1)",
- array(bigintval($userid), $GLOBALS['cache_array']['ref_level'][$userid]), __FUNCTION__, __LINE__);
- //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid);
+ if (!is_null($GLOBALS['cache_array']['ref_level'][$userid])) {
+ // Level is > 0
+ SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_refsystem` SET `counter`=`counter`+1 WHERE `userid`=%s AND `level`=%s LIMIT 1",
+ array(
+ bigintval($userid),
+ bigintval($GLOBALS['cache_array']['ref_level'][$userid])
+ ), __FUNCTION__, __LINE__);
+
+ // When no entry was updated then we have to create it here
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'updated=' . SQL_AFFECTEDROWS());
+ if (SQL_HASZEROAFFECTED()) {
+ // First count!
+ SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_refsystem` (`userid`, `level`, `counter`) VALUES (%s,%s,1)",
+ array(
+ bigintval($userid),
+ makeZeroToNull($GLOBALS['cache_array']['ref_level'][$userid])
+ ), __FUNCTION__, __LINE__);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS());
+ } // END - if
} // END - if
// Init referal id
@@ -1143,17 +1237,17 @@ function updateReferalCounter ($userid) {
$ref = getUserData('refid');
} // END - if
- //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',ref='.$ref);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.$userid.',ref='.$ref);
// When he has a referal...
if (($ref > 0) && ($ref != $userid)) {
// Move to next referal level and count his counter one up!
- //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):ref='.$ref.' - ADVANCE!');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ref='.$ref.' - ADVANCE!');
$GLOBALS['cache_array']['ref_level'][$userid]++;
updateReferalCounter($ref);
} elseif ((($ref == $userid) || ($ref == '0')) && (isExtensionInstalledAndNewer('cache', '0.1.2'))) {
// Remove cache here
- //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):ref='.$ref.' - CACHE!');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ref='.$ref.' - CACHE!');
rebuildCache('refsystem', 'refsystem');
}
@@ -1161,6 +1255,7 @@ function updateReferalCounter ($userid) {
$GLOBALS['cache_array']['ref_level'][$userid]--;
// Handle refback here if extension is installed
+ // @TODO Rewrite this to a filter
if (isExtensionActive('refback')) {
updateRefbackTable($userid);
} // END - if
@@ -1170,7 +1265,7 @@ function updateReferalCounter ($userid) {
// because we need it when there is no ext-admins installed
function sendAdminEmails ($subj, $message) {
// Load all admin email addresses
- $result = SQL_QUERY("SELECT `email` FROM `{?_MYSQL_PREFIX?}_admins` ORDER BY `id` ASC", __FUNCTION__, __LINE__);
+ $result = SQL_QUERY('SELECT `email` FROM `{?_MYSQL_PREFIX?}_admins` ORDER BY `id` ASC', __FUNCTION__, __LINE__);
while ($content = SQL_FETCHARRAY($result)) {
// Send the email out
sendEmail($content['email'], $subj, $message);
@@ -1185,7 +1280,7 @@ function sendAdminEmails ($subj, $message) {
// Get id number from administrator's login name
function getAdminId ($adminLogin) {
// By default no admin is found
- $data['id'] = '-1';
+ $data['id'] = -1;
// Check cache
if (isset($GLOBALS['cache_array']['admin']['admin_id'][$adminLogin])) {
@@ -1215,6 +1310,9 @@ function getAdminId ($adminLogin) {
// "Getter" for current admin id
function getCurrentAdminId () {
+ // Log debug message
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'called!');
+
// Do we have cache?
if (!isset($GLOBALS['current_admin_id'])) {
// Get the admin login from session
@@ -1237,7 +1335,7 @@ function setCurrentAdminId ($currentAdminId) {
// Get password hash from administrator's login name
function getAdminHash ($adminId) {
// By default an invalid hash is returned
- $data['password'] = '-1';
+ $data['password'] = -1;
if (isAdminHashSet($adminId)) {
// Check cache
@@ -1336,7 +1434,7 @@ function getAdminEmail ($adminId) {
// Get default ACL of admin id
function getAdminDefaultAcl ($adminId) {
// By default an invalid ACL value is returned
- $data['default_acl'] = '***';
+ $data['default_acl'] = 'NO-ACL';
// Is sql_patches there and was it found in cache?
if (!isExtensionActive('sql_patches')) {
@@ -1352,6 +1450,8 @@ function getAdminDefaultAcl ($adminId) {
// Load from database
$result_admin_id = SQL_QUERY_ESC("SELECT `default_acl` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1",
array(bigintval($adminId)), __FUNCTION__, __LINE__);
+
+ // Do we have an entry?
if (SQL_NUMROWS($result_admin_id) == 1) {
// Fetch data
$data = SQL_FETCHARRAY($result_admin_id);
@@ -1369,11 +1469,11 @@ function getAdminDefaultAcl ($adminId) {
}
// Generates an option list from various parameters
-function generateOptionList ($table, $id, $name, $default='', $special='', $where='', $disabled=array()) {
+function generateOptionList ($table, $id, $name, $default = '', $special = '', $where = '', $disabled = array(), $callback = '') {
$ret = '';
if ($table == '/ARRAY/') {
// Selection from array
- if ((is_array($id)) && (is_array($name)) && (count($id)) == (count($name))) {
+ if ((is_array($id)) && (is_array($name)) && ((count($id)) == (count($name)) || (!empty($callback)))) {
// Both are arrays
foreach ($id as $idx => $value) {
$ret .= '';
} // END - while
} else {
@@ -1436,20 +1558,16 @@ function generateOptionList ($table, $id, $name, $default='', $special='', $wher
// Activate exchange
function FILTER_ACTIVATE_EXCHANGE () {
// Is the extension 'user' there?
- if ((!isExtensionActive('user')) || (getConfig('activate_xchange') == '0')) {
+ if ((!isExtensionActive('user')) || (getActivateXchange() == '0')) {
// Silently abort here
return false;
} // END - if
// Check total amount of users
- $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, ' AND max_mails > 0');
-
- if ($totalUsers >= getConfig('activate_xchange')) {
+ if (getTotalConfirmedUser() >= getActivateXchange()) {
// Activate System
- setSqlsArray(array(
- "UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `mem_only`='Y' WHERE `module`='order' LIMIT 1",
- "UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='order' OR `what`='unconfirmed' LIMIT 2",
- ));
+ addSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `mem_only`='Y' WHERE `module`='order' LIMIT 1");
+ addSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='order' OR `what`='unconfirmed' LIMIT 2");
// Run SQLs
runFilterChain('run_sqls');
@@ -1467,16 +1585,17 @@ function deleteUserAccount ($userid, $reason) {
// Init points
$data['points'] = '0';
+ // Search for the points and user data
$result = SQL_QUERY_ESC("SELECT
- (SUM(p.points) - d.used_points) AS points
+ (SUM(p.`points`) - d.`used_points`) AS `points`
FROM
`{?_MYSQL_PREFIX?}_user_points` AS p
LEFT JOIN
`{?_MYSQL_PREFIX?}_user_data` AS d
ON
- p.userid=d.userid
+ p.`userid`=d.`userid`
WHERE
- p.userid=%s
+ p.`userid`=%s
LIMIT 1",
array(bigintval($userid)), __FUNCTION__, __LINE__);
@@ -1486,6 +1605,7 @@ LIMIT 1",
$data = SQL_FETCHARRAY($result);
// Delete points entries as well
+ // @TODO Rewrite these lines to a filter
SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_points` WHERE `userid`=%s",
array(bigintval($userid)), __FUNCTION__, __LINE__);
@@ -1496,7 +1616,9 @@ LIMIT 1",
} // END - if
// Now, when we have all his points adds them do the jackpot!
- if (isExtensionActive('jackpot')) addPointsToJackpot($data['points']);
+ if (isExtensionActive('jackpot')) {
+ addPointsToJackpot($data['points']);
+ } // END - if
} // END - if
// Free the result
@@ -1515,11 +1637,10 @@ LIMIT 1",
// Add reason and translate points
$data['text'] = $reason;
- $data['points'] = translateComma($data['points']);
// Now a mail to the user and that's all...
- $message = loadEmailTemplate('del-user', $data, $userid);
- sendEmail($userid, '{--ADMIN_DEL_ACCOUNT--}', $message);
+ $message = loadEmailTemplate('member_user_deleted', $data, $userid);
+ sendEmail($userid, '{--ADMIN_DELETE_ACCOUNT--}', $message);
// Ok, delete the account!
SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s LIMIT 1", array(bigintval($userid)), __FUNCTION__, __LINE__);
@@ -1547,7 +1668,7 @@ function getWhatFromModule ($modCheck) {
// Is ext-sql_patches installed and newer than 0.0.5?
if (isExtensionInstalledAndNewer('sql_patches', '0.0.5')) {
// Use it from config
- $what = getConfig('index_home');
+ $what = getIndexHome();
} else {
// Use default 'welcome'
$what = 'welcome';
@@ -1574,29 +1695,21 @@ function subtractPoints ($subject, $userid, $points) {
'subject' => $subject,
'userid' => $userid,
'points' => $points,
- 'mode' => 'sub'
+ 'mode' => 'sub',
+ 'added' => (!SQL_HASZEROAFFECTED())
);
// Insert booking record
- runFilterChain('sub_points', $filterData);
+ $filterData = runFilterChain('sub_points', $filterData);
+
+ // Return result
+ return $filterData['added'];
}
// "Getter" for total available receivers
-function getTotalReceivers ($mode='normal') {
- // Query database
- $result_all = SQL_QUERY("SELECT
- `userid`
-FROM
- `{?_MYSQL_PREFIX?}_user_data`
-WHERE
- `status`='CONFIRMED' AND `receive_mails` > 0 ".runFilterChain('exclude_users', $mode),
- __FUNCTION__, __LINE__);
-
+function getTotalReceivers ($mode = 'normal') {
// Get num rows
- $numRows = SQL_NUMROWS($result_all);
-
- // Free result
- SQL_FREERESULT($result_all);
+ $numRows = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, ' AND `receive_mails` > 0' . runFilterChain('exclude_users', $mode));
// Return value
return $numRows;
@@ -1616,7 +1729,7 @@ function generateCategoryOptionsList ($mode) {
);
// Get categories
- $result = SQL_QUERY("SELECT `id`, `cat` FROM `{?_MYSQL_PREFIX?}_cats`".$whereStatement." ORDER BY `sort` ASC",
+ $result = SQL_QUERY('SELECT `id`, `cat` FROM `{?_MYSQL_PREFIX?}_cats`' . $whereStatement . ' ORDER BY `sort` ASC',
__FUNCTION__, __LINE__);
// Do we have entries?
@@ -1658,7 +1771,7 @@ function generateCategoryOptionsList ($mode) {
} // END - foreach
} else {
// No cateogries are defined yet
- $OUT = '';
+ $OUT = '';
}
// Return HTML code
@@ -1666,7 +1779,7 @@ function generateCategoryOptionsList ($mode) {
}
// Add bonus mail to queue
-function addBonusMailToQueue ($subject, $text, $receiverList, $points, $seconds, $url, $cat, $mode='normal', $receiver=0) {
+function addBonusMailToQueue ($subject, $text, $receiverList, $points, $seconds, $url, $categoryId, $mode='normal', $receiver=0) {
// Is admin or bonus extension there?
if (!isAdmin()) {
// Abort here
@@ -1687,24 +1800,21 @@ function addBonusMailToQueue ($subject, $text, $receiverList, $points, $seconds,
// HTML extension active?
if (isExtensionActive('html_mail')) {
- // No HTML by default
- $HTML = 'N';
-
- // HTML mode?
- if ($mode == 'html') $HTML = 'Y';
+ // Determine if we have HTML mode active
+ $HTML = convertBooleanToYesNo($mode == 'html');
// Add HTML mail
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_bonus`
(`subject`, `text`, `receivers`, `points`, `time`, `data_type`, `timestamp`, `url`, `cat_id`, `target_send`, `mails_sent`, `html_msg`)
-VALUES ('%s','%s','%s','%s','%s','NEW', UNIX_TIMESTAMP(),'%s','%s','%s','%s','%s')",
+VALUES ('%s','%s','%s',%s,%s,'NEW', UNIX_TIMESTAMP(),'%s',%s,%s,%s,'%s')",
array(
$subject,
$text,
$receiverList,
$points,
- $seconds,
+ bigintval($seconds),
$url,
- $cat,
+ bigintval($categoryId),
$target,
bigintval($receiver),
$HTML
@@ -1713,15 +1823,15 @@ VALUES ('%s','%s','%s','%s','%s','NEW', UNIX_TIMESTAMP(),'%s','%s','%s','%s','%s
// Add regular mail
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_bonus`
(`subject`, `text`, `receivers`, `points`, `time`, `data_type`, `timestamp`, `url`, `cat_id`, `target_send`, `mails_sent`)
-VALUES ('%s','%s','%s','%s','%s','NEW', UNIX_TIMESTAMP(),'%s','%s','%s','%s')",
+VALUES ('%s','%s','%s',%s,%s,'NEW', UNIX_TIMESTAMP(),'%s',%s,%s,%s)",
array(
$subject,
$text,
$receiverList,
$points,
- $seconds,
+ bigintval($seconds),
$url,
- $cat,
+ bigintval($categoryId),
$target,
bigintval($receiver),
), __FUNCTION__, __LINE__);
@@ -1729,7 +1839,7 @@ VALUES ('%s','%s','%s','%s','%s','NEW', UNIX_TIMESTAMP(),'%s','%s','%s','%s')",
}
// Generate a receiver list for given category and maximum receivers
-function generateReceiverList ($cat, $receiver, $mode = '') {
+function generateReceiverList ($categoryId, $receiver, $mode = '') {
// Init variables
$CAT_TABS = '';
$CAT_WHERE = '';
@@ -1737,8 +1847,8 @@ function generateReceiverList ($cat, $receiver, $mode = '') {
$result = false;
// Secure data
- $cat = bigintval($cat);
- $receiver = bigintval($receiver);
+ $categoryId = bigintval($categoryId);
+ $receiver = bigintval($receiver);
// Is the receiver zero and mode set?
if (($receiver == '0') && (!empty($mode))) {
@@ -1747,10 +1857,10 @@ function generateReceiverList ($cat, $receiver, $mode = '') {
} // END - if
// Category given?
- if ($cat > 0) {
+ if ($categoryId > 0) {
// Select category
- $CAT_TABS = "LEFT JOIN `{?_MYSQL_PREFIX?}_user_cats` AS c ON d.userid=c.userid";
- $CAT_WHERE = sprintf(" AND c.cat_id=%s", $cat);
+ $CAT_TABS = "LEFT JOIN `{?_MYSQL_PREFIX?}_user_cats` AS c ON d.`userid`=c.`userid`";
+ $CAT_WHERE = sprintf(" AND c.`cat_id`=%s", $categoryId);
} // END - if
// Exclude users in holiday?
@@ -1761,13 +1871,13 @@ function generateReceiverList ($cat, $receiver, $mode = '') {
if ((isExtensionActive('html_mail')) && ($mode == 'html')) {
// Only include HTML receivers
- $result = SQL_QUERY_ESC("SELECT d.userid FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$CAT_TABS." WHERE d.`status`='CONFIRMED' AND d.`html`='Y'".$CAT_WHERE." ORDER BY d.{?order_select?} {?order_mode?} LIMIT %s",
+ $result = SQL_QUERY_ESC("SELECT d.`userid` FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$CAT_TABS." WHERE d.`status`='CONFIRMED' AND d.`html`='Y'".$CAT_WHERE." ORDER BY d.`{?order_select?}` {?order_mode?} LIMIT %s",
array(
$receiver
), __FUNCTION__, __LINE__);
} else {
// Include all
- $result = SQL_QUERY_ESC("SELECT d.userid FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$CAT_TABS." WHERE d.`status`='CONFIRMED'".$CAT_WHERE." ORDER BY d.{?order_select?} {?order_mode?} LIMIT %s",
+ $result = SQL_QUERY_ESC("SELECT d.`userid` FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$CAT_TABS." WHERE d.`status`='CONFIRMED'".$CAT_WHERE." ORDER BY d.`{?order_select?}` {?order_mode?} LIMIT %s",
array(
$receiver
), __FUNCTION__, __LINE__);
@@ -1778,7 +1888,9 @@ function generateReceiverList ($cat, $receiver, $mode = '') {
// Load all entries
while ($content = SQL_FETCHARRAY($result)) {
// Add receiver when not empty
- if (!empty($content['userid'])) $receiverList .= $content['userid'] . ';';
+ if (!empty($content['userid'])) {
+ $receiverList .= $content['userid'] . ';';
+ } // END - if
} // END - while
// Free memory
@@ -1794,33 +1906,29 @@ function generateReceiverList ($cat, $receiver, $mode = '') {
// "Getter" for array for user refs and points in given level
function getUserReferalPoints ($userid, $level) {
- //* DEBUG: */ debugOutput('----------------------- '.__FUNCTION__.' - ENTRY ------------------------
');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ' - ENTERED!');
// Default is no refs and no nickname
- $add = '';
$refs = array();
- // Do we have nickname extension installed?
- if (isExtensionActive('nickname')) {
- $add = ', ud.nickname';
- } // END - if
-
// Get refs from database
$result = SQL_QUERY_ESC("SELECT
- ur.id, ur.refid, ud.status, ud.last_online, ud.mails_confirmed, ud.emails_received".$add."
+ ur.`id`, ur.`refid`, ud.`status`, ud.`last_online`, ud.`mails_confirmed`, ud.`emails_received`
FROM
`{?_MYSQL_PREFIX?}_user_refs` AS ur
LEFT JOIN
`{?_MYSQL_PREFIX?}_user_points` AS up
ON
- ur.refid=up.userid AND ur.level=0
+ ur.refid=up.userid AND
+ (ur.level=0 OR ur.level IS NULL)
LEFT JOIN
`{?_MYSQL_PREFIX?}_user_data` AS ud
ON
- ur.refid=ud.userid
+ ur.`refid`=ud.`userid`
WHERE
- ur.userid=%s AND ur.level=%s
+ ur.`userid`=%s AND
+ ur.`level`=%s
ORDER BY
- ur.refid ASC",
+ ur.`refid` ASC",
array(
bigintval($userid),
bigintval($level)
@@ -1831,7 +1939,7 @@ ORDER BY
// Fetch all entries
while ($row = SQL_FETCHARRAY($result)) {
// Get total points of this user
- $row['points'] = countSumTotalData($row['refid'], 'user_points', 'points') - countSumTotalData($row['refid'], 'user_data', 'used_points');
+ $row['points'] = getTotalPoints($row['refid']);
// Get unconfirmed mails
$row['unconfirmed'] = countSumTotalData($row['refid'], 'user_links', 'id', 'userid', true);
@@ -1868,7 +1976,7 @@ ORDER BY
SQL_FREERESULT($result);
// Return result
- //* DEBUG: */ debugOutput('
----------------------- '.__FUNCTION__.' - EXIT ------------------------ ');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ' - EXIT!');
return $refs;
}
@@ -1906,7 +2014,7 @@ function reduceRecipientReceivedMails ($column, $id, $count) {
array(implode(',', $userids), count($userids)), __FUNCTION__, __LINE__);
} else {
// Nothing deleted
- loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_MAIL_NOTHING_DELETED', $id));
+ displayMessage('{%message,ADMIN_MAIL_NOTHING_DELETED=' . $id . '%}');
}
} // END - if
@@ -1942,5 +2050,83 @@ function updateLastActivity($userid) {
), __FUNCTION__, __LINE__);
}
+// Get points data for given extension's name
+function getPointsDataArrayFromExtensionName ($ext_name) {
+ // If we have cache, shortcut it here
+ if (isset($GLOBALS['cache_array']['points_data'][$ext_name])) {
+ // Return it
+ return $GLOBALS['cache_array']['points_data'][$ext_name];
+ } // END - if
+
+ // Now checkout the entry in database table
+ $result = SQL_QUERY_ESC("SELECT `id`, `ext_name`, `column_name`, `locked_mode`, `payment_method` FROM `{?_MYSQL_PREFIX?}_points_data` WHERE `ext_name`='%s' LIMIT 1",
+ array($ext_name), __FUNCTION__, __LINE__);
+
+ // Do we have an entry?
+ if (SQL_NUMROWS($result) == 1) {
+ // Then load it
+ $pointsData = SQL_FETCHARRAY($result);
+
+ // Add all remaining entries
+ foreach ($pointsData as $key=>$value) {
+ $GLOBALS['cache_array']['points_data'][$ext_name][$key] = $value;
+ } // END - foreach
+ } else {
+ /*
+ * Having no entry is not bad but it means that all points will go to
+ * the general account which the user can let payout.
+ */
+ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - No entry found, switching to general points account.');
+ }
+
+ // Free result
+ SQL_FREERESULT($result);
+
+ // Return it
+ return $GLOBALS['cache_array']['points_data'][$ext_name];
+}
+
+// Determines the right points column name for given extension and 'locked'
+function getPointsColumnNameFromExtensionNameLocked ($ext_name, $isLocked) {
+ // Extension sql_patches must be up-to-date
+ if (isExtensionInstalledAndOlder('sql_patches', '0.8.0')) {
+ // Please update ext-sql_patches
+ debug_report_bug(__FUNCTION__, __LINE__, 'sql_patches is out-dated. Please update to at least 0.8.0 to continue. ext_name=' . $ext_name . ',isLocked=' . intval($isLocked));
+ } // END - if
+
+ // Get the points_data entry
+ $pointsData = getPointsDataArrayFromExtensionName($ext_name);
+
+ // Regular points by default
+ $columnName = $pointsData['column_name'];
+
+ // Are the points locked?
+ if (($isLocked === true) && ($pointsData['locked_mode'] == 'LOCKED')) {
+ // Locked points, so prefix it
+ $columnName = 'locked_' . $pointsData['column_name'];
+ } // END - if
+
+ // Return the result
+ return $columnName;
+}
+
+// Determines the payment method for given extension and 'locked'
+function getPaymentMethodFromExtensionName ($ext_name) {
+ // Extension sql_patches must be up-to-date
+ if (isExtensionInstalledAndOlder('sql_patches', '0.8.0')) {
+ // Please update ext-sql_patches
+ debug_report_bug(__FUNCTION__, __LINE__, 'sql_patches is out-dated. Please update to at least 0.8.0 to continue. ext_name=' . $ext_name . ',isLocked=' . intval($isLocked));
+ } // END - if
+
+ // Get the points_data entry
+ $pointsData = getPointsDataArrayFromExtensionName($ext_name);
+
+ // Regular points by default
+ $paymentMethod = $pointsData['payment_method'];
+
+ // Return the result
+ return $paymentMethod;
+}
+
// [EOF]
?>