Esempio n. 1
0
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));
Esempio n. 3
0
     $_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();