2 /************************************************************************
3 * MXChange v0.2.1 Start: 07/03/2004 *
4 * ================ Last change: 08/22/2004 *
6 * -------------------------------------------------------------------- *
7 * File : what-config_rallye_prices.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Setup rallye prices *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Rallye-Preise einrichten *
12 * -------------------------------------------------------------------- *
14 * -------------------------------------------------------------------- *
15 * Copyright (c) 2003 - 2008 by Roland Haeder *
16 * For more information visit: http://www.mxchange.org *
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. *
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. *
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, *
32 ************************************************************************/
34 // Some security stuff...
35 if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
36 $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
40 // Add description as navigation point
41 ADD_DESCR("admin", __FILE__);
43 if (!empty($_GET['rallye']))
46 if (isset($_POST['add']))
48 if ((!empty($_POST['level'])) && ((!empty($_POST['points'])) || (!empty($_POST['info']))))
50 // Submitted data is valid, but maybe we already have this price level?
51 $result = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s AND price_level='%s' LIMIT 1",
52 array(bigintval($_GET['rallye']), bigintval($_POST['level'])), __FILE__, __LINE__);
54 if (SQL_NUMROWS($result) == 0)
56 // Ok, new price level entered!
57 SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_rallye_prices` (rallye_id, price_level, points, info)
58 VALUES ('%s','%s','%s','%s')",
60 bigintval($_GET['rallye']),
61 bigintval($_POST['level']),
64 ), __FILE__, __LINE__);
65 LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_PRICE_LEVEL_SAVED);
70 SQL_FREERESULT($result);
73 LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_PRICE_ALREADY_FOUND);
76 } elseif (isset($_POST['remove'])) {
77 // Check if at last one line is selected
78 $SEL = SELECTION_COUNT($_POST['sel']);
80 // Delete selected entries
81 foreach ($_POST['sel'] as $id => $sel) {
82 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE id=%s LIMIT 1",
83 array(bigintval($id)), __FILE__, __LINE__);
87 LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_ENTRIES_DELETED);
89 LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_ENTRIES_NOT_DELETED);
91 } elseif (isset($_POST['change'])) {
93 foreach ($_POST['level'] as $id => $level) {
98 SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_rallye_prices` SET rallye_id=%s, price_level='%s', points='%s', info='%s' WHERE id=%s LIMIT 1",
99 array($_POST['rallye_id'][$id], bigintval($level), $_POST['points'][$id], $_POST['infos'][$id], $id), __FILE__, __LINE__);
103 LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_ENTRIES_CHANGED);
106 if (isset($_POST['edit'])) {
107 // Check if at last one line is selected
108 $SEL = SELECTION_COUNT($_POST['sel']);
111 // Make selected editable
113 foreach ($_POST['sel'] as $id => $sel)
115 // Load data to selected rallye
116 $result = SQL_QUERY_ESC("SELECT rallye_id, price_level, points, info FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE id=%s LIMIT 1",
117 array(bigintval($id)), __FILE__, __LINE__);
118 list($rallye, $level, $points, $infos) = SQL_FETCHROW($result);
119 SQL_FREERESULT($result);
121 // Prepare data for the row template
125 'rallyes' => ADD_OPTION_LINES("rallye_data", "id", "title", $rallye),
131 // Load row template and switch color
132 $OUT .= LOAD_TEMPLATE("admin_config_rallye_edit_row", true, $content);
135 define('__PRICE_ROWS', $OUT);
137 // Prepare data for the main template
138 define('__RALLYE_ID', $_GET['rallye']);
140 // Load main template
141 LOAD_TEMPLATE("admin_config_rallye_edit");
146 $content = RALLYE_NO_PRICES_SELECTED_1."<a href=\"{!URL!}/modules.php?module=admin&what=config_rallye_prices&rallye=".$_GET['rallye']."\">".RALLYE_NO_PRICES_SELECTED_2."</a>".RALLYE_NO_PRICES_SELECTED_3;
147 LOAD_TEMPLATE("admin_settings_saved", false, $content);
150 elseif (isset($_POST['del']))
152 // Check if at last one line is selected
153 $SEL = SELECTION_COUNT($_POST['sel']);
158 foreach ($_POST['sel'] as $id => $sel)
160 // Load data to selected rallye
161 $result = SQL_QUERY_ESC("SELECT rallye_id, price_level, points, info FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE id=%s LIMIT 1",
162 array(bigintval($id)), __FILE__, __LINE__);
163 list($rallye, $level, $points, $infos) = SQL_FETCHROW($result);
164 SQL_FREERESULT($result);
166 if (empty($infos)) $infos = "---";
168 // Prepare data for the row template
177 // Load row template and switch color
178 $OUT .= LOAD_TEMPLATE("admin_config_rallye_del_row", true, $content);
181 define('__PRICE_ROWS', $OUT);
183 // Prepare data for the main template
184 define('__RALLYE_ID', $_GET['rallye']);
186 // Load main template
187 LOAD_TEMPLATE("admin_config_rallye_del");
192 $content = RALLYE_NO_PRICES_SELECTED_1."<a href=\"{!URL!}/modules.php?module=admin&what=config_rallye_prices&rallye=".$_GET['rallye']."\">".RALLYE_NO_PRICES_SELECTED_2."</a>".RALLYE_NO_PRICES_SELECTED_3;
193 LOAD_TEMPLATE("admin_settings_saved", false, $content);
198 // a rallye was selected, so check if there are already prices assigned...
199 $result = SQL_QUERY_ESC("SELECT id, price_level, points, info FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s ORDER BY price_level",
200 array(bigintval($_GET['rallye'])), __FILE__, __LINE__);
202 if (SQL_NUMROWS($result) > 0)
204 // Load all prices for the selected rallye
206 while (list($id, $level, $points, $infos) = SQL_FETCHROW($result))
208 if (empty($infos)) $infos = "---";
210 // Prepare data for the row template
219 // Load row template and switch color
220 $OUT .= LOAD_TEMPLATE("admin_config_rallye_prices_row", true, $content);
225 SQL_FREERESULT($result);
226 define('__PRICE_ROWS', $OUT);
228 // Prepare data for the main template
229 define('__RALLYE_ID', $_GET['rallye']);
231 // Load main template
232 LOAD_TEMPLATE("admin_config_rallye_prices");
236 // Add form for adding new price level
237 if (empty($_POST['edit']))
239 LOAD_TEMPLATE("admin_add_rallye_prices", false, $_GET['rallye']);
244 // No rallye selected so display all available without prices
245 $result = SQL_QUERY("SELECT d.id, d.admin_id, d.start_time, d.end_time, d.title, a.login, d.is_active
246 FROM `{!_MYSQL_PREFIX!}_rallye_data` AS d, `{!_MYSQL_PREFIX!}_admins` AS a
247 WHERE d.admin_id=a.id ORDER BY start_time DESC", __FILE__, __LINE__);
248 if (SQL_NUMROWS($result) > 0)
250 // List found rallyes
252 while (list($id, $aid, $start, $end, $title, $alogin, $active) = SQL_FETCHROW($result))
254 $select = "<input type=\"checkbox\" name=\"sel[".$id."]\" class=\"admin_normal\" value=\"1\">";
255 if ($active == "Y") $select = "<div class=\"big\">".$id."</div>";
257 // Prepare data for the row template
264 'email_link' => CREATE_EMAIL_LINK($aid),
266 'start' => MAKE_DATETIME($start, "3"),
267 'end' => MAKE_DATETIME($end, "3"),
270 // Load row template and switch color
271 $OUT .= LOAD_TEMPLATE("admin_list_rallye_prices_row", true, $content);
276 SQL_FREERESULT($result);
277 define('__RALLYE_ROWS', $OUT);
279 // Load main template
280 LOAD_TEMPLATE("admin_list_rallye_prices");
284 // No rallyes setup so far
285 LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_NO_RALLYES_SETUP);