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 (REQUEST_ISSET_GET(('rallye'))) {
45 if (REQUEST_ISSET_POST(('add'))) {
46 if ((REQUEST_ISSET_POST(('level'))) && ((REQUEST_ISSET_POST(('points'))) || (REQUEST_ISSET_POST(('info'))))) {
47 // Submitted data is valid, but maybe we already have this price level?
48 $result = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s AND price_level='%s' LIMIT 1",
49 array(bigintval(REQUEST_GET('rallye')), bigintval(REQUEST_POST('level'))), __FILE__, __LINE__);
51 if (SQL_NUMROWS($result) == 0) {
52 // Ok, new price level entered!
53 SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_rallye_prices` (rallye_id, price_level, points, info)
54 VALUES ('%s','%s','%s','%s')",
56 bigintval(REQUEST_GET('rallye')),
57 bigintval(REQUEST_POST('level')),
58 REQUEST_POST('points'),
60 ), __FILE__, __LINE__);
61 LOAD_TEMPLATE("admin_settings_saved", false, getMessage('RALLYE_PRICE_LEVEL_SAVED'));
64 SQL_FREERESULT($result);
67 LOAD_TEMPLATE("admin_settings_saved", false, getMessage('RALLYE_PRICE_ALREADY_FOUND'));
70 } elseif (REQUEST_ISSET_POST(('remove'))) {
71 // Check if at last one line is selected
72 $SEL = SELECTION_COUNT(REQUEST_POST('sel'));
74 // Delete selected entries
75 foreach (REQUEST_POST('sel') as $id => $sel) {
76 SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE id=%s LIMIT 1",
77 array(bigintval($id)), __FILE__, __LINE__);
81 LOAD_TEMPLATE("admin_settings_saved", false, getMessage('RALLYE_ENTRIES_DELETED'));
83 LOAD_TEMPLATE("admin_settings_saved", false, getMessage('RALLYE_ENTRIES_NOT_DELETED'));
85 } elseif (REQUEST_ISSET_POST(('change'))) {
87 foreach (REQUEST_POST('level') as $id => $level) {
92 SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_rallye_prices` SET rallye_id=%s, price_level='%s', points='%s', info='%s' WHERE id=%s LIMIT 1",
94 REQUEST_POST('rallye_id', $id),
96 REQUEST_POST('points', $id]),
97 REQUEST_POST('infos', $id),
99 ), __FILE__, __LINE__);
103 LOAD_TEMPLATE("admin_settings_saved", false, getMessage('RALLYE_ENTRIES_CHANGED'));
106 if (REQUEST_ISSET_POST('edit')) {
107 // Check if at last one line is selected
108 $SEL = SELECTION_COUNT(REQUEST_POST('sel'));
110 // Make selected editable
112 foreach (REQUEST_POST('sel') as $id => $sel) {
113 // Load data to selected rallye
114 $result = SQL_QUERY_ESC("SELECT rallye_id, price_level, points, info FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE id=%s LIMIT 1",
115 array(bigintval($id)), __FILE__, __LINE__);
116 list($rallye, $level, $points, $infos) = SQL_FETCHROW($result);
117 SQL_FREERESULT($result);
119 // Prepare data for the row template
123 'rallyes' => ADD_OPTION_LINES("rallye_data", "id", "title", $rallye),
129 // Load row template and switch color
130 $OUT .= LOAD_TEMPLATE("admin_config_rallye_edit_row", true, $content);
133 define('__PRICE_ROWS', $OUT);
135 // Prepare data for the main template
136 define('__RALLYE_ID', REQUEST_GET('rallye'));
138 // Load main template
139 LOAD_TEMPLATE("admin_config_rallye_edit");
142 $content = sprintf(getMessage('RALLYE_NO_PRICES_SELECTED'), "<a href=\"{!URL!}/modules.php?module=admin&what=config_rallye_prices&rallye=".REQUEST_GET('rallye')."\">", "</a>");
143 LOAD_TEMPLATE("admin_settings_saved", false, $content);
145 } elseif (REQUEST_ISSET_POST('del')) {
146 // Check if at last one line is selected
147 $SEL = SELECTION_COUNT(REQUEST_POST('sel'));
151 foreach (REQUEST_POST('sel') as $id => $sel) {
152 // Load data to selected rallye
153 $result = SQL_QUERY_ESC("SELECT rallye_id, price_level, points, info FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE id=%s LIMIT 1",
154 array(bigintval($id)), __FILE__, __LINE__);
155 list($rallye, $level, $points, $infos) = SQL_FETCHROW($result);
156 SQL_FREERESULT($result);
158 if (empty($infos)) $infos = "---";
160 // Prepare data for the row template
169 // Load row template and switch color
170 $OUT .= LOAD_TEMPLATE("admin_config_rallye_del_row", true, $content);
173 define('__PRICE_ROWS', $OUT);
175 // Prepare data for the main template
176 define('__RALLYE_ID', REQUEST_GET('rallye'));
178 // Load main template
179 LOAD_TEMPLATE("admin_config_rallye_del");
182 $content = RALLYE_NO_PRICES_SELECTED_1."<a href=\"{!URL!}/modules.php?module=admin&what=config_rallye_prices&rallye=".REQUEST_GET('rallye')."\">".RALLYE_NO_PRICES_SELECTED_2."</a>".RALLYE_NO_PRICES_SELECTED_3;
183 LOAD_TEMPLATE("admin_settings_saved", false, $content);
186 // a rallye was selected, so check if there are already prices assigned...
187 $result = SQL_QUERY_ESC("SELECT id, price_level, points, info FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s ORDER BY price_level",
188 array(bigintval(REQUEST_GET('rallye'))), __FILE__, __LINE__);
190 if (SQL_NUMROWS($result) > 0) {
191 // Load all prices for the selected rallye
193 while ($content = SQL_FETCHARRAY($result)) {
195 if (empty($content['info'])) $content['info'] = "---";
197 // Prepare data for the row template
198 // @TODO Rewritings: level->price_level, infos->info in template
201 'id' => $content['id'],
202 'level' => $content['price_level'],
203 'points' => $content['points'],
204 'infos' => $content['info'],
207 // Load row template and switch color
208 $OUT .= LOAD_TEMPLATE("admin_config_rallye_prices_row", true, $content);
213 SQL_FREERESULT($result);
215 // @TODO Rewrite these two constants
216 define('__PRICE_ROWS', $OUT);
218 // Prepare data for the main template
219 define('__RALLYE_ID', REQUEST_GET('rallye'));
221 // Load main template
222 LOAD_TEMPLATE("admin_config_rallye_prices");
226 // Add form for adding new price level
227 if (!REQUEST_ISSET_POST('edit')) {
228 LOAD_TEMPLATE("admin_add_rallye_prices", false, REQUEST_GET('rallye'));
231 // No rallye selected so display all available without prices
232 $result = SQL_QUERY("SELECT d.id, d.admin_id, d.start_time, d.end_time, d.title, a.login, d.is_active
233 FROM `{!_MYSQL_PREFIX!}_rallye_data` AS d, `{!_MYSQL_PREFIX!}_admins` AS a
234 WHERE d.admin_id=a.id ORDER BY start_time DESC", __FILE__, __LINE__);
235 if (SQL_NUMROWS($result) > 0) {
236 // List found rallyes
238 while ($content = SQL_FETCHARRAY($result)) {
239 $select = "<input type=\"checkbox\" name=\"sel[".$content['id']."]\" class=\"admin_normal\" value=\"1\">";
240 if ($content['is_active'] == "Y") $select = "<div class=\"big\">".$content['id']."</div>";
242 // Prepare data for the row template
243 // @TODO Rewritings: aid->admin_id, alogin->login in template
246 'id' => $content['id'],
248 'title' => $content['title'],
249 'aid' => $content['admin_id'],
250 'email_link' => CREATE_EMAIL_LINK($content['admin_id']),
251 'alogin' => $content['login'],
252 'start' => MAKE_DATETIME($content['start_time'], "3"),
253 'end' => MAKE_DATETIME($content['end_time'], "3"),
256 // Load row template and switch color
257 $OUT .= LOAD_TEMPLATE("admin_list_rallye_prices_row", true, $content);
262 SQL_FREERESULT($result);
263 define('__RALLYE_ROWS', $OUT);
265 // Load main template
266 LOAD_TEMPLATE("admin_list_rallye_prices");
268 // No rallyes setup so far
269 LOAD_TEMPLATE("admin_settings_saved", false, getMessage('RALLYE_NO_RALLYES_SETUP'));