- Major change in menu system. You need to rewrite/update your member and guest
[mailer.git] / inc / modules / member / what-transfer.php
index 7e65b6fadb5f852e8976dd115898beb4acccab54..59d36bc655c7eeef9a58ca7d21c3ed6ba0a2203a 100644 (file)
@@ -35,7 +35,7 @@
 if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
-} elseif (!IS_LOGGED_IN()) {
+} elseif (!IS_MEMBER()) {
        LOAD_URL("modules.php?module=index");
 } elseif ((!EXT_IS_ACTIVE("transfer")) && (!IS_ADMIN())) {
        ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "transfer");
@@ -46,7 +46,7 @@ if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
 ADD_DESCR("member", basename(__FILE__));
 
 // Load data
-$result = SQL_QUERY_ESC("SELECT opt_in FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+$result = SQL_QUERY_ESC("SELECT opt_in FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
  array($GLOBALS['userid']), __FILE__, __LINE__);
 list($opt_in) = SQL_FETCHROW($result);
 
@@ -57,19 +57,19 @@ $MODE = "";
 if (!empty($_GET['mode'])) $MODE = $_GET['mode'];
 
 // Check for "faker"
-if (($opt_in == 'N') && ($MODE == "new")) $MODE = "";
+if (($opt_in == "N") && ($MODE == "new")) $MODE = "";
 
 switch ($MODE)
 {
 case "new": // Start new transfer
        // Get total points and subtract the balance amount from it = maximum transferable points
-       $result = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_user_points WHERE userid=%d AND points > 0",
+       $result = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_user_points WHERE userid=%s AND points > 0",
         array($GLOBALS['userid']), __FILE__, __LINE__);
        list($total) = SQL_FETCHROW($result);
        SQL_FREERESULT($result);
 
        // Get totally used points and password
-       $result = SQL_QUERY_ESC("SELECT used_points, password FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+       $result = SQL_QUERY_ESC("SELECT used_points, password FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
         array($GLOBALS['userid']), __FILE__, __LINE__);
        list($used, $pass) = SQL_FETCHROW($result);
        SQL_FREERESULT($result);
@@ -112,26 +112,26 @@ case "new": // Start new transfer
                        $nick = true;
                }
                // Re-check receivers and own personal data
