0) {
// Init SQLs
initSqls();
// Delete selected rallyes and all it's data
foreach (postRequestParameter('sel') as $id => $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 = getMessage('RALLYE_DELETED');
} else {
// No rallye selected to delete!
$message = getMessage('RALLYE_DELETE_NOTHING_SELECTED');
}
} elseif (isPostRequestParameterSet('change')) {
// Change rallye
if (countSelection(postRequestParameter('title')) > 0) {
// Init SQLs
initSqls();
// Change selected rallyes and all it's data
foreach (postRequestParameter('title') as $id => $title) {
// Secure id number
$id = bigintval($id);
// Generate timestamps
$START = mktime(postRequestParameter('start_hour', $id), postRequestParameter('start_min', $id), postRequestParameter('start_sec', $id), postRequestParameter('start_month', $id), postRequestParameter('start_day', $id), postRequestParameter('start_year', $id));
$END = mktime(postRequestParameter('end_hour', $id) , postRequestParameter('end_min', $id) , postRequestParameter('end_sec', $id) , postRequestParameter('end_month', $id) , postRequestParameter('end_day', $id) , postRequestParameter('end_year', $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,
postRequestParameter('descr', $id),
postRequestParameter('templ', $id),
bigintval($START),
bigintval($END),
bigintval(postRequestParameter('min_users', $id)),
bigintval(postRequestParameter('min_prices', $id)),
$id
), __FILE__, __LINE__, false));
}
// Run SQLS
runFilterChain('run_sqls');
// Output message
$message = getMessage('RALLYE_CHANGED');
}
}
if (isPostRequestParameterSet('edit')) {
// Check for selections
if (countPostSelection() > 0) {
// Make all selected and deactivated rallyes editable
$OUT = ''; $SW = 2;
foreach (postRequestParameter('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);
// Starting day
$content['s_sec'] = addSelectionBox('sec' , date('s', $content['start_time']), 'start', $id);
$content['s_min'] = addSelectionBox('min' , date('i', $content['start_time']), 'start', $id);
$content['s_hour'] = addSelectionBox('hour' , date('G', $content['start_time']), 'start', $id);
$content['s_day'] = addSelectionBox('day' , date('d', $content['start_time']), 'start', $id);
$content['s_month'] = addSelectionBox('month', date('m', $content['start_time']), 'start', $id);
$content['s_year'] = addSelectionBox('year' , date('Y', $content['start_time']), 'start', $id);
// Ending day
$content['e_sec'] = addSelectionBox('sec' , date('s', $content['end_time']) , 'end' , $id);
$content['e_min'] = addSelectionBox('min' , date('i', $content['end_time']) , 'end' , $id);
$content['e_hour'] = addSelectionBox('hour' , date('G', $content['end_time']) , 'end' , $id);
$content['e_day'] = addSelectionBox('day' , date('d', $content['end_time']) , 'end' , $id);
$content['e_month'] = addSelectionBox('month', date('m', $content['end_time']) , 'end' , $id);
$content['e_year'] = addSelectionBox('year' , date('Y', $content['end_time']) , 'end' , $id);
// Remember other values
$content['templ'] = addReferalRallyeTemplateSelection('templ['.$id.']', $content['template']);
$content['sw'] = $SW;
$content['id'] = $id;
// Output row
$OUT .= loadTemplate('admin_edit_rallyes_row', true, $content);
// Color switching
$SW = 3 - $SW;
}
// Load final template
loadTemplate('admin_edit_rallyes', false, $OUT);
} else {
// Nothing selected to edit
loadTemplate('admin_settings_saved', false, loadTemplate('admin_list_rallye_noselect', true));
}
} elseif ((getRequestParameter('sub') == 'users') && (getRequestParameter('rallye') > 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(getRequestParameter('rallye'))), __FILE__, __LINE__);
if (SQL_NUMROWS($result) > 0) {
$OUT = ''; $SW = 2;
$content['rallye'] = getRequestParameter('rallye');
while ($row = SQL_FETCHARRAY($result)) {
// Check for referal count
$cnt = getReferalRallyeRefsCount($row['userid'], $row['refs']);
// Init variables
$bl = '';
$br = '';
// Output row
if (($row['curr_points'] > 0) && ($cnt > 0)) { $bl = ''; $br = ''; }
// Get user points
$points = countSumTotalData($row['userid'], 'user_points', 'points', 'userid', false, " AND `ref_depth`=1 LIMIT 1");
//* DEBUG: */ outputHtml(basename(__FILE__).":userid={$row['userid']},points={$points},opoints={$row['curr_points']}
");
// Prepare content
// @TODO Rewritings: opoints->curr_points,old->refs in template
$row = array(
'sw' => $SW ,
'userid' => $row['userid'],
'bold_l' => $bl ,
'bold_r' => $br ,
'old' => $row['refs'],
'cnt' => $cnt,
'opoints' => translateComma($points - $row['curr_points']),
);
// Load row template and switch color
$OUT .= loadTemplate('admin_list_rallye_usr_row', true, $row);
$SW = 3 - $SW;
} // END - while
// Remember rows
$content['rows'] = $OUT;
$content['rallye'] = getRequestParameter('rallye');
// Free memory
SQL_FREERESULT($result);
// Load template
loadTemplate('admin_list_rallye_usr', false, $content);
} else {
// No entries found?
loadTemplate('admin_settings_saved', false, getMessage('RALLYE_ADMIN_USERS_404'));
}
} else {
// Start listing rallyes
$result = SQL_QUERY("SELECT
`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_NUMROWS($result) > 0) {
// List found rallyes
$OUT = ''; $SW = 2;
while ($data = SQL_FETCHARRAY($result)) {
// Load admin login
$data['login'] = getAdminLogin($data['admin_id']);
// Count joined userids
$joined = countSumTotalData($data['id'], 'rallye_users', 'id', 'rallye_id', true);
// Did some users joined this rallye?
if ($joined > 0) {
// List joined users
$joined = '' . $joined . '';
} // END - if
// Alter some variables
if (empty($data['login'])) $data['login'] = '???';
if (empty($data['template'])) $data['template'] = '---';
if (empty($data['descr'])) $data['descr'] = '---';
// Transfer data into array for the template
$row = array(
'select' => '',
'admin_id' => $data['admin_id'],
'admin_link' => generateAdminLink($data['admin_id']),
'login' => $data['login'],
'id' => $data['id'],
'sw' => $SW,
'title' => $data['title'],
'template' => $data['template'],
'joined' => $joined,
'start_date' => generateDateTime($data['start_time'], 2),
'end_date' => generateDateTime($data['end_time'] , 2),
'active_lnk' => translateYesNo($data['is_active']),
'notify_lnk' => translateYesNo($data['send_notify']),
'auto_lnk' => translateYesNo($data['auto_add_new_user']),
'notified' => translateYesNo($data['notified']),
'prices_cnt' => translateComma(countSumTotalData($data['id'], 'rallye_prices', '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'] = '