Mahor rewrite:
[mailer.git] / inc / modules / member / what-unconfirmed.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 10/19/2003 *
4  * ===============                              Last change: 07/13/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : what-unconfirmed.php                             *
8  * -------------------------------------------------------------------- *
9  * Short description : Unconfirmed mails                                *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Unbestaetigte Mails                              *
12  * -------------------------------------------------------------------- *
13  *                                                                      *
14  * -------------------------------------------------------------------- *
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
16  * For more information visit: http://www.mxchange.org                  *
17  *                                                                      *
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.                                  *
22  *                                                                      *
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.                         *
27  *                                                                      *
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,               *
31  * MA  02110-1301  USA                                                  *
32  ************************************************************************/
33
34 // Some security stuff...
35 if (!defined('__SECURITY')) {
36         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
37         require($INC);
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");
42 }
43
44 // Add description as navigation point
45 ADD_DESCR("member", __FILE__);
46
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
52 WHERE id=%s LIMIT 1",
53                 array(bigintval($_GET['bonusid'])), __FILE__, __LINE__);
54
55         // Load data
56         $content = SQL_FETCHARRAY($result_data);
57
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'];
68
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")
72         );
73
74         // Display it depending on mail (data) type
75         LOAD_TEMPLATE("member_mail_bonus_".strtolower($content['data_type']), false, $content);
76
77         // Free result
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
84 ON s.pool_id=p.id
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__);
89
90         // Load data
91         $content = SQL_FETCHARRAY($result_data);
92
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'];
101
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")
105         );
106
107         // Display it depending on mail (data) type
108         LOAD_TEMPLATE("member_mail_normal_".strtolower($content['data_type']), false, $content);
109
110         // Free result
111         SQL_FREERESULT($result_data);
112 }
113
114 if (EXT_IS_ACTIVE("bonus")) {
115         // Load bonus ID
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__);
118 } else {
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__);
122 }
123
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 = "";
131                 switch ($type)
132                 {
133                 case "NORMAL":
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
137 ON s.pool_id=p.id
138 WHERE s.id=%s
139 LIMIT 1",
140                          array(bigintval($id)), __FILE__, __LINE__);
141                         $type = "mailid"; $DATA = $id; $PROBLEM = NORMAL_MAIL_PROBLEM;
142                         break;
143
144                 case "BONUS":
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;
148                         break;
149                 }
150
151                 // Data found to this mail?
152                 if ((SQL_NUMROWS($result_data) == 1) && (($type == "mailid") || ($type == "bonusid"))) {
153                         // Mail was found!
154                         list($subject, $timestamp, $cat, $pay, $sender) = SQL_FETCHROW($result_data);
155
156                         // Subject line found?
157                         if (empty($subject)) {
158                                 // No subject line!
159                                 $subject = DEFAULT_SUBJECT_LINE;
160                         } else {
161                                 // Compile it
162                                 $subject = COMPILE_CODE($subject);
163                         }
164
165                         // Prepare sender id
166                         if (($sender > 0) && ($type == "mailid")) {
167                                 // Sender id
168                                 $sender = bigintval($sender);
169                         } elseif ($type == "bonusid") {
170                                 // Is admin
171                                 $sender = _ADMIN_SHORT;
172                         } else {
173                                 // Deleted
174                                 $sender = EMAIL_STATUS_DELETED;
175                         }
176
177                         // Prepare data for template
178                         $content = array(
179                                 'sw'      => $SW,
180                                 'uid'     => $GLOBALS['userid'],
181                                 'data'    => bigintval($DATA),
182                                 'type'    => $type,
183                                 'subject' => $subject,
184                                 'sender'  => $sender,
185                                 'stamp'   => MAKE_DATETIME($timestamp, "2"),
186                                 'cat'     => GET_CATEGORY($cat),
187                                 'points'  => TRANSLATE_COMMA($pay),
188                         );
189
190                         // Load row template
191                         if (getConfig('show_points_unconfirmed') == "Y") {
192                                 $OUT .= LOAD_TEMPLATE("member_unconfirmed_row", true, $content);
193                         } else {
194                                 $OUT .= LOAD_TEMPLATE("member_unconfirmed_row_nopoints", true, $content);
195                         }
196
197                         // Count points
198                         $sum += $pay;
199                 } else {
200                         // Prepare data for template
201                         $content = array(
202                                 'sw'    => $SW,
203                                 'data'  => $DATA,
204                                 'probl' => $PROBLEM,
205                         );
206
207                         // Display points or not?
208                         if (getConfig('show_points_unconfirmed') == "Y") {
209                                 $OUT .= LOAD_TEMPLATE("member_unconfirmed_404", true, $content);
210                         } else {
211                                 $OUT .= LOAD_TEMPLATE("member_unconfirmed_404_nopoints", true, $content);
212                         }
213                 }
214
215                 // Free result
216                 SQL_FREERESULT($result_data);
217
218                 // Switch color
219                 $SW = 3 - $SW;
220         } // END - while
221
222         // Free memory
223         SQL_FREERESULT($result);
224
225         // Remember total points
226         define('__TOTAL_POINTS', TRANSLATE_COMMA($sum));
227
228         // Remember all generated rows in constant for the template
229         define('__UNCONFIRMED_ROWS', $OUT);
230
231         // Load main template
232         if (getConfig('show_points_unconfirmed') == "Y") {
233                 LOAD_TEMPLATE("member_unconfirmed_table");
234         } else {
235                 LOAD_TEMPLATE("member_unconfirmed_table_nopoints");
236         }
237 }
238  else
239 {
240         // No mails left to confirm... :)
241         LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_NO_MAILS_TO_CONFIRM);
242 }
243
244 //
245 ?>