function userpoints_admin_points in User Points 6
Same name and namespace in other branches
- 5.3 userpoints.module \userpoints_admin_points()
- 7.2 userpoints.admin.inc \userpoints_admin_points()
- 7 userpoints.admin.inc \userpoints_admin_points()
1 string reference to 'userpoints_admin_points'
- userpoints_menu in ./
userpoints.module - Implementation of hook_menu().
File
- ./
userpoints.module, line 1319
Code
function userpoints_admin_points() {
$tid = arg(3);
$cat_count = count(userpoints_get_categories());
$sql = "SELECT p.uid, u.name, p.points, p.tid, t.name as cat\n FROM {userpoints} p INNER JOIN {users} u USING (uid)\n LEFT JOIN {term_data} t ON p.tid = t.tid\n ";
//Check for filtering
if ($tid === 0) {
$sql .= "WHERE p.tid = 0";
$cat = t('!Uncategorized', userpoints_translation());
}
elseif (is_numeric($tid)) {
$sql .= "WHERE p.tid = %d";
$cat = db_result(db_query("SELECT name from {term_data} WHERE tid = %d", $tid));
}
else {
$cat = t('All');
}
drupal_set_title(t($cat) . " " . t("!points", userpoints_translation()));
$sql_cnt = "SELECT COUNT(DISTINCT(uid))\n FROM {userpoints}\n WHERE tid = %d\n ";
if (variable_get(USERPOINTS_REPORT_DISPLAYZERO, 1) == 0) {
//The user would NOT like to see users with zero points
$sql .= " AND p.points <> 0";
$sql_cnt .= " AND points <> 0";
}
$sql .= " GROUP BY p.uid, u.name, p.points, p.tid, t.name";
$header = array(
array(
'data' => t('User'),
'field' => 'u.name',
),
array(
'data' => t('Category'),
'field' => 't.name',
),
array(
'data' => t('!Points', userpoints_translation()),
'field' => 'p.points',
'sort' => 'desc',
),
);
$sql .= tablesort_sql($header);
$pager_limit = variable_get(USERPOINTS_REPORT_USERCOUNT, 30);
$result = pager_query($sql, $pager_limit, 0, $sql_cnt, $tid);
$rows = array();
while ($data = db_fetch_object($result)) {
if (!$data->cat) {
$data->cat = t('!Uncategorized', userpoints_translation());
}
$rows[] = array(
array(
'data' => theme('username', $data) . " " . l(t("(details)"), "myuserpoints/{$data->uid}"),
),
array(
'data' => $data->cat,
'align' => 'right',
),
array(
'data' => $data->points,
'align' => 'right',
),
);
}
//If there is only one category there is no sense in display the category filter dropdown
if ($cat_count > 1) {
$output = drupal_get_form('userpoints_filter_cat_select', 'admin/user/userpoints/', arg(3));
$output .= theme('table', $header, $rows);
$output .= theme('pager', NULL, $pager_limit, 0);
}
else {
$output = theme('table', $header, $rows);
$output .= theme('pager', NULL, $pager_limit, 0);
}
return $output;
}