-               $result = SQL_QUERY_ESC("SELECT userid, sex, surname, family, email".$ADD." FROM "._MYSQL_PREFIX."_user_data WHERE userid IN ('%s', '%s') AND status='CONFIRMED' ORDER BY userid LIMIT 2",
+               $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($GLOBALS['userid'], bigintval($_POST['to_uid'])), __FILE__, __LINE__);
                $valid_data = (SQL_NUMROWS($result) == 2);
 
                if ($valid_code && $valid_pass && $valid_amount && $valid_reason && $valid_recipient)
                {
                        // Let's start the transfer and load user data
-                       list($uid1, $sex1, $sname1, $fname1, $email1, $nick1) = SQL_FETCHROW($result);
-                       list($uid2, $sex2, $sname2, $fname2, $email2, $nick2) = SQL_FETCHROW($result);
+                       list($uid1, $gender1, $sname1, $fname1, $email1, $nick1) = SQL_FETCHROW($result);
+                       list($uid2, $gender2, $sname2, $fname2, $email2, $nick2) = SQL_FETCHROW($result);
                        SQL_FREERESULT($result);
                        if ($uid1 == $GLOBALS['userid'])
                        {
                                // Data row 1 is sender's data
-                               define('__SENDER_SEX'     , TRANSLATE_SEX($sex1));
+                               define('__SENDER_GENDER'     , TRANSLATE_GENDER($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_SEX'  , TRANSLATE_SEX($sex2));
+                               define('__RECIPIENT_GENDER'  , TRANSLATE_GENDER($gender2));
                                define('__RECIPIENT_NICK' , $nick2);
                                define('__RECIPIENT_SNAME', $sname2);
                                define('__RECIPIENT_FNAME', $fname2);
@@ -144,13 +144,13 @@ case "new": // Start new transfer
                         else
                        {
                                // Data row 2 is sender's data
-                               define('__SENDER_SEX'     , TRANSLATE_SEX($sex2));
+                               define('__SENDER_GENDER'     , TRANSLATE_GENDER($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_SEX'  , TRANSLATE_SEX($sex1));
+                               define('__RECIPIENT_GENDER'  , TRANSLATE_GENDER($gender1));
                                define('__RECIPIENT_NICK' , $nick1);
                                define('__RECIPIENT_SNAME', $sname1);
                                define('__RECIPIENT_FNAME', $fname1);
@@ -201,12 +201,11 @@ case "new": // Start new transfer
                         __FILE__, __LINE__);
 
                        // Add points to account *directly* ...
-                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth=0 LIMIT 1",
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%s AND ref_depth=0 LIMIT 1",
                         array(bigintval($_POST['points']), bigintval($_POST['to_uid'])), __FILE__, __LINE__);
 
                        // ... and add it to current user's used points
-                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
-                        array(bigintval($_POST['points']), $GLOBALS['userid']), __FILE__, __LINE__);
+                       SUB_POINTS($GLOBALS['userid'], $_POST['points']);
 
                        // First send email to recipient
                        $msg = LOAD_EMAIL_TEMPLATE("member_transfer_recipient", "", __RECIPIENT_UID);
@@ -217,21 +216,11 @@ case "new": // Start new transfer
                        SEND_EMAIL(__SENDER_EMAIL, TRANSFER_MEMBER_SENDER_SUBJ.": ".$RECIPIENT, $msg);
 
                        // At last send admin mail(s)
-                       $ADMIN_SUBJ = TRANSFER_ADMIN_SUBJECT." (".$SENDER."->".$RECIPIENT.")";
-                       if (GET_EXT_VERSION("admins") >= "0.4.1")
-                       {
-                               SEND_ADMIN_EMAILS_PRO($ADMIN_SUBJ, "admin_transfer_points");
-                       }
-                        else
-                       {
-                               $msg = LOAD_EMAIL_TEMPLATE("admin_transfer_points");
-                               SEND_ADMIN_EMAILS($ADMIN_SUBJ, $msg);
-                       }
+                       $ADMIN_SUBJ = sprintf("%s (%s->%s)", TRANSFER_ADMIN_SUBJECT, $SENDER, $RECIPIENT);
+                       SEND_ADMIN_NOTIFICATION($ADMIN_SUBJ, "admin_transfer_points");
 
                        // Transfer is completed
-                       OUTPUT_HTML("<P>");
                        LOAD_TEMPLATE("admin_settings_saved", false, TRANSFER_COMPLETED."<br /><A href=\"".URL."/modules.php?module=login&amp;what=transfer\">".TRANSFER_CONTINUE_OVERVIEW."</A>");
-                       OUTPUT_HTML("</P>");
                }
                 elseif (!$valid_code)
                {
@@ -358,14 +347,14 @@ case "list_out": // List only outgoing transactions
        switch ($MODE)
        {
        case "list_in":
-               $SQL = "SELECT trans_id, from_uid, points, reason, time_trans FROM "._MYSQL_PREFIX."_user_transfers_in WHERE userid=%d ORDER BY time_trans DESC LIMIT ".$_CONFIG['transfer_max'];
+               $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 ".$_CONFIG['transfer_max'];
                $NOTHING = TRANSFER_NO_INCOMING_TRANSFERS;
                define('__TRANSFER_SUM', TRANSFER_TOTAL_INCOMING);
                define('__TRANSFER_TITLE', TRANSFER_LIST_INCOMING);
                break;
 
        case "list_out":
-               $SQL = "SELECT trans_id, to_uid, points, reason, time_trans FROM "._MYSQL_PREFIX."_user_transfers_out WHERE userid=%d ORDER BY time_trans DESC LIMIT ".$_CONFIG['transfer_max'];
+               $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 ".$_CONFIG['transfer_max'];
                $NOTHING = TRANSFER_NO_OUTGOING_TRANSFERS;
                define('__TRANSFER_SUM', TRANSFER_TOTAL_OUTGOING);
                define('__TRANSFER_TITLE', TRANSFER_LIST_OUTGOING);
@@ -373,7 +362,7 @@ case "list_out": // List only outgoing transactions
        }
 
        // Run the SQL command
-       $total = "0";
+       $total = 0;
        $result = SQL_QUERY_ESC($SQL, array($GLOBALS['userid']), __FILE__, __LINE__);
        if (SQL_NUMROWS($result) > 0)
        {
@@ -432,17 +421,17 @@ case "list_all": // List all transactions
        //
        // 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) not null default '0',
-points bigint(20) 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',
+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=%d ORDER BY id LIMIT %s",
+       $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'], $_CONFIG['transfer_max']), __FILE__, __LINE__);
        while ($DATA = SQL_FETCHROW($result))
        {
@@ -455,7 +444,7 @@ array($GLOBALS['userid'], $_CONFIG['transfer_max']), __FILE__, __LINE__);
        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=%d ORDER BY id LIMIT %s",
+       $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'], $_CONFIG['transfer_max']), __FILE__, __LINE__);
        while ($DATA = SQL_FETCHROW($result))
        {
@@ -467,7 +456,7 @@ array($GLOBALS['userid'], $_CONFIG['transfer_max']), __FILE__, __LINE__);
        // Free memory
        SQL_FREERESULT($result);
 
-       $total = "0";
+       $total = 0;
        if (SQL_NUMROWS($result) > 0)
        {
                // Output rows
@@ -534,7 +523,7 @@ array($GLOBALS['userid'], $_CONFIG['transfer_max']), __FILE__, __LINE__);
 
 case "": // Overview page
        // Check incoming transfers
-       $result = SQL_QUERY_ESC("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_user_transfers_in WHERE userid=%d", array($GLOBALS['userid']), __FILE__, __LINE__);
+       $result = SQL_QUERY_ESC("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_user_transfers_in WHERE userid=%s", array($GLOBALS['userid']), __FILE__, __LINE__);
        list($dmy) = SQL_FETCHROW($result);
        SQL_FREERESULT($result);
 
@@ -549,7 +538,7 @@ case "": // Overview page
        }
 
        // Check outgoing transfers
-       $result = SQL_QUERY_ESC("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_user_transfers_out WHERE userid=%d", array($GLOBALS['userid']), __FILE__, __LINE__);
+       $result = SQL_QUERY_ESC("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_user_transfers_out WHERE userid=%s", array($GLOBALS['userid']), __FILE__, __LINE__);
        list($dmy) = SQL_FETCHROW($result);
        SQL_FREERESULT($result);
 
@@ -576,7 +565,7 @@ case "": // Overview page
        if (isset($_POST['ok']))
        {
                // Save settings
-               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET opt_in='%s' WHERE userid=%d LIMIT 1",
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET opt_in='%s' WHERE userid=%s LIMIT 1",
                 array($_POST['opt_in'], $GLOBALS['userid']), __FILE__, __LINE__);
 
                // Rember for next switch() command
@@ -601,7 +590,7 @@ case "": // Overview page
        }
 
        // Check for latest out-transfers
-       $result = SQL_QUERY_ESC("SELECT time_trans FROM "._MYSQL_PREFIX."_user_transfers_out WHERE time_trans > ".(time() - $_CONFIG['transfer_timeout'])." AND userid=%d ORDER BY time_trans DESC LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+       $result = SQL_QUERY_ESC("SELECT time_trans FROM "._MYSQL_PREFIX."_user_transfers_out WHERE time_trans > ".(time() - $_CONFIG['transfer_timeout'])." AND userid=%s ORDER BY time_trans DESC LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
        if (SQL_NUMROWS($result) == 0)
        {
                // Load template