2 /************************************************************************
\r
3 * MXChange v0.2.1 Start: 09/28/2003 *
\r
4 * =============== Last change: 07/13/2004 *
\r
6 * -------------------------------------------------------------------- *
\r
7 * File : what-unlock_emails.php *
\r
8 * -------------------------------------------------------------------- *
\r
9 * Short description : Unlock ordered emails *
\r
10 * -------------------------------------------------------------------- *
\r
11 * Kurzbeschreibung : Werbebuchungen freigeben *
\r
12 * -------------------------------------------------------------------- *
\r
14 * -------------------------------------------------------------------- *
\r
15 * Copyright (c) 2003 - 2008 by Roland Haeder *
\r
16 * For more information visit: http://www.mxchange.org *
\r
18 * This program is free software; you can redistribute it and/or modify *
\r
19 * it under the terms of the GNU General Public License as published by *
\r
20 * the Free Software Foundation; either version 2 of the License, or *
\r
21 * (at your option) any later version. *
\r
23 * This program is distributed in the hope that it will be useful, *
\r
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
\r
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
\r
26 * GNU General Public License for more details. *
\r
28 * You should have received a copy of the GNU General Public License *
\r
29 * along with this program; if not, write to the Free Software *
\r
30 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
\r
31 * MA 02110-1301 USA *
\r
32 ************************************************************************/
\r
34 // Some security stuff...
\r
35 if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
\r
37 $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";
\r
40 // Add description as navigation point
\r
41 ADD_DESCR("admin", basename(__FILE__));
\r
43 // Define some variables
\r
44 global $DATA, $link;
\r
47 $result_main = SQL_QUERY("SELECT id, sender, subject, payment_id, timestamp, url, target_send, cat_id FROM "._MYSQL_PREFIX."_pool WHERE data_type='ADMIN' ORDER BY timestamp", __FILE__, __LINE__);
\r
49 OPEN_TABLE("100%", "admin_content admin_content_align", "");
\r
50 if ((SQL_NUMROWS($result_main) > 0) || (isset($_POST['lock'])))
\r
52 // Count checked checkboxes
\r
54 if (isset($_POST['sel']))
\r
56 // Are there checked boxes?
\r
57 if (count($_POST['sel']) > 0)
\r
59 // Count now... We use an own function for now
\r
60 $SEL = SELECTION_COUNT($_POST['sel']);
\r
63 if (isset($_POST['accept']))
\r
67 // Accept mail orders
\r
68 foreach ($_POST['sel'] as $id=>$value)
\r
71 $id = bigintval($id);
\r
73 // Unlock selected email
\r
74 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='NEW' WHERE id=%d AND data_type='ADMIN' LIMIT 1",
\r
75 array($id), __FILE__, __LINE__);
\r
76 if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1)
\r
78 // Order placed in queue...
\r
79 $result = SQL_QUERY_ESC("SELECT url, subject, sender FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
\r
80 array($id), __FILE__, __LINE__);
\r
81 $DATA = SQL_FETCHROW($result);
\r
82 SQL_FREERESULT($result);
\r
84 // Check for bonus extension version >= 0.4.4 for the order bonus
\r
85 if ((GET_EXT_VERSION("bonus") >= "0.4.4") && ($CONFIG['bonus_active'] == "Y"))
\r
87 // Add points directly
\r
88 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET bonus_order=bonus_order+".$CONFIG['bonus_order']." WHERE userid=%d LIMIT 1",
\r
89 array(bigintval($DATA[2])), __FILE__, __LINE__);
\r
91 // Subtract bonus points from system
\r
92 BONUS_POINTS_HANDLER($CONFIG['bonus_order']);
\r
95 // Load email template
\r
96 $msg_user = LOAD_EMAIL_TEMPLATE("order-accept", "", $DATA[2]);
\r
99 SEND_EMAIL($DATA[2], MEMBER_ORDER_ACCEPTED, $msg_user);
\r
104 $MSG = ADMIN_MAILS_ACTIVATED;
\r
108 // Nothing checked!
\r
109 $MSG = ADMIN_MAILS_NOTHING_CHECKED;
\r
112 // Mails unlocked for mail delivery
\r
113 LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
\r
115 elseif (isset($_POST['reject']))
\r
119 // Reject mail orders
\r
120 $SW = 2; $OUT = "";
\r
121 foreach ($_POST['sel'] as $id=>$value)
\r
123 // Secure ID number
\r
124 $id = bigintval($id);
\r
126 // Load URL and subject from pool
\r
127 $result = SQL_QUERY_ESC("SELECT url, subject, sender FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
\r
128 array($id), __FILE__, __LINE__);
\r
129 $DATA = SQL_FETCHROW($result);
\r
130 SQL_FREERESULT($result);
\r
132 // Load email template and send it away
\r
133 $msg_user = LOAD_EMAIL_TEMPLATE("order-reject", "", $DATA[2]);
\r
134 SEND_EMAIL($DATA[2], MEMBER_ORDER_REJECTED, $msg_user);
\r
136 // If you do not enter an URL to redirect to, your URL will be set!
\r
137 if ((empty($_POST['redirect'])) || ($_POST['redirect'] == "http://")) $_POST['redirect'] = URL;
\r
140 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET url='%s', data_type='NEW' WHERE id=%d LIMIT 1",
\r
141 array($_POST['redirect'], $id),__FILE__, __LINE__);
\r
143 // Prepare data for the row template
\r
147 'url' => $_POST['url'][$id],
\r
150 // Load row template and switch colors
\r
151 $OUT .= LOAD_TEMPLATE("admin_unlock_emails_redir_row", true, $content);
\r
154 define('__URL_ROWS', $OUT);
\r
156 // Load main template
\r
157 LOAD_TEMPLATE("admin_unlock_emails_redir");
\r
161 // Nothing selected
\r
162 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_MAILS_NOTHING_CHECKED);
\r
165 elseif ((isset($_POST['lock'])) || ($SEL > 0))
\r
170 foreach ($_POST['sel'] as $id=>$url)
\r
172 $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_url_blist WHERE url='%s' LIMIT 1",
\r
173 array($url), __FILE__, __LINE__);
\r
174 if (SQL_NUMROWS($result) == 0)
\r
176 // Did not find a record so we can add it... :)
\r
177 $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_url_blist (url, timestamp) VALUES ('%s', UNIX_TIMESTAMP())",
\r
178 array($url), __FILE__, __LINE__);
\r
183 SQL_FREERESULT($result);
\r
188 $MSG = ADMIN_URLS_BLOCKED;
\r
192 // Nothing selected
\r
193 $MSG = ADMIN_MAILS_NOTHING_CHECKED;
\r
195 LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
\r
197 elseif ((empty($_POST['lock'])) && (empty($_POST['accept'])) && (empty($_POST['reject'])))
\r
199 // Mail orders are in pool so we can display them
\r
200 $SW = 2; $OUT = "";
\r
201 while (list($id, $sender, $subj, $pay, $time, $url, $tsend, $cat) = SQL_FETCHROW($result_main))
\r
203 // Prepare data for the template
\r
207 'sender' => $sender,
\r
208 'u_link' => ADMIN_USER_PROFILE_LINK($sender),
\r
209 'subj' => COMPILE_CODE($subj),
\r
210 'tester' => FRAMETESTER($url),
\r
212 'cat_title' => str_replace("\"", """, GET_CATEGORY($cat)),
\r
213 'cat_link' => $cat,
\r
214 'pay_title' => str_replace("\"", """, GET_PAYMENT($pay, true)),
\r
215 'pay_link' => $pay,
\r
216 'ordered' => MAKE_DATETIME($time, "2"),
\r
220 // Load row template and switch colors
\r
221 $OUT .= LOAD_TEMPLATE("admin_unlock_emails_row", true, $content);
\r
226 SQL_FREERESULT($result);
\r
227 define('__UNLOCK_ROWS', $OUT);
\r
229 // Prepare rejection URL
\r
230 $REJECT = "http://";
\r
231 if (GET_EXT_VERSION("other") >= "0.1.6") $REJECT = $CONFIG['reject_url'];
\r
232 define('__REJECT_URL', $REJECT);
\r
234 // Load main template
\r
235 LOAD_TEMPLATE("admin_unlock_emails");
\r
240 LOAD_TEMPLATE ("admin_settings_saved", false, ADMIN_WRONG_CALL);
\r
245 // No mail orders fond
\r
246 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_MAILS_IN_POOL);
\r