$selected) { // Remove selected rallye entirely... addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE `id`=%s LIMIT 1", array(bigintval($id)), __FILE__, __LINE__, FALSE)); addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `rallye_id`=%s", array(bigintval($id)), __FILE__, __LINE__, FALSE)); addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_rallye_users` WHERE `rallye_id`=%s", array(bigintval($id)), __FILE__, __LINE__, FALSE)); } // END - foreach // Run SQLS runFilterChain('run_sqls'); // Output message $message = '{--ADMIN_RALLYE_DELETED--}'; } else { // No rallye selected to delete! $message = '{--ADMIN_RALLYE_DELETE_NOTHING_SELECTED--}'; } } elseif (isFormSent('do_edit')) { // Change rallye if (ifPostContainsSelections('title')) { // Init SQLs initSqls(); // Change selected rallyes and all it's data foreach (postRequestElement('title') as $id => $title) { // Secure id number $id = bigintval($id); // Generate timestamps $START = mktime(postRequestElement('start_time_ho', $id), postRequestElement('start_time_mi', $id), 0, postRequestElement('start_time_mo', $id), postRequestElement('start_time_da', $id), postRequestElement('start_time_ye', $id)); $END = mktime(postRequestElement('end_time_ho', $id) , postRequestElement('end_time_mi', $id) , 0, postRequestElement('end_time_mo', $id) , postRequestElement('end_time_da', $id) , postRequestElement('end_time_ye', $id) ); // Update entry addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `title`='%s', `descr`='%s', `template`='%s', `start_time`=%s, `end_time`=%s, `min_users`=%s, `min_prices`=%s WHERE `id`=%s LIMIT 1", array( $title, postRequestElement('descr', $id), postRequestElement('templ', $id), bigintval($START), bigintval($END), bigintval(postRequestElement('min_users', $id)), bigintval(postRequestElement('min_prices', $id)), $id ), __FILE__, __LINE__, FALSE)); } // Run SQLS runFilterChain('run_sqls'); // Output message $message = '{--ADMIN_RALLYE_CHANGED--}'; } } // edit/delete are both handled the same way if ((isFormSent('edit')) || (isFormSent('delete'))) { // Default is 'edit' $mode = 'edit'; // Is delete button used? if (isFormSent('delete')) { // Then set it $mode = 'delete'; } // END - if // Check for selections if (ifPostContainsSelections()) { // Make all selected and deactivated rallyes editable $OUT = ''; foreach (postRequestElement('sel') as $id => $selected) { // Load rallye basic data $result = SQL_QUERY_ESC("SELECT `title`, `descr`, `template`, `start_time`, `end_time`, `min_users`, `min_prices` FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE `id`=%s LIMIT 1", array(bigintval($id)), __FILE__, __LINE__); // Fetch an array $content = SQL_FETCHARRAY($result); // Free result SQL_FREERESULT($result); // Only for editing ... if ($mode == 'edit') { // Starting day $content['s_min'] = addSelectionBox('mi', getMinute($content['start_time']) , 'start_time', $id); $content['s_hour'] = addSelectionBox('ho', getShortHour($content['start_time']), 'start_time', $id); $content['s_day'] = addSelectionBox('da', getDay($content['start_time']) , 'start_time', $id); $content['s_month'] = addSelectionBox('mo', getMonth($content['start_time']) , 'start_time', $id); $content['s_year'] = addSelectionBox('ye', getYear($content['start_time']) , 'start_time', $id); // Ending day $content['e_min'] = addSelectionBox('mi', getMinute($content['end_time']) , 'end_time' , $id); $content['e_hour'] = addSelectionBox('ho', getShortHour($content['end_time']) , 'end_time' , $id); $content['e_day'] = addSelectionBox('da', getDay($content['end_time']) , 'end_time' , $id); $content['e_month'] = addSelectionBox('mo', getMonth($content['end_time']) , 'end_time' , $id); $content['e_year'] = addSelectionBox('ye', getYear($content['end_time']) , 'end_time' , $id); // Remember other values $content['templ'] = addReferralRallyeTemplateSelection('templ[' . $id . ']', $content['template']); } else { // Convert timestamps into human-readable $content['start_time'] = generateDateTime($content['start_time'], '2'); $content['end_time'] = generateDateTime($content['end_time'] , '2'); } // Remember id number $content['rallye_id'] = bigintval($id); // Output row $OUT .= loadTemplate('admin_' . $mode . '_rallyes_row', TRUE, $content); } // END - foreach // Load final template loadTemplate('admin_' . $mode . '_rallyes', FALSE, $OUT); } else { // Nothing selected to edit displayMessage('{--ADMIN_RALLYE_NO_RALLYES_SELECTED--}'); } } elseif ((getRequestElement('sub') == 'users') && (getRequestElement('rallye_id') > 0)) { // List users and their refs before start and current $result = SQL_QUERY_ESC("SELECT `userid`, `refs`, `curr_points` FROM `{?_MYSQL_PREFIX?}_rallye_users` WHERE `rallye_id`=%s ORDER BY `userid` ASC", array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__); if (!SQL_HASZERONUMS($result)) { $OUT = ''; $content['rallye_id'] = bigintval(getRequestElement('rallye_id')); while ($row = SQL_FETCHARRAY($result)) { // Check for referral count $count = getReferralRallyeRefsCount($row['userid'], $row['refs']); // Init variables $bl = ''; $br = ''; // Output row if (($row['curr_points'] > 0) && ($count > 0)) { $bl = ''; $br = ''; } // END - if // Get user points $points = countSumTotalData($row['userid'], 'user_points', 'points', 'userid', FALSE, " AND `ref_depth`=1"); //* DEBUG: */ debugOutput(basename(__FILE__).':userid='.$row['userid'].',points='.$points.',opoints='.$row['curr_points']); // Prepare content $row = array( 'userid' => $row['userid'], 'bold_l' => $bl , 'bold_r' => $br , 'refs' => $row['refs'], 'count' => $count, 'opoints' => ($points - $row['curr_points']), ); // Load row template and switch color $OUT .= loadTemplate('admin_list_rallye_usr_row', TRUE, $row); } // END - while // Remember rows $content['rows'] = $OUT; $content['rallye_id'] = bigintval(getRequestElement('rallye_id')); // Free memory SQL_FREERESULT($result); // Load template loadTemplate('admin_list_rallye_usr', FALSE, $content); } else { // No entries found? displayMessage('{--ADMIN_RALLYE_USERS_404--}'); } } else { // Start listing rallyes $result = SQL_QUERY("SELECT `id` AS `rallye_id`, `admin_id`, `title`, `descr`, `template`, `start_time`, `end_time`, `auto_add_new_user`, `is_active`, `send_notify`, `notified`, `min_users`, `min_prices` FROM `{?_MYSQL_PREFIX?}_rallye_data` ORDER BY `start_time` DESC", __FILE__, __LINE__); // Records found? if (!SQL_HASZERONUMS($result)) { // List found rallyes $OUT = ''; while ($data = SQL_FETCHARRAY($result)) { // Count joined userids $users = countSumTotalData($data['rallye_id'], 'rallye_users', 'rallye_id', 'rallye_id', TRUE); // Did some users joined this rallye? if ($users > 0) { // List joined users $users = '{%pipe,translateComma=' . $users . '%}'; } // END - if // Transfer data into array for the template $row = array( 'select' => '', 'admin_id' => $data['admin_id'], 'rallye_id' => $data['rallye_id'], 'title' => $data['title'], 'template' => $data['template'], 'users_content' => $users, 'start_date' => generateDateTime($data['start_time'], 2), 'end_date' => generateDateTime($data['end_time'] , 2), 'is_active' => $data['is_active'], 'send_notify' => $data['send_notify'], 'auto_add_new_user' => $data['auto_add_new_user'], 'notified' => $data['notified'], 'prices_cnt' => countSumTotalData($data['rallye_id'], 'rallye_prices', 'rallye_id', 'rallye_id', TRUE), 'descr' => $data['descr'], 'min_users' => $data['min_users'], 'min_prices' => $data['min_prices'], ); // Is the rallye active or not? switch ($data['is_active']) { case 'Y': // Rallye is active so do not edit it! $row['select'] = '