(no commit message)
[mailer.git] / 0.2.1 / inc / modules / admin / what-send_bonus.php
1 <?php\r
2 /************************************************************************\r
3  * MXChange v0.2.1                                    Start: 09/28/2003 *\r
4  * ===============                              Last change: 08/05/2004 *\r
5  *                                                                      *\r
6  * -------------------------------------------------------------------- *\r
7  * File              : what-send_bonus.php                              *\r
8  * -------------------------------------------------------------------- *\r
9  * Short description : Send out bonus mails to all members              *\r
10  * -------------------------------------------------------------------- *\r
11  * Kurzbeschreibung  : An alle Mitglieder Bonus-Mails verschicken       *\r
12  * -------------------------------------------------------------------- *\r
13  *                                                                      *\r
14  * -------------------------------------------------------------------- *\r
15  * Copyright (c) 2003 - 2007 by Roland Haeder                           *\r
16  * For more information visit: http://www.mxchange.org                  *\r
17  *                                                                      *\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
22  *                                                                      *\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
27  *                                                                      *\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
33 \r
34 // Some security stuff...\r
35 if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))\r
36 {\r
37         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";\r
38         require($INC);\r
39 }\r
40 // Add description as navigation point\r
41 ADD_DESCR("admin", basename(__FILE__));\r
42 \r
43 $WHERE = " WHERE visible='Y'";\r
44 if (is_admin()) $WHERE = "";\r
45 $EXT_HTML = EXT_IS_ACTIVE("html_mail");\r
46 if (empty($_GET['mode'])) $_GET['mode'] = "select";\r
47 \r
48 OPEN_TABLE("100%", "admin_content admin_content_align", "");\r
49 if (isset($_POST['ok']))\r
50 {\r
51         // Check if category and number of receivers is okay\r
52         $CAT_TABS = "%s"; $CAT_WHERE = ""; $cat = "";\r
53         if ($_POST['cat'] > 0)\r
54         {\r
55                 // Select category\r
56                 $CAT_TABS  = "LEFT JOIN "._MYSQL_PREFIX."_user_cats AS c ON d.userid=c.userid";\r
57                 $cat = bigintval($_POST['cat']);\r
58                 $CAT_WHERE = " AND c.cat_id=%d";\r
59         }\r
60         if (GET_EXT_VERSION("holiday") >= "0.1.3")\r
61         {\r
62                 // Add something for the holiday extension\r
63                 $CAT_WHERE .= " AND d.holiday_active='N'";\r
64         }\r
65 \r
66         if (($EXT_HTML) && ($_GET['mode'] == "html"))\r
67         {\r
68                 // Only include HTML receivers\r
69                 $result = SQL_QUERY_ESC("SELECT d.userid FROM "._MYSQL_PREFIX."_user_data AS d ".$CAT_TABS." WHERE d.status='CONFIRMED' AND d.html='Y'".$CAT_WHERE." ORDER BY d.%s %s LIMIT %s",\r
70                  array($cat, $CONFIG['order_select'], $CONFIG['order_mode'], bigintval($_POST['receiver'])), __FILE__, __LINE__);\r
71         }\r
72          else\r
73         {\r
74                 // Include all\r
75                 $result = SQL_QUERY_ESC("SELECT d.userid FROM "._MYSQL_PREFIX."_user_data AS d ".$CAT_TABS." WHERE d.status='CONFIRMED'".$CAT_WHERE." ORDER BY d.%s %s LIMIT %s",\r
76                  array($cat, $CONFIG['order_select'], $CONFIG['order_mode'], bigintval($_POST['receiver'])), __FILE__, __LINE__);\r
77         }\r
78         if ((SQL_NUMROWS($result) == $_POST['receiver']) && ($_POST['receiver'] > 0))\r
79         {\r
80                 $RECEIVER = "";\r
81                 while (list($REC) = SQL_FETCHROW($result))\r
82                 {\r
83                         // Add receiver when not empty\r
84                         if (!empty($REC)) $RECEIVER .= ";".$REC;\r
85                 }\r
86 \r
87                 // Free memory\r
88                 SQL_FREERESULT($result);\r
89                 $RECEIVER = substr($RECEIVER, 1);\r
90 \r
91                 // Gettings points is oka, so we can add $USED later from\r
92                 if ($EXT_HTML)\r
93                 {\r
94                         $HTML = "N";\r
95                         if ($_GET['mode'] == "html") $HTML = "Y";\r
96                         $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus\r
97 (subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, mails_sent, html_msg)\r
98 VALUES ('%s', '%s', '%s', '%s', '%s', 'NEW', UNIX_TIMESTAMP(), '%s', '%s', '%s', '%s', '%s')",\r
99  array(\r
100         $_POST['subject'],\r
101         addslashes($_POST['text']),\r
102         $RECEIVER,\r
103         $_POST['points'],\r
104         $_POST['seconds'],\r
105         $_POST['url'],\r
106         $cat,\r
107         SELECTION_COUNT(explode(";", $RECEIVER)),\r
108         bigintval($_POST['receiver']),\r
109         $HTML\r
110 ), __FILE__, __LINE__);\r
111                 }\r
112                  else\r
113                 {\r
114                         $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus\r
115 (subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, mails_sent)\r
116 VALUES ('%s', '%s', '%s', '%s', '%s', 'NEW', UNIX_TIMESTAMP(), '%s', '%s', '%s', '%s')",\r
117  array(\r
118         $_POST['subject'],\r
119         addslashes($_POST['text']),\r
120         $RECEIVER,\r
121         $_POST['points'],\r
122         $_POST['seconds'],\r
123         $_POST['url'],\r
124         $cat,\r
125         SELECTION_COUNT(explode(";", $RECEIVER)),\r
126         bigintval($_POST['receiver']),\r
127 ), __FILE__, __LINE__);\r
128                 }\r
129 \r
130                 // Mail inserted into bonus pool\r
131                 LOAD_TEMPLATE ("admin_settings_saved", false, ADMIN_BONUS_SEND);\r
132         }\r
133          else\r
134         {\r
135                 // More entered than can be reached!\r
136                 LOAD_TEMPLATE ("admin_settings_saved", false, ADMIN_MORE_SELECTED);\r
137         }\r
138         if (!empty($URL))\r
139         {\r
140                 // Redirect to requested URL\r
141                 LOAD_URL($URL);\r
142         }\r
143 }\r
144  else\r
145 {\r
146         $result = SQL_QUERY("SELECT id, cat FROM "._MYSQL_PREFIX."_cats".$WHERE." ORDER BY sort", __FILE__, __LINE__);\r
147         if (SQL_NUMROWS($result) > 0)\r
148         {\r
149                 $MORE = "";\r
150                 if ($_GET['mode'] == "html") $MORE = " AND html='Y'";\r
151                 if (GET_EXT_VERSION("holiday") >= "0.1.3")\r
152                 {\r
153                         // Add something for the holiday extension\r
154                         $MORE .= " AND holiday_active='N'";\r
155                 }\r
156 \r
157                 $result_all = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND receive_mails > 0".$MORE, __FILE__, __LINE__);\r
158                 define('__ALL_VALUE', SQL_NUMROWS($result_all));\r
159                 // Initialize array...\r
160                 $CATS = array(\r
161                         'id'   => array(),\r
162                         'name' => array(),\r
163                         'uids' => array()\r
164                 );\r
165                 // ... and begin loading stuff\r
166                 while (list($id, $cat) = SQL_FETCHROW($result))\r
167                 {\r
168                         $CATS['id'][]   = $id;\r
169                         $CATS['name'][] = $cat;\r
170                         $result_uids = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_cats WHERE cat_id=%d",\r
171                          array(bigintval($id)), __FILE__, __LINE__);\r
172                         $uid_cnt = "0";\r
173                         while (list($ucat) = SQL_FETCHROW($result_uids))\r
174                         {\r
175                                 $result_ver = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data\r
176 WHERE userid=%d AND status='CONFIRMED' AND receive_mails > 0".$MORE." LIMIT 1",\r
177  array(bigintval($ucat)), __FILE__, __LINE__);\r
178                                 $uid_cnt += SQL_NUMROWS($result_ver);\r
179 \r
180                                 // Free memory\r
181                                 SQL_FREERESULT($result_ver);\r
182                         }\r
183 \r
184                         // Free memory\r
185                         SQL_FREERESULT($result_uids);\r
186                         $CATS['uids'][] = $uid_cnt;\r
187                 }\r
188 \r
189                 // Free memory\r
190                 SQL_FREERESULT($result);\r
191 \r
192                 if (!empty($MSG))\r
193                 {\r
194                         // We got system message so we drop it out to the user\r
195                         LOAD_TEMPLATE("admin_settings_saved", false, $MSG);\r
196                 }\r
197                 if ($EXT_HTML)\r
198                 {\r
199                         // If HTML extension is active\r
200                         define('__HTML_SELECT',  LOAD_TEMPLATE("admin_send_bonus_html", true));\r
201                 }\r
202                  else\r
203                 {\r
204                         // And if not\r
205                         define('__HTML_SELECT', "");\r
206                 }\r
207 \r
208                 // Generate options\r
209                 $OUT = "";\r
210                 foreach ($CATS['id'] as $key=>$value)\r
211                 {\r
212                         if (strlen($CATS['name'][$key]) > 20) $CATS['name'][$key] = substr($CATS['name'][$key], 0, 17)."...";\r
213                         $OUT .= "      <OPTION value=\"".$value."\">".$CATS['name'][$key]." (".$CATS['uids'][$key]." ".USER_IN_CAT.")</OPTION>\n";\r
214                 }\r
215                 define('__OPTION_LINES', $OUT);\r
216 \r
217                 // Store send mode\r
218                 define('__MODE', $_GET['mode']);\r
219 \r
220                 // Select template\r
221                 switch($_GET['mode'])\r
222                 {\r
223                 case "html":   // HTML mails\r
224                 case "normal": // Normal mails\r
225                         $template = "admin_send_bonus_form";\r
226                         break;\r
227 \r
228                 case "select": // Selection\r
229                         $template = "admin_send_bonus_select";\r
230                         break;\r
231                 }\r
232 \r
233                 // Load template\r
234                 LOAD_TEMPLATE($template);\r
235         }\r
236          else\r
237         {\r
238                 // No cateogries are defined yet\r
239                 OUTPUT_HTML ("<STRONG><SPAN class=\"member_failed\">".MEMBER_NO_CATS."</SPAN></STRONG>");\r
240         }\r
241 }\r
242 CLOSE_TABLE();\r
243 //\r
244 ?>\r