X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fmodules%2Fmember%2Fwhat-transfer.php;h=b5b2ad477255d063c15f57abbf4acf313f994b77;hp=e7691f0cf9584d3fb70d5678d11bc3a494748641;hb=7cfec287d338c5b3af01b1a79881302505b3a795;hpb=1e2a4228e071a67a2d79e970a843e3e30476cfb8 diff --git a/inc/modules/member/what-transfer.php b/inc/modules/member/what-transfer.php index e7691f0cf9..b5b2ad4772 100644 --- a/inc/modules/member/what-transfer.php +++ b/inc/modules/member/what-transfer.php @@ -1,7 +1,7 @@ 0) { // Check for code - $code = generateRandomCode(getConfig('transfer_code'), REQUEST_POST('code_chk'), getUserId(), constant('__TRANSFER_MAX_VALUE')); - $valid_code = ($code == REQUEST_POST('code')); + $code = generateRandomCode(getConfig('transfer_code'), postRequestParameter('code_chk'), getMemberId(), $content['max_transferable']); + $valid_code = ($code == postRequestParameter('code')); } else { // Zero length (= disabled) is always valid! $valid_code = true; } // Test password - $valid_pass = ($pass == generateHash(REQUEST_POST('password'), $pass)); + $valid_pass = ($pass == generateHash(postRequestParameter('password'), $pass)); // Test transfer amount - $valid_amount = ((REQUEST_ISSET_POST(('points'))) && (REQUEST_POST('points') <= constant('__TRANSFER_MAX_VALUE'))); + $valid_amount = ((isPostRequestParameterSet('points')) && (postRequestParameter('points') <= $content['max_transferable'])); // Test reason for transfer - $valid_reason = (REQUEST_ISSET_POST(('reason'))); + $valid_reason = (isPostRequestParameterSet('reason')); // Test if a recipient is selected - $valid_recipient = (REQUEST_POST('to_uid') > 0); + $valid_recipient = isValidUserId(postRequestParameter('to_userid')); // Check for nickname extension and set additional data - $nick = false; $add = ", userid"; - if (EXT_IS_ACTIVE('nickname')) { - $add = ", nickname"; - $nick = true; - } + // @TODO Rewrite this to a filter + $add = ''; + if (isExtensionActive('nickname')) { + $add = ', `nickname`'; + } // END - if // Re-check receivers and own personal data - $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email".$add." FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid IN ('%s','%s') AND `status`='CONFIRMED' ORDER BY userid LIMIT 2", - array(getUserId(), bigintval(REQUEST_POST('to_uid'))), __FILE__, __LINE__); + $result = SQL_QUERY_ESC("SELECT `userid`, `gender`, `surname`, `family`, `email`".$add." FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid` IN ('%s','%s') AND `status`='CONFIRMED' LIMIT 2", + array( + getMemberId(), + bigintval(postRequestParameter('to_userid')) + ), __FILE__, __LINE__); + + // Do we have two entries? $valid_data = (SQL_NUMROWS($result) == 2); - if ($valid_code && $valid_pass && $valid_amount && $valid_reason && $valid_recipient) { + // Final check if all is fine + if ($valid_code && $valid_data && $valid_pass && $valid_amount && $valid_reason && $valid_recipient) { // Let's start the transfer and load user data - list($uid1, $gender1, $sname1, $fname1, $email1, $nick1) = SQL_FETCHROW($result); - list($uid2, $gender2, $sname2, $fname2, $email2, $nick2) = SQL_FETCHROW($result); - SQL_FREERESULT($result); - // @TODO Rewrite all these constants to array elements - if ($uid1 == getUserId()) { - // Data row 1 is sender's data - define('__SENDER_GENDER' , translateGender($gender1)); - define('__SENDER_NICK' , $nick1); - define('__SENDER_SNAME' , $sname1); - define('__SENDER_FNAME' , $fname1); - define('__SENDER_EMAIL' , $email1); - // Data row 2 is recpient's data - define('__RECIPIENT_GENDER', translateGender($gender2)); - define('__RECIPIENT_NICK' , $nick2); - define('__RECIPIENT_SNAME' , $sname2); - define('__RECIPIENT_FNAME' , $fname2); - define('__RECIPIENT_EMAIL' , $email2); - - // Prepare variables for testing - $TEST_NICK_SENDER = $nick1; - $TEST_NICK_REC = $nick2; - } else { - // Data row 2 is sender's data - define('__SENDER_GENDER' , translateGender($gender2)); - define('__SENDER_NICK' , $nick2); - define('__SENDER_SNAME' , $sname2); - define('__SENDER_FNAME' , $fname2); - define('__SENDER_EMAIL' , $email2); - // Data row 1 is recpient's data - define('__RECIPIENT_GENDER', translateGender($gender1)); - define('__RECIPIENT_NICK' , $nick1); - define('__RECIPIENT_SNAME' , $sname1); - define('__RECIPIENT_FNAME' , $fname1); - define('__RECIPIENT_EMAIL' , $email1); - - // Prepare variables for testing - $TEST_NICK_SENDER = $nick2; - $TEST_NICK_REC = $nick1; - } + $content['sender'] = SQL_FETCHARRAY($result); + $content['recipient'] = SQL_FETCHARRAY($result); + + // Is the nickname extension not installed? + if (!isExtensionActive('nickname')) { + // Fix empty nicknames + $content['sender']['nickname'] = ''; + $content['recipient']['nickname'] = ''; + } // END - if - // Sender's UID is always currently stored in cookie userid... - define('__SENDER_UID' , getUserId()); - define('__RECIPIENT_UID' , REQUEST_POST('to_uid')); + // Prepare variables for testing + $TEST_NICK_SENDER = $content['sender']['nickname']; + $TEST_NICK_REC = $content['recipient']['nickname']; - $SENDER = constant('__SENDER_UID'); - $RECIPIENT = constant('__RECIPIENT_UID'); - if ($nick) { - if (($TEST_NICK_SENDER != constant('__SENDER_UID')) && (!empty($TEST_NICK_SENDER))) { - $SENDER = constant('__SENDER_NICK'); - } + // Default is userids for subject line + $SENDER = getMemberId(); + $RECIPIENT = bigintval(postRequestParameter('to_userid')); - if (($TEST_NICK_REC != constant('__RECIPIENT_UID')) && (!empty($TEST_NICK_REC))) { - $RECIPIENT = constant('__RECIPIENT_NICK'); - } - } + // If nickname is installed we can set the nickname + // @TODO Rewrite this to a filter + if (isExtensionActive('nickname')) { + if (($TEST_NICK_SENDER != getMemberId()) && (!empty($TEST_NICK_SENDER))) { + $SENDER = $content['sender']['nickname']; + } // END - if + + if (($TEST_NICK_REC != postRequestParameter('to_userid')) && (!empty($TEST_NICK_REC))) { + $RECIPIENT = $content['recipient']['nickname']; + } // END - if + } // END - if // Remember transfer reason and fancy date/time in constants - define('__TRANSFER_REASON', REQUEST_POST('reason')); - define('__TRANSFER_EXPIRES', createFancyTime(getConfig('transfer_age'))); + $content['reason'] = secureString(postRequestParameter('reason')); + $content['expires'] = '{%config,createFancyTime=transfer_age%}'; // Generate tranafer id - define('__TRANS_ID', bigintval(generateRandomCode("10", mt_rand(0, 99999), getUserId(), REQUEST_POST('reason')))); + $content['trans_id'] = bigintval(generateRandomCode('10', mt_rand(0, 99999), getMemberId(), postRequestParameter('reason'))); // Add entries to both tables - SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_user_transfers_in` (userid, from_uid, points, reason, time_trans, trans_id) VALUES ('%s','%s','%s','%s', UNIX_TIMESTAMP(),'%s')", - array(bigintval(REQUEST_POST('to_uid')), getUserId(), bigintval(REQUEST_POST('points')), REQUEST_POST('reason'), __TRANS_ID), - __FILE__, __LINE__); - SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_user_transfers_out` (userid, to_uid, points, reason, time_trans, trans_id) VALUES ('%s','%s','%s','%s', UNIX_TIMESTAMP(),'%s')", - array(getUserId(), bigintval(REQUEST_POST('to_uid')), bigintval(REQUEST_POST('points')), REQUEST_POST('reason'), __TRANS_ID), - __FILE__, __LINE__); + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_transfers_in` (`userid`, `from_userid`, `points`, `reason`, `time_trans`, `trans_id`) VALUES (%s,%s,%s,'%s', UNIX_TIMESTAMP(),%s)", + array(bigintval(postRequestParameter('to_userid')), getMemberId(), bigintval(postRequestParameter('points')), postRequestParameter('reason'), $content['trans_id']), __FILE__, __LINE__); + SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_transfers_out` (`userid`, `to_userid`, `points`, `reason`, `time_trans`, `trans_id`) VALUES (%s,%s,%s,'%s', UNIX_TIMESTAMP(),%s)", + array(getMemberId(), bigintval(postRequestParameter('to_userid')), bigintval(postRequestParameter('points')), postRequestParameter('reason'), $content['trans_id']), __FILE__, __LINE__); // Add points to account *directly* ... - ADD_POINTS_REFSYSTEM_DIRECT('member_transfer', bigintval(REQUEST_POST('to_uid')), bigintval(REQUEST_POST('points'))); + addPointsDirectly('transfer', bigintval(postRequestParameter('to_userid')), bigintval(postRequestParameter('points'))); // ... and add it to current user's used points - SUB_POINTS('transfer', getUserId(), REQUEST_POST('points')); + subtractPoints('transfer', getMemberId(), postRequestParameter('points')); // First send email to recipient - $msg = LOAD_EMAIL_TEMPLATE('member_transfer_recipient', '', constant('__RECIPIENT_UID')); - sendEmail(constant('__RECIPIENT_EMAIL'), getMessage('TRANSFER_MEMBER_RECIPIENT_SUBJ') . ': ' . $SENDER, $msg); + $message = loadEmailTemplate('member_transfer_recipient', $content, postRequestParameter('to_userid')); + sendEmail($content['recipient']['email'], '{--TRANSFER_MEMBER_RECIPIENT_SUBJECT--}' . ': ' . $SENDER, $message); // Second send email to sender - $msg = LOAD_EMAIL_TEMPLATE('member_transfer_sender', '', constant('__SENDER_UID')); - sendEmail(constant('__SENDER_EMAIL'), getMessage('TRANSFER_MEMBER_SENDER_SUBJ') . ': ' . $RECIPIENT, $msg); + $message = loadEmailTemplate('member_transfer_sender', $content, getMemberId()); + sendEmail($content['sender']['email'], '{--TRANSFER_MEMBER_SENDER_SUBJECT--}' . ': ' . $RECIPIENT, $message); // At last send admin mail(s) - $ADMIN_SUBJ = sprintf("%s (%s->%s)", getMessage('TRANSFER_ADMIN_SUBJECT'), $SENDER, $RECIPIENT); - sendAdminNotification($ADMIN_SUBJ, 'admin_transfer_points'); + $adminSubject = sprintf("%s (%s->%s)", '{--TRANSFER_ADMIN_SUBJECT--}', $SENDER, $RECIPIENT); + sendAdminNotification($adminSubject, 'admin_transfer_points', $content); // Transfer is completed - LOAD_TEMPLATE('admin_settings_saved', false, getMessage('TRANSFER_COMPLETED')."
{--TRANSFER_CONTINUE_OVERVIEW--}"); - } elseif (!$valid_code) { + loadTemplate('admin_settings_saved', false, '
{--TRANSFER_COMPLETED--}' . '
{--TRANSFER_CONTINUE_OVERVIEW--}
'); + } elseif ($valid_code === false) { // Invalid Touring code! - LOAD_TEMPLATE('admin_settings_saved', false, "
{--TRANSFER_INVALID_CODE--}
"); - REQUEST_UNSET_POST('ok'); - } elseif (!$valid_pass) { + loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_CODE--}'); + unsetPostRequestParameter('ok'); + } elseif ($valid_pass === false) { // Wrong password entered - LOAD_TEMPLATE('admin_settings_saved', false, "
{--TRANSFER_INVALID_PASSWORD--}
"); - REQUEST_UNSET_POST('ok'); - } elseif (!$valid_amount) { + loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_PASSWORD--}'); + unsetPostRequestParameter('ok'); + } elseif ($valid_amount === false) { // Too much points entered - LOAD_TEMPLATE('admin_settings_saved', false, "
{--TRANSFER_INVALID_POINTS--}
"); - REQUEST_UNSET_POST('ok'); - } elseif (!$valid_reason) { + loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_POINTS--}'); + unsetPostRequestParameter('ok'); + } elseif ($valid_reason === false) { // No transfer reason entered - LOAD_TEMPLATE('admin_settings_saved', false, "
{--TRANSFER_INVALID_REASON--}
"); - REQUEST_UNSET_POST('ok'); - } elseif (!$valid_recipient) { - // No recipient selected - LOAD_TEMPLATE('admin_settings_saved', false, "
{--TRANSFER_INVALID_RECIPIENT--}
"); - REQUEST_UNSET_POST('ok'); - } elseif (!$valid_data) { + loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_REASON--}'); + unsetPostRequestParameter('ok'); + } elseif ($valid_recipient === false) { // No recipient selected - LOAD_TEMPLATE('admin_settings_saved', false, "
{--TRANSFER_INVALID_DATA--}
"); - REQUEST_UNSET_POST('ok'); + loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_RECIPIENT--}'); + unsetPostRequestParameter('ok'); + } elseif ($valid_data === false) { + // No recipient/sender selected + loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_DATA--}'); + unsetPostRequestParameter('ok'); } - } + + // Free result + SQL_FREERESULT($result); + } // END - if if (!isFormSent()) { // Load member list - if (EXT_IS_ACTIVE('nickname')) { + if (isExtensionActive('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` ASC", - array(getUserId()), __FILE__, __LINE__); + $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` ASC", + array(getMemberId()), __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` ASC", - array(getUserId()), __FILE__, __LINE__); + $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` ASC", + array(getMemberId()), __FILE__, __LINE__); } - if (SQL_NUMROWS($result) > 0) { + if (!SQL_HASZERONUMS($result)) { // Load list - $OUT = " + '; // @TODO Try to rewrite his to $content = SQL_FETCHARRAY(), see some lines above for two different queries - while (list($uid, $nick) = SQL_FETCHROW($result)) { - $OUT .= "