]> git.mxchange.org Git - mailer.git/blobdiff - inc/modules/member/what-unconfirmed.php
Unconfirmed mails rewritten, mail confirmation saved in stats table
[mailer.git] / inc / modules / member / what-unconfirmed.php
index 68c90049a3cbc6c936fe5f1a571674f7d5397039..91725bf67df93b839a30cc88012306ca7713dc32 100644 (file)
@@ -44,9 +44,76 @@ if (!defined('__SECURITY')) {
 // Add description as navigation point
 ADD_DESCR("member", __FILE__);
 
+// Shall we display a mail?
+if ((isset($_GET['bonusid'])) && (EXT_IS_ACTIVE("bonus"))) {
+       // Display bonus mail by loading it's full data
+       $result_data = SQL_QUERY_ESC("SELECT id, subject, timestamp, cat_id, points, text, is_notify, data_type, time, url
+FROM "._MYSQL_PREFIX."_bonus
+WHERE id=%s LIMIT 1",
+               array(bigintval($_GET['bonusid'])), __FILE__, __LINE__);
+
+       // Load data
+       $content = SQL_FETCHARRAY($result_data);
+
+       // "Translate some data
+       $content['subject']   = COMPILE_CODE($content['subject']);
+       $content['text']      = COMPILE_CODE($content['text']);
+       $content['timestamp'] = MAKE_DATETIME($content['timestamp'], "2");
+       $content['category']  = GET_CATEGORY($content['cat_id']);
+       $content['points']    = TRANSLATE_COMMA($content['points']);
+       $content['is_notify'] = TRANSLATE_YESNO($content['is_notify']);
+       $content['sender']    = _ADMIN_SHORT;
+       $content['time']      = CREATE_FANCY_TIME($content['time']);
+       $content['uid']       = $GLOBALS['userid'];
+
+       // Get timestamp from insert
+       $content['user_status'] = sprintf(MEMBER_MAIL_BONUS_CONFIRMED_ON,
+               MAKE_DATETIME(USER_STATS_GET_TIMESTAMP("bonusid", $content['id']), "2")
+       );
+
+       // Display it depending on mail (data) type
+       LOAD_TEMPLATE("member_mail_bonus_".strtolower($content['data_type']), false, $content);
+
+       // Free result
+       SQL_FREERESULT($result_data);
+} elseif (isset($_GET['mailid'])) {
+       // Display regular member mail by loading its full data
+       $result_data = SQL_QUERY_ESC("SELECT s.id, s.subject, p.text, s.timestamp_ordered AS `timestamp`, s.cat_id, pay.price AS points, p.sender, pay.time, p.data_type
+FROM "._MYSQL_PREFIX."_user_stats AS s
+LEFT JOIN "._MYSQL_PREFIX."_pool AS p
+ON s.pool_id=p.id
+LEFT JOIN "._MYSQL_PREFIX."_payments AS pay
+ON p.payment_id=pay.id
+WHERE s.id=%s LIMIT 1",
+               array(bigintval($_GET['mailid'])), __FILE__, __LINE__);
+
+       // Load data
+       $content = SQL_FETCHARRAY($result_data);
+
+       // "Translate some data
+       $content['subject']   = COMPILE_CODE($content['subject']);
+       $content['text']      = COMPILE_CODE($content['text']);
+       $content['timestamp'] = MAKE_DATETIME($content['timestamp'], "2");
+       $content['category']  = GET_CATEGORY($content['cat_id']);
+       $content['points']    = TRANSLATE_COMMA($content['points']);
+       $content['time']      = CREATE_FANCY_TIME($content['time']);
+       $content['uid']       = $GLOBALS['userid'];
+
+       // Get timestamp from insert
+       $content['user_status'] = sprintf(MEMBER_MAIL_NORMAL_CONFIRMED_ON,
+               MAKE_DATETIME(USER_STATS_GET_TIMESTAMP("mailid", $content['id']), "2")
+       );
+
+       // Display it depending on mail (data) type
+       LOAD_TEMPLATE("member_mail_normal_".strtolower($content['data_type']), false, $content);
+
+       // Free result
+       SQL_FREERESULT($result_data);
+}
+
 if (EXT_IS_ACTIVE("bonus")) {
        // Load bonus ID
-       $result = SQL_QUERY_ESC("SELECT stats_id, bonus_id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE userid=%s ORDER BY bonus_id DESC",
+       $result = SQL_QUERY_ESC("SELECT stats_id, bonus_id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE userid=%s ORDER BY bonus_id DESC, stats_id DESC",
         array($GLOBALS['userid']), __FILE__, __LINE__);
 } else {
        // Don't load bonus ID
@@ -54,65 +121,82 @@ if (EXT_IS_ACTIVE("bonus")) {
         array($GLOBALS['userid']), __FILE__, __LINE__);
 }
 
-if (SQL_NUMROWS($result) > 0)
-{
+// Mails left for confirmation?
+if (SQL_NUMROWS($result) > 0) {
        // Please confirm these mails!
        $sum = 0; $SW = 2; $OUT = "";
-       while (list($id, $id2, $type) = SQL_FETCHROW($result))
-       {
+       while (list($id, $id2, $type) = SQL_FETCHROW($result)) {
                // Load data from stats table...
                $cat = "";
                switch ($type)
                {
                case "NORMAL":
-                       $result_data = SQL_QUERY_ESC("SELECT subject, subject, timestamp_ordered, cat_id, payment_id, pool_id FROM "._MYSQL_PREFIX."_user_stats WHERE id=%s LIMIT 1",
+                       $result_data = SQL_QUERY_ESC("SELECT s.subject, s.timestamp_ordered, s.cat_id, s.payment_id, p.sender
+FROM "._MYSQL_PREFIX."_user_stats AS s
+LEFT JOIN "._MYSQL_PREFIX."_pool AS p
+ON s.pool_id=p.id
+WHERE s.id=%s
+LIMIT 1",
                         array(bigintval($id)), __FILE__, __LINE__);
                        $type = "mailid"; $DATA = $id; $PROBLEM = NORMAL_MAIL_PROBLEM;
                        break;
 
                case "BONUS":
-                       $result_data = SQL_QUERY_ESC("SELECT subject, text, timestamp, cat_id, points, id FROM "._MYSQL_PREFIX."_bonus WHERE id=%s LIMIT 1",
+                       $result_data = SQL_QUERY_ESC("SELECT subject, timestamp, cat_id, points, 0 FROM "._MYSQL_PREFIX."_bonus WHERE id=%s LIMIT 1",
                         array(bigintval($id2)), __FILE__, __LINE__);
                        $type = "bonusid"; $DATA = $id2; $PROBLEM = BONUS_MAIL_PROBLEM;
                        break;
                }
 
-               if (SQL_NUMROWS($result_data) == 1)
-               {
+               // Data found to this mail?
+               if ((SQL_NUMROWS($result_data) == 1) && (($type == "mailid") || ($type == "bonusid"))) {
                        // Mail was found!
-                       list($subject, $text, $timestamp, $cat, $pay, $pool) = SQL_FETCHROW($result_data);
-                       SQL_FREERESULT($result_data);
-                       if ($type == "NORMAL")
-                       {
-                               $pay = GET_PAY_POINTS($pay, "payment");
-                               $result_text = SQL_QUERY_ESC("SELECT text FROM "._MYSQL_PREFIX."_pool WHERE id=%s LIMIT 1",
-                                array(bigintval($pool)), __FILE__, __LINE__);
-                               list($text) = SQL_FETCHROW($result_text);
-                               SQL_FREERESULT($result_text);
+                       list($subject, $timestamp, $cat, $pay, $sender) = SQL_FETCHROW($result_data);
+
+                       // Subject line found?
+                       if (empty($subject)) {
+                               // No subject line!
+                               $subject = DEFAULT_SUBJECT_LINE;
+                       } else {
+                               // Compile it
+                               $subject = COMPILE_CODE($subject);
+                       }
+
+                       // Prepare sender id
+                       if (($sender > 0) && ($type == "mailid")) {
+                               // Sender id
+                               $sender = bigintval($sender);
+                       } elseif ($type == "bonusid") {
+                               // Is admin
+                               $sender = _ADMIN_SHORT;
+                       } else {
+                               // Deleted
+                               $sender = EMAIL_STATUS_DELETED;
                        }
-                       if (empty($subject)) $subject = DEFAULT_SUBJECT_LINE;
-                       if (empty($text))    $text    = "---";
-                       $subject = COMPILE_CODE($subject);
 
                        // Prepare data for template
                        $content = array(
-                               'sw'     => $SW,
-                               'uid'    => $GLOBALS['userid'],
-                               'data'   => $DATA,
-                               'type'   => $type,
-                               'subj'   => $subject,
-                               'text'   => COMPILE_CODE($text),
-                               'stamp'  => MAKE_DATETIME($timestamp, "0"),
-                               'cat'    => GET_CATEGORY($cat),
-                               'points' => TRANSLATE_COMMA($pay),
+                               'sw'      => $SW,
+                               'uid'     => $GLOBALS['userid'],
+                               'data'    => bigintval($DATA),
+                               'type'    => $type,
+                               'subject' => $subject,
+                               'sender'  => $sender,
+                               'stamp'   => MAKE_DATETIME($timestamp, "2"),
+                               'cat'     => GET_CATEGORY($cat),
+                               'points'  => TRANSLATE_COMMA($pay),
                        );
 
-                       // Load row template and count points
-                       $OUT .= LOAD_TEMPLATE("member_unconfirmed_row", true, $content);
+                       // Load row template
+                       if ($_CONFIG['show_points_unconfirmed'] == "Y") {
+                               $OUT .= LOAD_TEMPLATE("member_unconfirmed_row", true, $content);
+                       } else {
+                               $OUT .= LOAD_TEMPLATE("member_unconfirmed_row_nopoints", true, $content);
+                       }
+
+                       // Count points
                        $sum += $pay;
-               }
-                else
-               {
+               } else {
                        // Prepare data for template
                        $content = array(
                                'sw'    => $SW,
@@ -120,11 +204,20 @@ if (SQL_NUMROWS($result) > 0)
                                'probl' => $PROBLEM,
                        );
 
-                       // Problem with mail detected
-                       $OUT .= LOAD_TEMPLATE("member_unconfirmed_404", true, $content);
+                       // Display points or not?
+                       if ($_CONFIG['show_points_unconfirmed'] == "Y") {
+                               $OUT .= LOAD_TEMPLATE("member_unconfirmed_404", true, $content);
+                       } else {
+                               $OUT .= LOAD_TEMPLATE("member_unconfirmed_404_nopoints", true, $content);
+                       }
                }
+
+               // Free result
+               SQL_FREERESULT($result_data);
+
+               // Switch color
                $SW = 3 - $SW;
-       }
+       } // END - while
 
        // Free memory
        SQL_FREERESULT($result);
@@ -136,7 +229,11 @@ if (SQL_NUMROWS($result) > 0)
        define('__UNCONFIRMED_ROWS', $OUT);
 
        // Load main template
-       LOAD_TEMPLATE("member_unconfirmed_table");
+       if ($_CONFIG['show_points_unconfirmed'] == "Y") {
+               LOAD_TEMPLATE("member_unconfirmed_table");
+       } else {
+               LOAD_TEMPLATE("member_unconfirmed_table_nopoints");
+       }
 }
  else
 {