0)) { // Get task id from database $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `userid`=%s AND `task_type`='PAYOUT_REQUEST' AND `task_created`=%s LIMIT 1", array(bigintval($userid), bigintval($tstamp)), __FILE__, __LINE__); list($task) = SQL_FETCHROW($result); SQL_FREERESULT($result); if (empty($task)) $task = '0'; } elseif ((empty($userid)) || ($userid == '0')) { // Cannot obtain member id! loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_FAILED_OBTAIN_USERID')); } else { // Get task id from URL $task = getRequestParameter('task'); } if ((!empty($task)) && (!empty($userid)) && ($userid > 0)) { // Load user's data if (!fetchUserData($userid)) { // Abort here because it is not valid! debug_report_bug('No user account ' . $userid . ' found.'); } // END - if if ((getRequestParameter('do') == 'accept') && (!empty(getUserData('email')))) { // Ok, now we can output the form or execute accepting if (isFormSent()) { // Obtain payout type and other data $result = SQL_QUERY_ESC("SELECT `payout_id` FROM `{?_MYSQL_PREFIX?}_user_payouts` WHERE `id`=%s LIMIT 1", array(bigintval(getRequestParameter('pid'))), __FILE__, __LINE__); list($ptype) = SQL_FETCHROW($result); SQL_FREERESULT($result); if (!empty($ptype)) { // Obtain data from payout type $result = SQL_QUERY_ESC("SELECT `from_account`, `from_pass`, `engine_url`, `engine_ret_ok`, `engine_ret_failed`, `pass_enc`, `allow_url` FROM `{?_MYSQL_PREFIX?}_payout_types` WHERE `id`=%s LIMIT 1", array(bigintval($ptype)), __FILE__, __LINE__); list($fuserid, $fpass, $eurl, $eok, $failed, $eenc, $allow) = SQL_FETCHROW($result); SQL_FREERESULT($result); if (!empty($eurl)) { // Ok, run URL... switch ($eenc) { case 'md5': $fpass = md5($fpass); $tpass = md5($tpass); break; case 'base64': $fpass = base64_encode($fpass); $tpass = base64_encode($tpass); break; } // Transfer variables... $eval = '$url = "' . $eurl . '";'; $reason = encodeString(getMessage('PAYOUT_REASON_PAYOUT'), false); // Run code... // @TODO Do we need this time-consuming eval() here? eval($eval); // Execute transfer $ret = sendGetRequest($url); } else { // No URL to run $ret[0] = $eok; } if ($ret[0] == $eok) { // Clear task if ($task > 0) { runFilterChain('solve_task', $task); } // Clear payout request SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_payouts` SET `status`='ACCEPTED' WHERE `id`=%s LIMIT 1", array(bigintval(getRequestParameter('pid'))), __FILE__, __LINE__); // Send out mail $message = loadEmailTemplate('member_payout_accepted', postRequestParameter('text'), $userid); // Output message if ($allow == 'Y') { // Banner / Textlink request loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_BANNER_ACCEPTED_NOTIFIED')); } else { // Normal request loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_ACCEPTED_NOTIFIED')); } // Finally send mail sendEmail(getUserData('email'), getMessage('PAYOUT_ACCEPTED_SUBJECT'), $message); } else { // Something goes wrong... :-( $content = implode("
", $ret); loadTemplate('admin_payout_failed_transfer', false, $content); } } else { // Cannot load payout id loadTemplate('admin_settings_saved', false, '
{--PAYOUT_FAILED_OBTAIN_PAYOUT_ID--}
'); } } else { // Prepare content $content = array( 'task' => $task, 'pid' => bigintval(getRequestParameter('pid')), 'user' => '' . translateGender(getUserData('gender')) . ' ' . getUserData('surname') . ' ' . getUserData('family') . '', ); // Load template loadTemplate('admin_payout_accept_form', false, $content); } } elseif ((getRequestParameter('do') == 'reject') && (!empty(getUserData('email')))) { // Ok, now we can output the form or execute rejecting if (isFormSent()) { if ($task > 0) { // Clear task runFilterChain('solve_task', $task); } // END - if // Clear payout request SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_payouts` SET `status`='REJECTED' WHERE `id`=%s LIMIT 1", array(bigintval(getRequestParameter('pid'))), __FILE__, __LINE__); // Send out mail $message = loadEmailTemplate('member_payout_rejected', postRequestParameter('text'), $userid); // Output message loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_REJECTED_NOTIFIED')); // Finally send mail sendEmail(getUserData('email'), getMessage('PAYOUT_REJECTED_SUBJECT'), $message); } else { // Prepare content $content = array( 'task' => $task, 'pid' => bigintval(getRequestParameter('pid')), 'user' => '' . translateGender(getUserData('gender')) . ' ' . getUserData('surname') . ' ' . getUserData('family') . '', ); // Load template loadTemplate('admin_payout_reject_form', false, $content); } } else { // Cannot load user data loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_FAILED_OBTAIN_USERDATA')); } } elseif ((empty($task)) || ($task == '0')) { // Failed loading task id loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_FAILED_OBTAIN_TASK_ID')); } } else { if (getRequestParameter('do') == 'delete') { // Delete all requests $result = SQL_QUERY("TRUNCATE `{?_MYSQL_PREFIX?}_user_payouts`", __FILE__, __LINE__); } // END - if // Search for payouts $result = SQL_QUERY("SELECT p.id, p.userid, p.payout_total, p.target_account, p.target_bank, t.type, p.payout_timestamp, p.status, t.allow_url AS allow, p.target_url AS url, p.link_text AS alt, p.banner_url AS banner FROM `{?_MYSQL_PREFIX?}_user_payouts` AS p LEFT JOIN `{?_MYSQL_PREFIX?}_payout_types` AS t ON p.payout_id=t.id ORDER BY p.payout_timestamp DESC", __FILE__, __LINE__); if (SQL_NUMROWS($result) > 0) { // List found payouts $OUT = ''; $SW = 2; while ($content = SQL_FETCHARRAY($result)) { if ($content['status'] == 'NEW') { // Generate links for direct accepting and rejecting $content['status'] = '{--PAYOUT_ACCEPT_PAYOUT--} | {--PAYOUT_REJECT_PAYOUT--}'; } else { // Translate status $content['status'] = getMessage('PAYOUT_STATUS_'.strtoupper($content['status']).''); $content['status'] = '
' . $content['status'] . '
'; } // Nothing entered must be secured in member/what-payputs.php ! if ($content['allow'] == 'Y') { // Banner/Textlink views/clicks request if (!empty($content['banner'])) { // Load template for the banner $content['target_account'] = loadTemplate('admin_list_payouts_banner', true, $content); } else { // Textlink $content['target_account'] = loadTemplate('admin_list_payouts_txt', true, $content); } // Admins can addionally test the URL for framekillers $content['target_bank'] = '{--CLICK_HERE--}'; } else { // e-currency payout request if (empty($content['target_account'])) $content['target_account'] = '---'; if (empty($content['target_bank'])) $content['target_bank'] = '---'; } // Remember data in array for the template $content = array( 'sw' => $SW, 'ulink' => generateUserProfileLink($content['userid']), 'ptype' => translateComma($content['payout_total']) . ' ' . $content['type'], 'account' => $content['target_account'], 'bank' => $content['target_bank'], 'tstamp' => generateDateTime($content['payout_timestamp'], 2), 'status' => $content['status'], ); // Add row and switch color $OUT .= loadTemplate('admin_list_payouts_row', true, $content); $SW = 3 - $SW; } // END - while // Free memory SQL_FREERESULT($result); // Load final template loadTemplate('admin_list_payouts', false, $OUT); } else { // No payout requests are sent so far loadTemplate('admin_settings_saved', false, getMessage('PAYOUT_ADMIN_NO_REQUESTS_FOUND')); } } // [EOF] ?>