function user_statistics($limit, $offset, &$sitedata) { $data = array(); $data['tableheadings'] = array(array('name' => get_string('date')), array('name' => get_string('Loggedin', 'admin'), 'class' => 'center'), array('name' => get_string('Created'), 'class' => 'center'), array('name' => get_string('Total'), 'class' => 'center')); $data['table'] = user_stats_table($limit, $offset); $data['tabletitle'] = get_string('userstatstabletitle', 'admin'); $maxfriends = get_records_sql_array("\n SELECT u.id, u.firstname, u.lastname, u.preferredname, u.urlid, SUM(f.friends) AS friends\n FROM {usr} u INNER JOIN (\n SELECT DISTINCT(usr1) AS id, COUNT(usr1) AS friends\n FROM {usr_friend}\n GROUP BY usr1\n UNION SELECT DISTINCT(usr2) AS id, COUNT(usr2) AS friends\n FROM {usr_friend}\n GROUP BY usr2\n ) f ON u.id = f.id\n GROUP BY u.id, u.firstname, u.lastname, u.preferredname, u.urlid\n ORDER BY friends DESC\n LIMIT 1", array()); $maxfriends = $maxfriends[0]; $meanfriends = 2 * count_records('usr_friend') / $sitedata['users']; if ($maxfriends) { $data['strmaxfriends'] = get_string('statsmaxfriends1', 'admin', $maxfriends->friends, round($meanfriends, 1), profile_url($maxfriends), hsc(display_name($maxfriends, null, true))); } else { $data['strmaxfriends'] = get_string('statsnofriends', 'admin'); } $maxviews = get_records_sql_array("\n SELECT u.id, u.firstname, u.lastname, u.preferredname, u.urlid, COUNT(v.id) AS views\n FROM {usr} u JOIN {view} v ON u.id = v.owner\n WHERE \"owner\" <> 0\n GROUP BY u.id, u.firstname, u.lastname, u.preferredname, u.urlid\n ORDER BY views DESC\n LIMIT 1", array()); $maxviews = $maxviews[0]; if ($maxviews) { $data['strmaxviews'] = get_string('statsmaxviews1', 'admin', $maxviews->views, $sitedata['viewsperuser'], profile_url($maxviews), hsc(display_name($maxviews, null, true))); } else { $data['strmaxviews'] = get_string('statsnoviews', 'admin'); } $maxgroups = get_records_sql_array("\n SELECT u.id, u.firstname, u.lastname, u.preferredname, u.urlid, COUNT(m.group) AS groups\n FROM {usr} u JOIN {group_member} m ON u.id = m.member JOIN {group} g ON m.group = g.id\n WHERE g.deleted = 0\n GROUP BY u.id, u.firstname, u.lastname, u.preferredname, u.urlid\n ORDER BY groups DESC\n LIMIT 1", array()); $maxgroups = $maxgroups[0]; if ($maxgroups) { $data['strmaxgroups'] = get_string('statsmaxgroups1', 'admin', $maxgroups->groups, $sitedata['groupmemberaverage'], profile_url($maxgroups), hsc(display_name($maxgroups, null, true))); } else { $data['strmaxgroups'] = get_string('statsnogroups', 'admin'); } $maxquotaused = get_records_sql_array("\n SELECT id, firstname, lastname, preferredname, urlid, quotaused\n FROM {usr}\n WHERE deleted = 0 AND id > 0\n ORDER BY quotaused DESC\n LIMIT 1", array()); $maxquotaused = $maxquotaused[0]; $data['strmaxquotaused'] = get_string('statsmaxquotaused1', 'admin', display_size(get_field('usr', 'AVG(quotaused)', 'deleted', 0)), profile_url($maxquotaused), hsc(display_name($maxquotaused, null, true)), display_size($maxquotaused->quotaused)); $smarty = smarty_core(); $smarty->assign('data', $data); $data['summary'] = $smarty->fetch('admin/userstatssummary.tpl'); return $data; }
if (!in_array($type, $subpages)) { $type = 'users'; } if ($type == 'historical') { $field = isset($extradata->field) ? $extradata->field : 'count_usr'; } if ($type == 'institutions') { $sort = isset($extradata->sort) ? $extradata->sort : 'displayname'; $sortdesc = isset($extradata->sortdesc) ? $extradata->sortdesc : false; } switch ($type) { case 'institutions': $data = institution_comparison_stats_table($limit, $offset, $sort, $sortdesc); break; case 'historical': $data = historical_stats_table($limit, $offset, $field); break; case 'content': $data = content_stats_table($limit, $offset); break; case 'groups': $data = group_stats_table($limit, $offset); break; case 'views': $data = view_stats_table($limit, $offset); break; case 'users': default: $data = user_stats_table($limit, $offset); } json_reply(false, (object) array('message' => false, 'data' => $data));
$_REQUEST['shape'] = 'table'; } switch ($_REQUEST['shape']) { case 'table': $stats_table = user_stats_table(); $smarty->assign('stats_table', $stats_table); $res['main'] = $smarty->fetch('user_stats_table.htm'); break; case 'pieChart': $stats_tag = array(); $role_stats = array(); foreach ($overview_data['section'] as $v) { $stats_tag[] = $v['role_name']; $role_stats[] = array('value' => $v['total'], 'name' => $v['role_name']); } $stats_table = user_stats_table(); $admin_stats = array(); foreach ($stats_table as $a) { $stats_tag[] = $a['admin_name']; $admin_stats[] = array('value' => $a['user_number'], 'name' => $a['admin_name']); } $res['data'] = $stats_tag; $res['role'] = $role_stats; $res['admin'] = $admin_stats; $res['title'] = '顾客归属分布图'; $res['subtext'] = "顾客总数量:{$overview_data['total']}"; break; case 'lineChart': break; case 'mapChart': $user_stats = user_stats_region();