'user_name ASC',
'name_d' => 'user_name DESC',
'group_a' => 'group_name ASC',
'group_d' => 'group_name DESC',
'reg_a' => 'user_regdate ASC',
'reg_d' => 'user_regdate DESC',
'pic_a' => 'pic_count ASC',
'pic_d' => 'pic_count DESC',
'disku_a' => 'disk_usage ASC',
'disku_d' => 'disk_usage DESC',
'lv_a' => 'user_lastvisit ASC',
'lv_d' => 'user_lastvisit DESC',
);
$sort = (!isset($HTTP_GET_VARS['sort']) || !isset($sort_codes[$HTTP_GET_VARS['sort']])) ? 'reg_d' : $HTTP_GET_VARS['sort'];
$tab_tmpl = array('left_text' => '
' . $lang_usermgr_php['u_user_on_p_pages'] . ' | ' . "\n",
'tab_header' => '',
'tab_trailer' => '',
'active_tab' => ' | ' . "\n" . '%d | ',
'inactive_tab' => ' | ' . "\n" . '' . "\n"
);
$result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_USERS']} WHERE 1");
$nbEnr = mysql_fetch_array($result);
$user_count = $nbEnr[0];
mysql_free_result($result);
if (!$user_count) cpg_die(CRITICAL_ERROR, $lang_usermgr_php['err_no_users'], __FILE__, __LINE__);
$user_per_page = 25;
$page = isset($HTTP_GET_VARS['page']) ? (int)$HTTP_GET_VARS['page'] : 1;
$lower_limit = ($page-1) * $user_per_page;
$total_pages = ceil($user_count / $user_per_page);
$sql = "SELECT user_id, user_name, UNIX_TIMESTAMP(user_regdate) as user_regdate, UNIX_TIMESTAMP(user_lastvisit) as user_lastvisit, user_active, ".
"COUNT(pid) as pic_count, ROUND(SUM(total_filesize)/1024) as disk_usage, group_name, group_quota ".
"FROM {$CONFIG['TABLE_USERS']} AS u ".
"INNER JOIN {$CONFIG['TABLE_USERGROUPS']} AS g ON user_group = group_id ".
"LEFT JOIN {$CONFIG['TABLE_PICTURES']} AS p ON p.owner_id = u.user_id ".
"GROUP BY user_id ".
"ORDER BY " . $sort_codes[$sort] . " ".
"LIMIT $lower_limit, $user_per_page;";
$result = db_query($sql);
$tabs = create_tabs($user_count, $page, $total_pages, $tab_tmpl);
starttable('100%');
if (!$lim_user) {
echo <<< EOT
{$lang_usermgr_php['name']} |
{$lang_usermgr_php['group']} |
{$lang_usermgr_php['registered_on']} |
{$lang_usermgr_php['last_visit']} |
{$lang_usermgr_php['operations']} |
{$lang_usermgr_php['pictures']} |
{$lang_usermgr_php['disk_space']} |
EOT;
}
else {
echo <<< EOT
{$lang_usermgr_php['name']} |
{$lang_usermgr_php['group']} |
{$lang_usermgr_php['registered_on']} |
{$lang_usermgr_php['last_visit']} |
{$lang_usermgr_php['pictures']} |
{$lang_usermgr_php['disk_space']} |
EOT;
}
while ($user = mysql_fetch_array($result)) {
if ($user['user_active'] == 'NO') $user['group_name'] = '' . $lang_usermgr_php['inactive'] . '';
$user['user_regdate'] = localised_date($user['user_regdate'], $register_date_fmt);
if ($user['user_lastvisit']) {
$user['user_lastvisit'] = localised_date($user['user_lastvisit'], $register_date_fmt);
}
else {
$user['user_lastvisit'] = $lang_usermgr_php['never'];
}
$usr_link = '' . $user['user_name'];
if ($user['pic_count']) {
$usr_link .= ' (' . $lang_usermgr_php['latest_upload'] . ')';
} else {
$usr_link .= '';
}
if (!$lim_user) {
echo <<< EOT
$usr_link |
{$user['group_name']} |
{$user['user_regdate']} |
{$user['user_lastvisit']} |
|
|
{$user['pic_count']} |
{$user['disk_usage']} {$lang_byte_units[1]} |
{$user['group_quota']} {$lang_byte_units[1]} |
EOT;
} else {
echo <<< EOT
$usr_link |
{$user['group_name']} |
{$user['user_regdate']} |
{$user['user_lastvisit']} |
{$user['pic_count']} |
{$user['disk_usage']} {$lang_byte_units[1]} |
{$user['group_quota']} {$lang_byte_units[1]} |
EOT;
}
} // while
mysql_free_result($result);
$lb = "\n";
if (!$lim_user) {
echo <<
EOT;
}
echo <<
|
EOT;
endtable();
}
function edit_user($user_id)
{
global $CONFIG, $PHP_SELF;
global $lang_usermgr_php, $lang_yes, $lang_no;
$form_data = array(
array('input', 'user_name', $lang_usermgr_php['name'], 25),
array('password', 'user_password', $lang_usermgr_php['password'], 25),
array('yesno', 'user_active', $lang_usermgr_php['user_active']),
array('group_list', 'user_group', $lang_usermgr_php['user_group']),
array('input', 'user_email', $lang_usermgr_php['user_email'], 255),
array('input', 'user_location', $lang_usermgr_php['user_location'], 255),
array('input', 'user_interests', $lang_usermgr_php['user_interests'], 255),
array('input', 'user_website', $lang_usermgr_php['user_web_site'], 255),
array('input', 'user_occupation', $lang_usermgr_php['user_occupation'], 255)
);
$sql = "SELECT * FROM {$CONFIG['TABLE_USERS']} WHERE user_id = '$user_id'";
$result = db_query($sql);
if (!mysql_num_rows($result)) cpg_die(CRITICAL_ERROR, $lang_usermgr_php['err_unknown_user'], __FILE__, __LINE__);
$user_data = mysql_fetch_array($result);
mysql_free_result($result);
starttable(500, $lang_usermgr_php['modify_user'], 2);
echo <<
EOT;
foreach ($form_data as $element) switch ($element[0]) {
case 'input' :
$user_data[$element[1]] = $user_data[$element[1]];
echo <<
{$element[2]}
|
|
EOT;
break;
case 'password' :
echo <<
{$element[2]}
|
|
EOT;
break;
case 'yesno' :
$value = $user_data[$element[1]];
$yes_selected = ($value == 'YES') ? 'selected' : '';
$no_selected = ($value == 'NO') ? 'selected' : '';
echo <<< EOT
{$element[2]}
|
|
EOT;
break;
case 'group_list' :
$sql = "SELECT group_id, group_name FROM {$CONFIG['TABLE_USERGROUPS']} ORDER BY group_name";
$result = db_query($sql);
$group_list = db_fetch_rowset($result);
mysql_free_result($result);
$sel_group = $user_data[$element[1]];
$user_group_list = ($user_data['user_group_list'] == '') ? ',' . $sel_group . ',' : ',' . $user_data['user_group_list'] . ',' . $sel_group . ',';
echo <<
{$element[2]}
|
|
EOT;
break;
default:
cpg_die(CRITICAL_ERROR, 'Invalid action for form creation ' . $element[0], __FILE__, __LINE__);
}
echo <<
{$lang_usermgr_php['notes']}
|
{$lang_usermgr_php['note_list']}
|
|
EOT;
endtable();
}
function update_user($user_id)
{
global $CONFIG, $PHP_SELF, $HTTP_POST_VARS;
global $lang_usermgr_php, $lang_register_php;
$user_name = addslashes(trim($HTTP_POST_VARS['user_name']));
$user_password = addslashes(trim($HTTP_POST_VARS['user_password']));
$user_email = addslashes(trim($HTTP_POST_VARS['user_email']));
$user_location = addslashes($HTTP_POST_VARS['user_location']);
$user_interests = addslashes($HTTP_POST_VARS['user_interests']);
$user_website = addslashes($HTTP_POST_VARS['user_website']);
$user_occupation = addslashes($HTTP_POST_VARS['user_occupation']);
$user_active = $HTTP_POST_VARS['user_active'];
$user_group = $HTTP_POST_VARS['user_group'];
$group_list = isset($HTTP_POST_VARS['group_list']) ? $HTTP_POST_VARS['group_list'] : '';
$sql = "SELECT user_id " . "FROM {$CONFIG['TABLE_USERS']} " . "WHERE user_name = '" . addslashes($user_name) . "' AND user_id != $user_id";
$result = db_query($sql);
if (mysql_num_rows($result)) {
cpg_die(ERROR, $lang_register_php['err_user_exists'], __FILE__, __LINE__);
return false;
}
mysql_free_result($result);
if (strlen($user_name) < 2) cpg_die(ERROR, $lang_register_php['err_uname_short'], __FILE__, __LINE__);
if (strlen($user_password) && strlen($user_password) < 2) cpg_die(ERROR, $lang_register_php['err_password_short'], __FILE__, __LINE__);
if (is_array($group_list)) {
$user_group_list = '';
foreach($group_list as $group) $user_group_list .= ($group != $user_group) ? $group . ',' : '';
$user_group_list = substr($user_group_list, 0, -1);
} else {
$user_group_list = '';
}
$sql_update = "UPDATE {$CONFIG['TABLE_USERS']} " . "SET " . "user_name = '$user_name', " . "user_email = '$user_email', " . "user_active = '$user_active', " . "user_group = '$user_group', " . "user_location = '$user_location', " . "user_interests = '$user_interests', " . "user_website = '$user_website', " . "user_occupation= '$user_occupation', " . "user_group_list = '$user_group_list'";
if (strlen($user_password)) $sql_update .= ", user_password = '$user_password'";
$sql_update .= " WHERE user_id = '$user_id'";
db_query($sql_update);
}
$op = isset($HTTP_GET_VARS['op']) ? $HTTP_GET_VARS['op'] : '';
switch ($op) {
case 'edit' :
$user_id = isset($HTTP_GET_VARS['user_id']) ? (int)$HTTP_GET_VARS['user_id'] : -1;
if (USER_ID == $user_id) cpg_die(ERROR, $lang_usermgr_php['err_edit_self'], __FILE__, __LINE__);
pageheader($lang_usermgr_php['title']);
edit_user($user_id);
pagefooter();
ob_end_flush();
break;
case 'update' :
$user_id = isset($HTTP_GET_VARS['user_id']) ? (int)$HTTP_GET_VARS['user_id'] : -1;
update_user($user_id);
db_query("DELETE FROM {$CONFIG['TABLE_USERS']} WHERE user_name = '' LIMIT 1");
pageheader($lang_usermgr_php['title']);
list_users();
pagefooter();
ob_end_flush();
break;
case 'new_user' :
db_query("INSERT INTO {$CONFIG['TABLE_USERS']}(user_regdate, user_active) VALUES (NOW(), 'YES')");
$user_id = mysql_insert_id();
pageheader($lang_usermgr_php['title']);
edit_user($user_id);
pagefooter();
ob_end_flush();
break;
default :
db_query("DELETE FROM {$CONFIG['TABLE_USERS']} WHERE user_name = '' LIMIT 1");
pageheader($lang_usermgr_php['title']);
list_users();
pagefooter();
ob_end_flush();
break;
}
?>