2 /************************************************************************
\r
3 * MXChange v0.2.1 Start: 10/12/2003 *
\r
4 * =============== Last change: 12/12/2004 *
\r
6 * -------------------------------------------------------------------- *
\r
7 * File : what-config_points.php *
\r
8 * -------------------------------------------------------------------- *
\r
9 * Short description : Setup welcome-points for registration etc. *
\r
10 * -------------------------------------------------------------------- *
\r
11 * Kurzbeschreibung : Einstellen der Willkommensgutschrift usw. *
\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
43 // Add description as navigation point
\r
44 ADD_DESCR("admin", basename(__FILE__));
\r
46 OPEN_TABLE("100%", "admin_content admin_content_align", "");
\r
47 if (!empty($_GET['sub']))
\r
49 switch ($_GET['sub'])
\r
52 if ((empty($_POST['points_register'])) || (empty($_POST['points_ref'])))
\r
54 unset($_POST['ok']);
\r
59 if (isset($_GET['do']))
\r
61 if (((empty($_POST['lvl'])) || (empty($_POST['perc']))) && ($_GET['do'] == "add"))
\r
63 unset($_POST['ok']);
\r
72 $_GET['sub'] = "overview";
\r
75 if (isset($_POST['ok']))
\r
78 switch ($_GET['sub'])
\r
81 $SQL[] = "UPDATE "._MYSQL_PREFIX."_config SET points_register='".$_POST['points_register']."', points_ref='".$_POST['points_ref']."' WHERE config='0' LIMIT 1";
\r
85 switch ($_GET['do'])
\r
88 $SQL[] = "INSERT INTO "._MYSQL_PREFIX."_refdepths (level, percents) VALUES ('".$_POST['lvl']."', '".$_POST['perc']."')";
\r
91 case "edit": // Change entries
\r
92 foreach ($_POST['lvl'] as $id=>$value)
\r
95 $id = bigintval($id);
\r
98 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_refdepths SET level='%s', percents='%s' WHERE id=%d LIMIT 1",
\r
99 array(bigintval($value), $_POST['perc'][$id], $id), __FILE__, __LINE__);
\r
101 $TEXT = REF_DEPTHS_SAVED;
\r
105 foreach ($_POST['id'] as $id=>$value)
\r
107 $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_refdepths WHERE id=%d LIMIT 1",
\r
108 array(bigintval($id)), __FILE__, __LINE__);
\r
110 $TEXT = REF_DEPTHS_DELETED;
\r
114 // Update cache file
\r
115 if (GET_EXT_VERSION("cache") >= "0.1.2")
\r
117 if ($CACHE->cache_file("refdepths", true)) $CACHE->cache_destroy();
\r
122 $REF = bigintval($_POST['ref_payout']);
\r
123 $SQL[] = sprintf("UPDATE "._MYSQL_PREFIX."_config SET
\r
124 allow_direct_pay='%s',
\r
125 reg_points_mode='%s',
\r
127 WHERE config='0' LIMIT 1",
\r
128 $_POST['direct_pay'],
\r
132 if (($CONFIG['ref_payout'] == 0) && ($_POST['ref_payout'] > 0))
\r
134 // Update account's ref_payout for "must-confirm"
\r
135 $SQL[] = sprintf("UPDATE "._MYSQL_PREFIX."_user_data SET ref_payout=(%d - mails_confirmed)
\r
136 WHERE mails_confirmed < %d", $REF, $REF);
\r
138 elseif (($CONFIG['ref_payout'] > 0) && ($_POST['ref_payout'] == 0))
\r
140 // Update account's ref_payout for "not-must-confirm"
\r
141 $SQL[] = "UPDATE "._MYSQL_PREFIX."_user_data SET ref_payout=0 WHERE ref_payout > 0";
\r
142 $SQL[] = "UPDATE "._MYSQL_PREFIX."_user_points SET points=points+locked_points WHERE locked_points>0";
\r
143 $SQL[] = "UPDATE "._MYSQL_PREFIX."_user_points SET locked_points=0 WHERE locked_points>0";
\r
149 if (strpos($SQL[0], "INSERT") > -1)
\r
151 $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_refdepths WHERE level='%s' LIMIT 1",
\r
152 array(bigintval($_POST['lvl'])), __FILE__, __LINE__);
\r
153 SQL_FREERESULT($result);
\r
155 if (count($SQL) > 0)
\r
157 // Run all SQL commands
\r
158 foreach ($SQL as $s)
\r
160 $result = SQL_QUERY($s, __FILE__, __LINE__);
\r
163 $content = "<SPAN class=\"admin_done\">".SETTINGS_SAVED."</SPAN>";
\r
165 // Destroy config cache file here...
\r
166 if (GET_EXT_VERSION("cache") >= "0.1.2")
\r
168 if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy();
\r
174 $content = "<SPAN class=\"admin_failed\">".SETTINGS_NOT_SAVED."</SPAN>";
\r
177 LOAD_TEMPLATE("admin_settings_saved", false, $content);
\r
179 elseif (isset($TEXT))
\r
181 LOAD_TEMPLATE("admin_settings_saved", false, $TEXT);
\r
184 elseif ($_GET['sub'] == "settings")
\r
186 // Setup some settings like direct pay and so on
\r
187 // Including new add-mode for one-time referral bonus
\r
188 switch ($CONFIG['direct_pay'])
\r
191 define('__DIRECT_Y', " checked");
\r
192 define('__DIRECT_N', "");
\r
196 define('__DIRECT_Y', "");
\r
197 define('__DIRECT_N', " checked");
\r
201 // One-time referral bonus add-mode
\r
202 switch ($CONFIG['reg_points_mode'])
\r
204 case "ref" : define('__MODE_REF', " checked"); define('__MODE_DIRECT', ""); break;
\r
205 case "direct": define('__MODE_REF', ""); define('__MODE_DIRECT', " checked"); break;
\r
208 // Referral payout value
\r
209 define('__REF_PAYOUT', round($CONFIG['ref_payout']));
\r
212 LOAD_TEMPLATE("admin_config_point_settings");
\r
214 elseif ($_GET['sub'] == "ref")
\r
216 if ((isset($_POST['del'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0]))))
\r
219 $SW = 2; $OUT = "";
\r
220 foreach ($_POST['sel'] as $id=>$value)
\r
222 $result = SQL_QUERY_ESC("SELECT level, percents FROM "._MYSQL_PREFIX."_refdepths WHERE id=%d LIMIT 1",
\r
223 array(bigintval($id)), __FILE__, __LINE__);
\r
224 list($lvl, $perc) = SQL_FETCHROW($result);
\r
225 SQL_FREERESULT($result);
\r
227 // Prepare data for the row template
\r
235 // Load row template and switch color
\r
236 $OUT .= LOAD_TEMPLATE("admin_points_del_row", true, $content);
\r
239 define('__LEVEL_ROWS', $OUT);
\r
241 // Load main template
\r
242 LOAD_TEMPLATE("admin_points_del");
\r
244 elseif ((isset($_POST['edit'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0]))))
\r
247 $SW = 2; $OUT = "";
\r
248 foreach ($_POST['sel'] as $id=>$value)
\r
250 $result = SQL_QUERY_ESC("SELECT level, percents FROM "._MYSQL_PREFIX."_refdepths WHERE id=%d LIMIT 1",
\r
251 array(bigintval($id)), __FILE__, __LINE__);
\r
252 list($lvl, $perc) = SQL_FETCHROW($result);
\r
253 SQL_FREERESULT($result);
\r
255 // Prepare data for the row template
\r
263 // Load row template and switch color
\r
264 $OUT .= LOAD_TEMPLATE("admin_points_edit_row", true, $content);
\r
267 define('__LEVEL_ROWS', $OUT);
\r
269 // Load main template
\r
270 LOAD_TEMPLATE("admin_points_edit");
\r
275 $result = SQL_QUERY("SELECT id, level, percents FROM "._MYSQL_PREFIX."_refdepths ORDER BY level", __FILE__, __LINE__);
\r
276 if (SQL_NUMROWS($result) > 0)
\r
278 // Make referral levels editable and deletable
\r
279 $SW = 2; $OUT = "";
\r
281 // List already existing categories for editing
\r
282 while (list($id, $lvl, $perc) = SQL_FETCHROW($result))
\r
284 // Prepare data for the row template
\r
292 // Load row template and switch color
\r
293 $OUT .= LOAD_TEMPLATE("admin_points_row", true, $content);
\r
298 SQL_FREERESULT($result);
\r
299 define('__LEVEL_ROWS', $OUT);
\r
301 // Load main template
\r
302 LOAD_TEMPLATE("admin_points");
\r
305 // Form for adding new referral levels
\r
306 LOAD_TEMPLATE("admin_add_reflvl");
\r
309 elseif ($_GET['sub'] == "points")
\r
311 // First points for registration and other fixed points including new add-mode for one-time referral bonus...
\r
312 define('P_REG_VALUE', $CONFIG['points_register']);
\r
313 define('P_REF_VALUE', $CONFIG['points_ref']);
\r
316 LOAD_TEMPLATE("admin_config_sub_points");
\r
320 // Display selection box
\r
321 LOAD_TEMPLATE("admin_config_points");
\r