");
- REQUEST_UNSET_POST('ok');
- }
- }
-
- if (!IS_FORM_SENT()) {
- // Load member list
- if (EXT_IS_ACTIVE("nickname")) {
- // Load userid and nickname
- $result = SQL_QUERY_ESC("SELECT userid, nickname FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `status`='CONFIRMED' AND opt_in='Y' AND userid != '%s' ORDER BY userid",
- array($GLOBALS['userid']), __FILE__, __LINE__);
- } else {
- // Load only userid
- $result = SQL_QUERY_ESC("SELECT userid, userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `status`='CONFIRMED' AND opt_in='Y' AND userid != '%s' ORDER BY userid",
- array($GLOBALS['userid']), __FILE__, __LINE__);
- }
+ // Generate CAPTCHA code
+ $code = generateRandomCode(getTransferCode(), $rand, getMemberId(), $content['max_transferable']);
+
+ // Generate image (HTML code)
+ $img = generateImageOrCode($code, false);
- if (SQL_NUMROWS($result) > 0) {
- // Load list
- $OUT = "\n";
- define('__TRANSFER_TO_DISABLED', "");
+
+ // Init points/reason
+ $content['points'] = '';
+ $content['reason'] = '';
+
+ // Transfer maybe already entered valued'
+ if (isPostRequestElementSet('ok')) {
+ // Get values from form
+ $content['points'] = postRequestElement('points');
+ $content['reason'] = postRequestElement('reason');
+ } // END - if
+
+ // Output form
+ loadTemplate('member_transfer_new', false, $content);
+ } // END - if
+ break;
+
+ case 'list_in': // List only incoming transactions
+ case 'list_out': // List only outgoing transactions
+ // As you can see I put list_in and list_out together. I now do a switch() again on it for the right SQL command
+ $nothingMessage = '';
+ switch ($mode) {
+ case 'list_in':
+ $sql = 'SELECT `trans_id`,`from_userid` AS party_userid,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_in` WHERE `userid`=%s ORDER BY `time_trans` DESC LIMIT {?transfer_max?}';
+ $nothingMessage = '{--TRANSFER_NO_INCOMING_TRANSFERS--}';
+ $content['balance'] = '{--TRANSFER_TOTAL_INCOMING--}';
+ $content['title'] = '{--TRANSFER_LIST_INCOMING--}';
+ break;
+
+ case 'list_out':
+ $sql = 'SELECT `trans_id`,`to_userid` AS party_userid,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_out` WHERE `userid`=%s ORDER BY `time_trans` DESC LIMIT {?transfer_max?}';
+ $nothingMessage = '{--TRANSFER_NO_OUTGOING_TRANSFERS--}';
+ $content['balance'] = '{--TRANSFER_TOTAL_OUTGOING--}';
+ $content['title'] = '{--TRANSFER_LIST_OUTGOING--}';
+ break;
+ } // END - switch
+
+ // Run the SQL command and set total points to zero
+ $totalPoints = '0';
+ $result = SQL_QUERY_ESC($sql, array(getMemberId()), __FILE__, __LINE__);
+
+ // Do we have entries?
+ if (!SQL_HASZERONUMS($result)) {
+ $OUT = '';
+ while ($content = SQL_FETCHARRAY($result)) {
+ // Rewrite points, out is subtracted
+ if ($type == 'OUT') {
+ $content['points'] = $content['points'] * -1;
+ } // END - if
+
+ // Prepare content for template
+ $$content['time_trans'] = generateDateTime($content['time_trans'], 3);
+
+ // Load row template
+ $OUT .= loadTemplate('member_transfer_row2', true, $content);
+
+ // Add points and switch color
+ $totalPoints += $content['points'];
+ } // END - while
// Free memory
SQL_FREERESULT($result);
} else {
- // No one else is opt-in
- $OUT = getMessage('TRANSFER_NO_ONE_ELSE_OPT_IN');
- define('__TRANSFER_TO_DISABLED', " disabled");
+ // Nothing for in or out
+ $OUT = '
+
+ ' . displayMessage($nothingMessage, true) . '
+
+
';
}
- // Transfer output to constant for the template
- define('__TRANSFER_USERID_SELECTION', $OUT);
-
- // Generate Code
- if (getConfig('transfer_code') > 0) {
- $rand = mt_rand(0, 99999);
- $code = GEN_RANDOM_CODE(getConfig('transfer_code'), $rand, $GLOBALS['userid'], constant('__TRANSFER_MAX_VALUE'));
- $img = GENERATE_IMAGE($code, false);
- define('__TRANSFER_IMAGE_INPUT', " ".$img);
- } else {
- $code = "00000";
- define('__TRANSFER_IMAGE_INPUT', getMessage('TRANSFER_NO_CODE'));
- }
+ // ... and add them to a constant for the template
+ $content['rows'] = $OUT;
- // Transfer maybe already entered valued'
- if (REQUEST_ISSET_GET('ok')) {
- // Get values from form
- define('__TRANSFER_POINTS_VALUE', bigintval(REQUEST_POST('points')));
- define('__TRANSFER_REASON_VALUE', strip_tags(REQUEST_POST('reason')));
- } else {
- // Set empty values
- define('__TRANSFER_POINTS_VALUE', "");
- define('__TRANSFER_REASON_VALUE', "");
- }
+ // Remeber total amount
+ $content['total_points'] = $totalPoints;
- // Output form
- LOAD_TEMPLATE("member_transfer_new");
- }
- break;
-
-case "list_in": // List only incoming transactions
-case "list_out": // List only outgoing transactions
- // As you can see I put list_in and list_out together. I now do a switch() again on it for the right SQL command
- switch ($MODE)
- {
- case "list_in":
- $sql = "SELECT trans_id, from_uid, points, reason, time_trans FROM `{!_MYSQL_PREFIX!}_user_transfers_in` WHERE userid=%s ORDER BY time_trans DESC LIMIT ".getConfig('transfer_max');
- $NOTHING = TRANSFER_NO_INCOMING_TRANSFERS;
- define('__TRANSFER_SUM', TRANSFER_TOTAL_INCOMING);
- define('__TRANSFER_TITLE', TRANSFER_LIST_INCOMING);
+ // Load final template
+ loadTemplate('member_transfer_list', false, $content);
break;
- case "list_out":
- $sql = "SELECT trans_id, to_uid, points, reason, time_trans FROM `{!_MYSQL_PREFIX!}_user_transfers_out` WHERE userid=%s ORDER BY time_trans DESC LIMIT ".getConfig('transfer_max');
- $NOTHING = TRANSFER_NO_OUTGOING_TRANSFERS;
- define('__TRANSFER_SUM', TRANSFER_TOTAL_OUTGOING);
- define('__TRANSFER_TITLE', TRANSFER_LIST_OUTGOING);
- break;
- }
-
- // Run the SQL command
- $total = 0;
- $result = SQL_QUERY_ESC($sql, array($GLOBALS['userid']), __FILE__, __LINE__);
- if (SQL_NUMROWS($result) > 0) {
- $OUT = ""; $SW = 2;
- while (list($tid, $uid, $points, $reason, $stamp) = SQL_FETCHROW($result)) {
- if ($type == "OUT") $points = "$points-";
- $OUT .= "
-
-
".$tid."
-
-
-
".MAKE_DATETIME($stamp, "3")."
-
-
-
".$uid."
-
-
-
".$reason."
-
-
-
".$points."
-
-
\n";
- $total += $points;
- $SW = 3 - $SW;
- }
+ case 'list_all': // List all transactions
+ /*
+ * Fill a temporary table with data from both tables. This is much
+ * easier to code and unstandable by you as sub-SELECT queries. I know
+ * this is not the fastest way but it shall be fine for now.
+ */
+
+ // First of all create the per-user temporary table
+ $result = SQL_QUERY_ESC("CREATE TEMPORARY TABLE `{?_MYSQL_PREFIX?}_%s_transfers_tmp` (
+`trans_id` VARCHAR(12) NOT NULL DEFAULT '',
+`party_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`reason` VARCHAR(255) NOT NULL DEFAULT '',
+`time_trans` VARCHAR(10) NOT NULL DEFAULT 0,
+`trans_type` ENUM('IN','OUT') NOT NULL DEFAULT 'IN',
+INDEX (`party_userid`)
+) ENGINE = HEAP COMMENT = 'Temporary transfer table'", array(getMemberId()), __FILE__, __LINE__);
+
+ // Let's begin with the incoming list
+ $result = SQL_QUERY_ESC("SELECT `trans_id`,`from_userid`,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_in` WHERE `userid`=%s ORDER BY `id` ASC LIMIT {?transfer_max?}",
+ array(getMemberId()), __FILE__, __LINE__);
+ while ($content = SQL_FETCHROW($result)) {
+ $content[] = 'IN';
+ $content = implode("','", $content);
+ $res_temp = SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_%s_transfers_tmp` (`trans_id`,`party_userid`,`points`,`reason`,`time_trans`,`trans_type`) VALUES ('" . $content . "')", array(getMemberId()), __FILE__, __LINE__);
+ } // END - while
// Free memory
SQL_FREERESULT($result);
- } else {
- // Nothing for in or out
- $OUT = "
";
- }
-
- // ... and add them to a constant for the template
- define('__TRANSFER_ROWS', $OUT);
-
- // Remeber total amount
- define('__TRANSFER_TOTAL_VALUE', $total);
-
- // Load final template
- LOAD_TEMPLATE("member_transfer_list");
- break;
-
-case "list_all": // List all transactions
- // We fill a temporary table with data from both tables. This is much easier
- // to code and unstand by you as sub-SELECT queries. I know this is not the
- // fastest way but it shall be fine for now.
- //
- // First of all create the temporary table
- $result = SQL_QUERY("CREATE TEMPORARY TABLE `{!_MYSQL_PREFIX!}_transfers_tmp` (
-trans_id VARCHAR(12) NOT NULL DEFAULT '',
-party_uid BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
-points BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
-reason VARCHAR(255) NOT NULL DEFAULT '',
-time_trans VARCHAR(10) NOT NULL DEFAULT '0',
-trans_type ENUM('IN','OUT') NOT NULL DEFAULT 'IN',
-KEY(party_uid)
-) TYPE=HEAP", __FILE__, __LINE__);
-
- // Let's begin with the incoming list
- $result = SQL_QUERY_ESC("SELECT trans_id, from_uid, points, reason, time_trans FROM `{!_MYSQL_PREFIX!}_user_transfers_in` WHERE userid=%s ORDER BY `id` LIMIT %s",
-array($GLOBALS['userid'], getConfig('transfer_max')), __FILE__, __LINE__);
- while ($DATA = SQL_FETCHROW($result)) {
- $DATA[] = "IN";
- $DATA = implode("','", $DATA);
- $res_temp = SQL_QUERY("INSERT INTO `{!_MYSQL_PREFIX!}_transfers_tmp` (trans_id, party_uid, points, reason, time_trans, trans_type) VALUES ('".$DATA."')", __FILE__, __LINE__);
- }
-
- // Free memory
- SQL_FREERESULT($result);
-
- // As the last table transfer data from outgoing table to temporary
- $result = SQL_QUERY_ESC("SELECT trans_id, to_uid, points, reason, time_trans FROM `{!_MYSQL_PREFIX!}_user_transfers_out` WHERE userid=%s ORDER BY `id` LIMIT %s",
-array($GLOBALS['userid'], getConfig('transfer_max')), __FILE__, __LINE__);
- while ($DATA = SQL_FETCHROW($result)) {
- $DATA[] = "OUT";
- $DATA = implode("','", $DATA);
- $res_temp = SQL_QUERY("INSERT INTO `{!_MYSQL_PREFIX!}_transfers_tmp` (trans_id, party_uid, points, reason, time_trans, trans_type) VALUES ('".$DATA."')", __FILE__, __LINE__);
- }
-
- // Free memory
- SQL_FREERESULT($result);
-
- $total = 0;
- if (SQL_NUMROWS($result) > 0) {
- // Output rows
- $OUT = ""; $SW = 2;
- $result = SQL_QUERY("SELECT party_uid, trans_id, points, reason, time_trans, trans_type FROM `{!_MYSQL_PREFIX!}_transfers_tmp` ORDER BY time_trans DESC", __FILE__, __LINE__);
- while (list($uid, $idx, $points, $reason, $stamp, $type) = SQL_FETCHROW($result)) {
- if ($type == "OUT") $points = "-$points";
- $OUT .= "
-
-
".$idx."
-
-
-
".MAKE_DATETIME($stamp, "3")."
-
-
-
".$uid."
-
-
-
".$reason."
-
-
-
".$points."
+
+ // As the last table transfer data from outgoing table to temporary
+ $result = SQL_QUERY_ESC("SELECT `trans_id`,`to_userid`,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_out` WHERE `userid`=%s ORDER BY `id` LIMIT {?transfer_max?}",
+ array(getMemberId()), __FILE__, __LINE__);
+ while ($content = SQL_FETCHROW($result)) {
+ $content[] = 'OUT';
+ $content = implode("','", $content);
+ $res_temp = SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_%s_transfers_tmp` (`trans_id`,`party_userid`,`points`,`reason`,`time_trans`,`trans_type`) VALUES ('" . $content . "')", array(getMemberId()), __FILE__, __LINE__);
+ } // END - while
+
+ // Free memory
+ SQL_FREERESULT($result);
+
+ // Search for entries
+ $result = SQL_QUERY_ESC("SELECT `party_userid`,`trans_id`,`points`,`reason`,`time_trans`,`trans_type` FROM `{?_MYSQL_PREFIX?}_%s_transfers_tmp` ORDER BY `time_trans` DESC",
+ array(getMemberId()), __FILE__, __LINE__);
+
+ $total = '0';
+ if (!SQL_HASZERONUMS($result)) {
+ // Output rows
+ $OUT = '';
+ while ($content = SQL_FETCHARRAY($result)) {
+ // Rewrite points if OUT
+ if ($content['trans_type'] == 'OUT') {
+ $content['points'] = $content['points'] * -1;
+ } // END - if
+
+ // Prepare content for template
+ $content['time'] = generateDateTime($content['time_trans'], 3);
+
+ // Load row template
+ $OUT .= loadTemplate('member_transfer_row', true, $content);
+
+ // Add points and switch color
+ $total += $content['points'];
+ } // END - while
+ } else {
+ // Nothing for in and out
+ $OUT = '