2 /************************************************************************
3 * MXChange v0.2.1 Start: 02/12/2004 *
4 * ================ Last change: 02/27/2004 *
6 * -------------------------------------------------------------------- *
7 * File : what-del_email.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Delete a bonus or normal mail *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Bonus- / Normal-Mail loeschen *
12 * -------------------------------------------------------------------- *
14 * Module by Robert Niedziela, Megacomputing *
15 * web : http://mc-p.mcserver.de *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2008 by Roland Haeder *
19 * For more information visit: http://www.mxchange.org *
21 * This program is free software; you can redistribute it and/or modify *
22 * it under the terms of the GNU General Public License as published by *
23 * the Free Software Foundation; either version 2 of the License, or *
24 * (at your option) any later version. *
26 * This program is distributed in the hope that it will be useful, *
27 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
29 * GNU General Public License for more details. *
31 * You should have received a copy of the GNU General Public License *
32 * along with this program; if not, write to the Free Software *
33 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
35 ************************************************************************/
37 // Some security stuff...
38 if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
39 $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
43 // Add description as navigation point
44 ADD_DESCR("admin", __FILE__);
46 // Init counter for deleted mails
49 if (!empty($_GET['mid'])) {
51 $result = SQL_QUERY_ESC("SELECT id, sender, subject, url, timestamp, payment_id FROM "._MYSQL_PREFIX."_pool WHERE id=%s LIMIT 1",
52 array(bigintval($_GET['mid'])), __FILE__, __LINE__);
54 // Delete mail only once
55 if (SQL_NUMROWS($result) == 1) {
57 list ($id, $sender, $subject, $url, $timestamp, $payId) = SQL_FETCHROW($result);
58 SQL_FREERESULT($result);
60 // Get points we shall pay back per mail
61 $price = GET_PAY_POINTS($payId, "price");
63 // Prepare data for the template
65 define('__SENDER' , ADMIN_USER_PROFILE_LINK($sender));
66 define('__SUBJECT', $subject);
67 define('__URL' , DEREFERER($url));
68 define('__ORDERED', MAKE_DATETIME($timestamp, "0"));
71 LOAD_TEMPLATE("admin_del_email_normal");
73 // Transfer data to data array
74 $DATA = array('url' => $url, 'subject' => $subject);
76 // Load email template and send the email away
77 $msg_user = LOAD_EMAIL_TEMPLATE("order-deleted", array(), $sender);
78 SEND_EMAIL($sender, MEMBER_ORDER_DELETED, $msg_user);
80 // Fetch right stats_id from pool
81 $result_pool = SQL_QUERY_ESC("SELECT s.id FROM "._MYSQL_PREFIX."_user_stats AS s
82 LEFT JOIN "._MYSQL_PREFIX."_pool AS p
84 WHERE s.pool_id=%s LIMIT 1",
85 array(bigintval($_GET['mid'])), __FILE__, __LINE__);
86 if (SQL_NUMROWS($result_pool) == 1) {
88 list($stats_id) = SQL_FETCHROW($result_pool);
91 $links = GET_TOTAL_DATA($stats_id, "user_links", "userid", "stats_id", true);
93 // Reset sent mails for recipient(s)
94 REDUCT_RECIPIENT_RECEIVED_MAILS("stats_id", $_GET['mid'], $links);
96 // Calc total points and pay them back
97 $totalPoints = $links * $price;
99 // Shall we pay the points back to the user?
100 if (getConfig('repay_deleted_mails') != "SHRED") {
101 //* DEBUG: */ echo $stats_id.":".$totalPoints."/".$links."/".$price."<br />\n";
102 if ($totalPoints > 0) {
103 // Shall we payback to user or jackpot?
104 if (getConfig('repay_deleted_mails') == "JACKPOT") {
110 //* DEBUG: */ echo "PAYBACK:".$sender."<br />\n";
111 ADD_POINTS_REFSYSTEM("mail_deleted", $sender, $totalPoints, true, "0", false,"direct");
114 if (getConfig('repay_deleted_mails') == "REPAY") {
116 LOAD_TEMPLATE("admin_settings_saved", false, sprintf(ADMIN_POINTS_REPAYED,
117 TRANSLATE_COMMA($totalPoints)
121 LOAD_TEMPLATE("admin_settings_saved", false, sprintf(ADMIN_POINTS_TO_JACKPOT,
122 TRANSLATE_COMMA($totalPoints)
126 // No points repayed!
127 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_POINTS_REPAYED);
131 LOAD_TEMPLATE("admin_settings_saved", false, sprintf(ADMIN_POINTS_SHREDDED, $totalPoints));
134 // Remove links from DB
135 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%s",
136 array(bigintval($stats_id)), __FILE__, __LINE__);
137 $cnt += SQL_AFFECTEDROWS();
139 // Load template for link
140 LOAD_TEMPLATE("admin_settings_saved", false, "<a href=\"".URL."/modules.php?module=admin&what=del_email&pid=".bigintval($_GET['mid'])."\">".ADMIN_REMOVE_STATS_ENTRY."</a>");
144 SQL_FREERESULT($result_pool);
146 // Delete mail from queue
147 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_pool WHERE id=%s LIMIT 1",
148 array(bigintval($_GET['mid'])), __FILE__, __LINE__);
149 $cnt += SQL_AFFECTEDROWS();
151 // Output link for manually removing stats entry
152 OUTPUT_HTML(sprintf(ADMIN_DELETED_MAILS_COUNT, $cnt));
154 // Mail already deleted!
155 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NORMAL_MAIL_ALREADY_DELETED);
157 } elseif (!empty($_GET['pid'])) {
158 // Remove stats entries
159 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%s LIMIT 1",
160 array(bigintval($_GET['pid'])), __FILE__, __LINE__);
163 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_USER_STATS_REMOVED);
164 } elseif ((!empty($_GET['bid'])) && (EXT_IS_ACTIVE("bonus"))) {
165 // Load data from bonus mail
166 $result = SQL_QUERY_ESC("SELECT id, subject, url, timestamp, mails_sent FROM "._MYSQL_PREFIX."_bonus WHERE id=%s",
167 array(bigintval($_GET['bid'])), __FILE__, __LINE__);
169 // Delete mail only once
170 if (SQL_NUMROWS($result) == 1) {
172 list ($id, $subject, $url, $timestamp, $sent) = SQL_FETCHROW($result);
174 // Reset sent mails for recipient(s)
175 REDUCT_RECIPIENT_RECEIVED_MAILS ("bonus_id", $_GET['bid'], $sent);
177 // Init counter for deleted mails
180 // Delete bonus mail entirely from database
181 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus WHERE id=%s LIMIT 1",
182 array(bigintval($_GET['bid'])), __FILE__, __LINE__);
183 $cnt += SQL_AFFECTEDROWS();
184 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%s",
185 array(bigintval($_GET['bid'])), __FILE__, __LINE__);
186 $cnt += SQL_AFFECTEDROWS();
188 // Prepare data for the template
189 define('__ID' , $id);
190 define('__SUBJECT', $subject);
191 define('__URL' , DEREFERER($url));
192 define('__ORDERED', MAKE_DATETIME($timestamp, "0"));
193 define('__CNT' , $cnt);
196 LOAD_TEMPLATE("admin_del_email_bonus");
198 // Mail already deleted!
199 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_MAIL_ALREADY_DELETED);
203 SQL_FREERESULT($result);
204 } elseif ((!empty($_GET['nid'])) && (GET_EXT_VERSION("bonus") >= "0.8.7")) {
205 // Load data from bonus mail
206 $result = SQL_QUERY_ESC("SELECT id, subject, url, timestamp FROM "._MYSQL_PREFIX."_bonus WHERE id=%s",
207 array(bigintval($_GET['nid'])), __FILE__, __LINE__);
209 // Delete mail only once
210 if (SQL_NUMROWS($result) == 1) {
212 list ($id, $subject, $url, $timestamp) = SQL_FETCHROW($result);
213 SQL_FREERESULT($result);
215 // Init counter for deleted mails
218 // Delete bonus mail entirely from database
219 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus WHERE id=%s LIMIT 1",
220 array(bigintval($_GET['nid'])), __FILE__, __LINE__);
221 $cnt += SQL_AFFECTEDROWS();
222 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%s",
223 array(bigintval($_GET['nid'])), __FILE__, __LINE__);
224 $cnt += SQL_AFFECTEDROWS();
226 // Prepare data for the template
227 define('__ID' , $id);
228 define('__SUBJECT', $subject);
229 define('__URL' , DEREFERER($url));
230 define('__ORDERED', MAKE_DATETIME($timestamp, "0"));
231 define('__CNT' , $cnt);
234 LOAD_TEMPLATE("admin_del_email_notify");
236 // Mail already deleted!
237 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NOTIFY_MAIL_ALREADY_DELETED);
240 // No mail orders fond
241 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_WRONG_CALL);