2 /************************************************************************
3 * MXChange v0.2.1 Start: 10/19/2003 *
4 * =============== Last change: 07/13/2004 *
6 * -------------------------------------------------------------------- *
7 * File : what-unconfirmed.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Unconfirmed mails *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Unbestaetigte Mails *
12 * -------------------------------------------------------------------- *
14 * -------------------------------------------------------------------- *
15 * Copyright (c) 2003 - 2008 by Roland Haeder *
16 * For more information visit: http://www.mxchange.org *
18 * This program is free software; you can redistribute it and/or modify *
19 * it under the terms of the GNU General Public License as published by *
20 * the Free Software Foundation; either version 2 of the License, or *
21 * (at your option) any later version. *
23 * This program is distributed in the hope that it will be useful, *
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
26 * GNU General Public License for more details. *
28 * You should have received a copy of the GNU General Public License *
29 * along with this program; if not, write to the Free Software *
30 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
32 ************************************************************************/
34 // Some security stuff...
35 if (!defined('__SECURITY')) {
36 $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
38 } elseif (!IS_MEMBER()) {
39 LOAD_URL("modules.php?module=index");
40 } elseif ((!EXT_IS_ACTIVE("mailid")) && (!IS_ADMIN())) {
41 LOAD_URL("modules.php?module=login");
44 // Add description as navigation point
45 ADD_DESCR("member", __FILE__);
47 // Shall we display a mail?
48 if ((isset($_GET['bonusid'])) && (EXT_IS_ACTIVE("bonus"))) {
49 // Display bonus mail by loading it's full data
50 $result_data = SQL_QUERY_ESC("SELECT id, subject, timestamp, cat_id, points, text, is_notify, data_type, time, url
51 FROM "._MYSQL_PREFIX."_bonus
53 array(bigintval($_GET['bonusid'])), __FILE__, __LINE__);
56 $content = SQL_FETCHARRAY($result_data);
58 // "Translate some data
59 $content['subject'] = COMPILE_CODE($content['subject']);
60 $content['text'] = COMPILE_CODE($content['text']);
61 $content['timestamp'] = MAKE_DATETIME($content['timestamp'], "2");
62 $content['category'] = GET_CATEGORY($content['cat_id']);
63 $content['points'] = TRANSLATE_COMMA($content['points']);
64 $content['is_notify'] = TRANSLATE_YESNO($content['is_notify']);
65 $content['sender'] = _ADMIN_SHORT;
66 $content['time'] = CREATE_FANCY_TIME($content['time']);
67 $content['uid'] = $GLOBALS['userid'];
69 // Get timestamp from insert
70 $content['user_status'] = sprintf(MEMBER_MAIL_BONUS_CONFIRMED_ON,
71 MAKE_DATETIME(USER_STATS_GET_TIMESTAMP("bonusid", $content['id']), "2")
74 // Display it depending on mail (data) type
75 LOAD_TEMPLATE("member_mail_bonus_".strtolower($content['data_type']), false, $content);
78 SQL_FREERESULT($result_data);
79 } elseif (isset($_GET['mailid'])) {
80 // Display regular member mail by loading its full data
81 $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
82 FROM "._MYSQL_PREFIX."_user_stats AS s
83 LEFT JOIN "._MYSQL_PREFIX."_pool AS p
85 LEFT JOIN "._MYSQL_PREFIX."_payments AS pay
86 ON p.payment_id=pay.id
87 WHERE s.id=%s LIMIT 1",
88 array(bigintval($_GET['mailid'])), __FILE__, __LINE__);
91 $content = SQL_FETCHARRAY($result_data);
93 // "Translate some data
94 $content['subject'] = COMPILE_CODE($content['subject']);
95 $content['text'] = COMPILE_CODE($content['text']);
96 $content['timestamp'] = MAKE_DATETIME($content['timestamp'], "2");
97 $content['category'] = GET_CATEGORY($content['cat_id']);
98 $content['points'] = TRANSLATE_COMMA($content['points']);
99 $content['time'] = CREATE_FANCY_TIME($content['time']);
100 $content['uid'] = $GLOBALS['userid'];
102 // Get timestamp from insert
103 $content['user_status'] = sprintf(MEMBER_MAIL_NORMAL_CONFIRMED_ON,
104 MAKE_DATETIME(USER_STATS_GET_TIMESTAMP("mailid", $content['id']), "2")
107 // Display it depending on mail (data) type
108 LOAD_TEMPLATE("member_mail_normal_".strtolower($content['data_type']), false, $content);
111 SQL_FREERESULT($result_data);
114 if (EXT_IS_ACTIVE("bonus")) {
116 $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",
117 array($GLOBALS['userid']), __FILE__, __LINE__);
119 // Don't load bonus ID
120 $result = SQL_QUERY_ESC("SELECT stats_id, stats_id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE userid=%s ORDER BY stats_id DESC",
121 array($GLOBALS['userid']), __FILE__, __LINE__);
124 // Mails left for confirmation?
125 if (SQL_NUMROWS($result) > 0) {
126 // Please confirm these mails!
127 $sum = 0; $SW = 2; $OUT = "";
128 while (list($id, $id2, $type) = SQL_FETCHROW($result)) {
129 // Load data from stats table...
130 $cat = ""; $result_data = false;
134 $result_data = SQL_QUERY_ESC("SELECT s.subject, s.timestamp_ordered, s.cat_id, s.payment_id, p.sender
135 FROM "._MYSQL_PREFIX."_user_stats AS s
136 LEFT JOIN "._MYSQL_PREFIX."_pool AS p
140 array(bigintval($id)), __FILE__, __LINE__);
141 $type = "mailid"; $DATA = $id; $PROBLEM = NORMAL_MAIL_PROBLEM;
145 $result_data = SQL_QUERY_ESC("SELECT subject, timestamp, cat_id, points, 0 FROM "._MYSQL_PREFIX."_bonus WHERE id=%s LIMIT 1",
146 array(bigintval($id2)), __FILE__, __LINE__);
147 $type = "bonusid"; $DATA = $id2; $PROBLEM = BONUS_MAIL_PROBLEM;
150 default: // Unknown type detected!
151 DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown mail type %s detected.", $type));
155 // Data found to this mail?
156 if ((SQL_NUMROWS($result_data) == 1) && (($type == "mailid") || ($type == "bonusid"))) {
158 list($subject, $timestamp, $cat, $pay, $sender) = SQL_FETCHROW($result_data);
160 // Subject line found?
161 if (empty($subject)) {
163 $subject = DEFAULT_SUBJECT_LINE;
166 $subject = COMPILE_CODE($subject);
170 if (($sender > 0) && ($type == "mailid")) {
172 $sender = bigintval($sender);
173 } elseif ($type == "bonusid") {
175 $sender = _ADMIN_SHORT;
178 $sender = EMAIL_STATUS_DELETED;
181 // Prepare data for template
184 'uid' => $GLOBALS['userid'],
185 'data' => bigintval($DATA),
187 'subject' => $subject,
189 'stamp' => MAKE_DATETIME($timestamp, "2"),
190 'cat' => GET_CATEGORY($cat),
191 'points' => TRANSLATE_COMMA($pay),
195 if (getConfig('show_points_unconfirmed') == "Y") {
196 $OUT .= LOAD_TEMPLATE("member_unconfirmed_row", true, $content);
198 $OUT .= LOAD_TEMPLATE("member_unconfirmed_row_nopoints", true, $content);
204 // Prepare data for template
211 // Display points or not?
212 if (getConfig('show_points_unconfirmed') == "Y") {
213 $OUT .= LOAD_TEMPLATE("member_unconfirmed_404", true, $content);
215 $OUT .= LOAD_TEMPLATE("member_unconfirmed_404_nopoints", true, $content);
220 SQL_FREERESULT($result_data);
227 SQL_FREERESULT($result);
229 // Remember total points
230 define('__TOTAL_POINTS', TRANSLATE_COMMA($sum));
232 // Remember all generated rows in constant for the template
233 define('__UNCONFIRMED_ROWS', $OUT);
235 // Load main template
236 if (getConfig('show_points_unconfirmed') == "Y") {
237 LOAD_TEMPLATE("member_unconfirmed_table");
239 LOAD_TEMPLATE("member_unconfirmed_table_nopoints");
242 // No mails left to confirm... :)
243 LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_NO_MAILS_TO_CONFIRM);