function show_members_json($context, $limit = 30, $offset = 0, $username) { if (!$username) { $user = elgg_get_logged_in_user_entity(); } else { $user = get_user_by_username($username); if (!$user) { throw new InvalidParameterException('registration:usernamenotvalid'); } } if ($context == "newest") { $params = array('types' => 'user', 'limit' => $limit, 'full_view' => FALSE); $latest_member = elgg_get_entities($params); //return $return; } if ($context == "online") { $latest_member = get_online_users(); } if ($context == "popular") { $params = array('types' => 'user', 'relationship' => 'friend', 'inverse_relationship' => false); $latest_member = elgg_list_entities_from_relationship_count($params); } if ($latest_member) { foreach ($latest_member as $single) { $member['guid'] = $single->guid; $member['name'] = $single->name; //$member['avatar_url'] = get_entity_icon_url($single,'small'); $return[] = $member; } } //return $return; return json_encode($return, true); }
/** * Returns content for the "online" page * * @param string $hook "members:list" * @param string $type "online" * @param string|null $returnvalue list content (null if not set) * @param array $params array with key "options" * @return string */ function members_list_online($hook, $type, $returnvalue, $params) { if ($returnvalue !== null) { return; } return get_online_users(); }
function cms_block_online_users_chat() { global $db, $cache, $config, $template, $theme, $images, $user, $lang, $table_prefix; $ajax_chat_page = !empty($config['ajax_chat_link_type']) ? CMS_PAGE_AJAX_CHAT : CMS_PAGE_AJAX_SHOUTBOX; $ajax_chat_link = !empty($config['ajax_chat_link_type']) ? append_sid($ajax_chat_page) . '" target="_chat' : '#" onclick="window.open(\'' . append_sid($ajax_chat_page) . '\', \'_chat\', \'width=720,height=600,resizable=yes\'); return false;'; $online_time = 300; $cache_time = 600; // Initialize data $online_users_array = array('reg' => 0, 'guests' => 0, 'tot' => 0, 'list' => '', 'text' => '', 'users' => array(), 'user_ids' => array()); if (!function_exists('get_online_users')) { @(include_once IP_ROOT_PATH . 'includes/functions_online.' . PHP_EXT); } $online_users_chat = get_online_users('chat', true, false, '', $online_time, $cache_time); foreach ($online_users_chat as $online_user_chat_data) { $uid = $online_user_chat_data['user_id']; if (!in_array($uid, $online_users_array['user_ids'])) { $online_users_array['user_ids'][] = $uid; $online_users_array['users'][$uid] = array('user_id' => $online_user_chat_data['user_id'], 'username' => $online_user_chat_data['username'], 'username_clean' => $online_user_chat_data['username_clean'], 'user_color' => $online_user_chat_data['user_color'], 'user_active' => $online_user_chat_data['user_active'], 'user_allow_viewonline' => 1); } } $online_users = get_online_users('site', true, false, '', $online_time, $cache_time); foreach ($online_users as $online_user_data) { $uid = $online_user_data['user_id']; if (!in_array($uid, $online_users_array['user_ids'])) { if ($online_user_data['user_allow_viewonline'] || $user->data['user_level'] == ADMIN || $user->data['user_id'] == $online_user_data['user_id']) { $online_users_array['user_ids'][] = $uid; $io = $online_user_data['user_allow_viewonline'] ? true : false; $online_users_array['users'][$uid] = array('user_id' => $online_user_data['user_id'], 'username' => $online_user_data['username'], 'username_clean' => $online_user_data['username_clean'], 'user_color' => $online_user_data['user_color'], 'user_active' => $online_user_data['user_active'], 'user_allow_viewonline' => $online_user_data['user_allow_viewonline']); } } } $online_users_array['tot'] = sizeof($online_users_array['users']); $online_users_array['text'] = empty($online_users_array['tot']) ? $lang['Reg_users_zero_total'] : ($online_users_array['tot'] == 1 ? $lang['Reg_user_total'] : sprintf($lang['Reg_users_total'], $online_users_array['tot'])); $online_users_text = ''; $switch_users_online = false; if (empty($online_users_array['tot'])) { $online_users_text = $lang['CHAT_NO_USERS']; } else { foreach ($online_users_array['users'] as $k => $online_user_data) { $online_users_sort[$k] = $online_user_data['username_clean']; } asort($online_users_sort); foreach ($online_users_sort as $k => $v) { $cu = $online_users_array['users'][$k]; $io = $cu['user_allow_viewonline'] ? true : false; $user_link = ''; if ($user->data['session_logged_in'] && $user->data['user_id'] != $cu['user_id']) { $chat_room = 'chat_room=' . (min($user->data['user_id'], $cu['user_id']) . '|' . max($user->data['user_id'], $cu['user_id'])); $chat_link = append_sid($ajax_chat_page . '?' . $ajax_chat_room); $user_link = !empty($config['ajax_chat_link_type']) ? $chat_link . '" target="_chat' : '#" onclick="window.open(\'' . $chat_link . '\', \'_chat\', \'width=720,height=600,resizable=yes\'); return false;'; } $online_users_text .= (empty($online_users_text) ? '' : ', ') . ($io ? '' : '<em>') . colorize_username($cu['user_id'], $cu['username'], $cu['user_color'], $cu['user_active'], false, false, false, false, $user_link) . ($io ? '' : '</em>'); } $switch_users_online = !empty($online_users_text) ? true : false; } $template->assign_vars(array('S_USERS_ONLINE' => $switch_users_online, 'B_ONLINE_USERS_TEXT' => $online_users_text, 'B_U_CHAT' => $ajax_chat_link)); }
<?php /** * Members index * */ $num_members = get_number_users(); $title = elgg_echo('members'); $options = array('type' => 'user', 'full_view' => false); switch ($vars['page']) { case 'popular': $options['relationship'] = 'friend'; $options['inverse_relationship'] = false; $content = elgg_list_entities_from_relationship_count($options); break; case 'online': $content = get_online_users(); break; case 'newest': default: $content = elgg_list_entities($options); break; } $params = array('content' => $content, 'sidebar' => elgg_view('members/sidebar'), 'title' => $title . " ({$num_members})", 'filter_override' => elgg_view('members/nav', array('selected' => $vars['page']))); $body = elgg_view_layout('content', $params); echo elgg_view_page($title, $body);
foreach ($serv->connections as $fd) { $serv->push($fd, $response_data); } break; } }); $serv->on('Close', function ($server, $fd) use($redis, $serv) { //所有用户退出,清空数据 echo 'logout--' . $serv->connections->count(); if ($serv->connections->count() == 1) { flush_data($redis); return; } //log out $username = $redis->get('uid_' . $fd); $redis->lRem('uid_list', $fd, 1); $redis->delete('uid_', $fd); $user_list = get_online_users($redis); $response = ['cmd' => 'logout', 'data' => ['user' => $username, 'user_list' => $user_list]]; $response_data = json_encode($response); //通知新用户登录 foreach ($serv->connections as $send_to) { if ($send_to != $fd) { $serv->push($send_to, $response_data); } } }); $serv->start(); } catch (Exception $e) { print_r($e); }
$ac_g_user = $ac_online_users['guests'] == 0 ? $lang['Guest_users_zero_total'] : ($ac_online_users['guests'] == 0 ? sprintf($lang['Guest_user_total'], $ac_online_users['guests']) : sprintf($lang['Guest_users_total'], $ac_online_users['guests'])); $ac_online_users['text'] = $ac_t_user . $ac_r_user . $ac_g_user; } $logged_visible_online = 0; $logged_hidden_online = 0; $guests_online = 0; $online_userlist = ''; $l_online_users = ''; if (!empty($topic_id) && !defined('IN_VIEWFORUM')) { $user_forum_sql = ' AND s.session_topic_id = ' . $db->sql_escape($topic_id); } elseif (!empty($forum_id)) { $user_forum_sql = ' AND s.session_forum_id = ' . $db->sql_escape($forum_id); } else { $user_forum_sql = ''; } $online_users = get_online_users('site', false, false, $user_forum_sql, 0, 0); $prev_user_id = 0; $prev_user_ip = ''; $session_ip_array = array(); $tmp_bots_array = array(); foreach ($online_users as $row) { // User is logged in and therefore not a guest if ($row['session_logged_in']) { // Skip multiple sessions for one user if ($row['user_id'] != $prev_user_id) { $user_online_link = colorize_username($row['user_id'], $row['username'], $row['user_color'], $row['user_active']); if ($row['user_allow_viewonline']) { $logged_visible_online++; } else { $logged_hidden_online++; $user_online_link = '<em>' . $user_online_link . '</em>';
<?php /** * AVE.cms * * @package AVE.cms * @subpackage admin * @filesource */ if (!defined('ACP')) { header('Location:index.php'); exit; } get_ave_info(); get_editable_module(); DisplayMainDocuments(); get_online_users(); getLogRecords(6); //$AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/main.txt', 'index'); $AVE_Template->assign('php_version', @PHP_VERSION != '' ? @PHP_VERSION : 'unknow'); $AVE_Template->assign('domain', $_SERVER["HTTP_HOST"]); $AVE_Template->assign('mysql_version', $GLOBALS['AVE_DB']->mysql_version()); $AVE_Template->assign('mysql_size', get_mysql_size()); $AVE_Template->assign('navi', $AVE_Template->fetch('navi/navi.tpl')); $AVE_Template->assign('navi_top', $AVE_Template->fetch('navi/navi_top.tpl')); $AVE_Template->assign('content', $AVE_Template->fetch('start.tpl'));
<?php /** * Online users widget */ echo get_online_users(array('pagination' => false));
<?php /** * Online users widget */ $num_display = sanitize_int($vars['entity']->num_display, false); // set default value for display number if (!$num_display) { $num_display = 8; } echo get_online_users(array('pagination' => false, 'limit' => $num_display));
<!-- This file used to handle AJAX requests for displaying a pop-up notification for list of users who are online --> <?php require_once "includes/connection.php"; require_once "includes/functions.php"; echo "<link href=\"style/css/toastr.css\" rel=\"stylesheet\"/>"; echo "<script src=\"style/js/jquery-1.11.0.js\"></script>"; echo "<script src=\"style/js/toastr.js\"></script>"; $result = get_online_users(); $output = ""; while ($row = mysql_fetch_array($result)) { $user = $row['ID']; if ($row['Status'] == 1) { $output .= "<script type=\"text/javascript\">\n\t\t\ttoastr.options = {\n\t\t\t\t\"closeButton\": true,\n\t\t\t\t\"debug\": false,\n\t\t\t\t\"positionClass\": \"toast-bottom-left\",\n\t\t\t\t\"onclick\": null,\n\t\t\t\t\"showDuration\": \"10000\",\n\t\t\t\t\"hideDuration\": \"5000\",\n\t\t\t\t\"timeOut\": \"10000\",\n\t\t\t\t\"extendedTimeOut\": \"5000\",\n\t\t\t\t\"showEasing\": \"swing\",\n\t\t\t\t\"hideEasing\": \"linear\",\n\t\t\t\t\"showMethod\": \"fadeIn\",\n\t\t\t\t\"hideMethod\": \"fadeOut\"\n\t\t\t};\n\t\t\ttoastr.info('The user {$user} is online');\n\t\t\tvar audio = new Audio('notification.wav');\n\t\t\taudio.play();\n\t\t\t</script>"; update_notification($user); } } print $output;
<?php echo elgg_view_module('inline', elgg_echo('admin:statistics:label:onlineusers'), get_online_users());
<?php /** * Online users widget */ $widget = elgg_extract('entity', $vars); $num_display = sanitize_int($widget->num_display, false); // set default value for display number if (!$num_display) { $num_display = 8; } echo get_online_users(['pagination' => false, 'limit' => $num_display]);
$area1 .= elgg_view("members/search"); // count members $members = get_number_users(); // title $pagetitle = elgg_echo("members:members") . " ({$members})"; $area2 = elgg_view_title($pagetitle); //get the correct view based on filter switch ($filter) { case "newest": $content = elgg_list_entities("user", "", 0, 10, false); break; case "pop": $filter_content = list_entities_by_relationship_count('friend', true, '', '', 0, 10, false); break; case "active": $filter_content = get_online_users(); break; // search based on name // search based on name case "search": set_context('search'); $filter_content = list_user_search($tag); break; // search based on tags // search based on tags case "search_tags": $filter_content = trigger_plugin_hook('search', '', $tag, ""); $filter_content .= list_entities_from_metadata("", $tag, "user", "", "", 10, false, false); break; case "newest": case 'default':
// $dbsize = get_database_size(); $sql = "SELECT VERSION() AS mysql_version"; $db->sql_return_on_error(true); $result = $db->sql_query($sql); $db->sql_return_on_error(false); if (!$result) { throw_error("Couldn't obtain MySQL Version", __LINE__, __FILE__, $sql); } $row = $db->sql_fetchrow($result); $mysql_version = $row['mysql_version']; $db->sql_freeresult($result); $template->assign_vars(array('NUMBER_OF_POSTS' => $total_posts, 'NUMBER_OF_TOPICS' => $total_topics, 'NUMBER_OF_USERS' => $total_users, 'START_DATE' => $start_date, 'POSTS_PER_DAY' => $posts_per_day, 'TOPICS_PER_DAY' => $topics_per_day, 'USERS_PER_DAY' => $users_per_day, 'AVATAR_DIR_SIZE' => $avatar_dir_size, 'DB_SIZE' => $dbsize, 'PHPBB_VERSION' => '2' . $config['version'], 'PHP_VERSION' => phpversion(), 'MYSQL_VERSION' => $mysql_version, 'NUMBER_OF_DEACTIVATED_USERS' => $total_deactivated_users, 'NUMBER_OF_MODERATORS' => $total_moderators, 'NUMBER_OF_JUNIOR_ADMINISTRATORS' => $total_junior_administrators, 'NUMBER_OF_ADMINISTRATORS' => $total_administrators, 'NAMES_OF_DEACTIVATED' => $deactivated_names, 'NAMES_OF_MODERATORS' => $moderator_names, 'NAMES_OF_JUNIOR_ADMINISTRATORS' => $junior_administrator_names, 'NAMES_OF_ADMINISTRATORS' => $administrator_names, 'GZIP_COMPRESSION' => $config['gzip_compress'] ? $lang['ON'] : $lang['OFF'])); // End forum statistics // Get users online information. $onlinerow_reg = get_online_users('site', true, true, '', 0, 0); $sql = "SELECT session_page, session_forum_id, session_topic_id, session_logged_in, session_time, session_ip, session_start, session_browser\n\t\tFROM " . SESSIONS_TABLE . "\n\t\tWHERE session_logged_in = '0'\n\t\t\tAND session_time >= " . (time() - ONLINE_REFRESH) . "\n\t\tORDER BY session_time DESC"; $result = $db->sql_query($sql); $onlinerow_guest = $db->sql_fetchrowset($result); // Forum info $forum_types = array(FORUM_CAT, FORUM_POST, FORUM_LINK); $forums_array = get_forums_ids($forum_types, false, false); foreach ($forums_array as $forum) { $forum_data[$forum['forum_id']] = $forum['forum_name']; } $reg_userid_ary = array(); if (sizeof($onlinerow_reg)) { $registered_users = 0; for ($i = 0; $i < sizeof($onlinerow_reg); $i++) { if (!in_array($onlinerow_reg[$i]['user_id'], $reg_userid_ary)) { $reg_userid_ary[] = $onlinerow_reg[$i]['user_id'];
function is_online($id) { return in_array($id, get_online_users()); }
<?php /** * Elgg statistics screen * * @package Elgg * @subpackage Core * @author Curverider Ltd * @link http://elgg.org/ */ // users online get_context('search'); $users_online = get_online_users(); get_context('admin'); ?> <div class="admin_users_online"> <h3><?php echo elgg_echo('admin:statistics:label:onlineusers'); ?> </h3> <?php echo $users_online; ?> </div>
$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $user->data); // Viewonline pagination... to be coded... /* if ($show_all) { $sql_limit = ''; } else { $sql_limit = 'LIMIT ' . $start . ', ' . $config['topics_per_page']; } */ // Get user list $online_users = get_online_users('site', false, true, '', 0, 0); $guest_users = 0; $registered_users = 0; $hidden_users = 0; $reg_counter = 0; $guest_counter = 0; $prev_user = 0; $session_ip_array = array(); foreach ($online_users as $row) { $view_online = false; $is_auth_view = false; $forum_id = false; $topic_id = false;