Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Block - Users Online Details »»
Block - Users Online
Version: 1.4, by Lynne Lynne is offline
Developer Last Online: Oct 2022 Show Printable Version Email this Page

Category: vBulletin Forum Sideblocks - Version: 4.2.0 Rating:
Released: 01-22-2010 Last Update: 06-04-2012 Installs: 161
Uses Plugins Template Edits
Re-useable Code  
No support by the author.

This is a block for your forum sideblocks to show the Current Users Online.



You will need to Create a new Template (block_users_online), Cache the template, Create a new Block (Users Online), and then, optionally, remove the Currently Active Users list from the bottom of the page.

1.1 2010-06-12: Added in Most users ever online. Updated for 4.0.3.
1.2 2010-06-23: Updated to work for 4.0.4.
1.3 2011-11-17: Fixed template and block code for use in 4.1.8.
1.4 2012-06-05: Fixed template for use in 4.2.0.

Installation instructions for 4.2.0, 4.1.8 and pre-4.1.8 are included in the 1.4 download. Please make sure you use the correct Installation Instructions as both the block code and the template code are different depending on the version you are running. Read them carefully!!!

Download Now

File Type: zip Block - Users Online 1.4.zip (26.6 KB, 552 views)

Screenshots

File Type: png block-users online.png (21.5 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
BCP Hung

Comments
  #192  
Old 04-24-2012, 05:14 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Patriots1049 View Post
I tried to add that code and had no success. I hope someone makes this mod one day!
When something doesn't work, it helps if you post *exactly* what you tried so we can see where you went wrong.
Reply With Quote
  #193  
Old 04-25-2012, 05:46 PM
Patriots1049 Patriots1049 is offline
 
Join Date: Mar 2010
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I actually got it to work by putting WHERE... your code then AND the rest. The template is a bit messy but it will do. I might look into doing

Username (Admin 1)
Usertitle (Admin 1)

Username (Admin 2)
Usertitle (Admin 2)

.......

But right now the code is vb: raw activeusers in a comma list. So a) I'm not sure how to add usertitle b/c it is displaying ALL active users and b) change from comma list to display like I showed up there ^^

For
Reply With Quote
  #194  
Old 04-28-2012, 11:02 AM
qpurser qpurser is offline
 
Join Date: Jul 2011
Posts: 275
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Works also in 4.1.12

I followed Lynne's instructions but used the code from post #181 for the template.
Reply With Quote
  #195  
Old 06-16-2012, 02:33 AM
AshenTemper's Avatar
AshenTemper AshenTemper is offline
 
Join Date: Mar 2006
Location: Austin, Texas
Posts: 23
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

For the life of me, I cannot figure out why I cannot get this to work.

I am using vB 4.1.12 and you can view it here: http://stoicstudio.com/forum/forum.php

I created a new Template (under Blocks) labeled "block_users_online" that uses the code from above:
Code:
<vb:if condition="$show['loggedinusers']">
<li>
    <div class="block smaller">
        <div class="blocksubhead">
            <a class="collapse" id="collapse_block_html" href="{vb:raw relpath}#top"><img alt="" src="{vb:stylevar imgdir_button}/collapse_40b.png" id="collapseimg_html"/></a>
            <span class="blocktitle"><img src="{vb:stylevar imgdir_misc}/users_online.png" alt="{vb:rawphrase currently_active_users}" />{vb:rawphrase currently_active_users}</span>
        </div>
        <div id="block_html" class="blockbody floatcontainer">
            <div class="blockrow">
                <p>{vb:rawphrase there_are_x_y_online_link, {vb:raw content.totalonline}, {vb:raw session.sessionurl_q}}
                <br /><span class="shade">{vb:rawphrase x_members_and_y_guests, {vb:raw content.numberregistered}, {vb:raw content.numberguest}}</span></p>
                <p>{vb:rawphrase most_users_ever_online_was_x_y_at_z, {vb:raw content.recordusers}, {vb:raw content.recorddate}, {vb:raw content.recordtime}}</p>
<ol class="commalist" id="wgo_onlineusers_list">
                    <vb:each from="content['activeusers']" value="loggedin">
                        <li>{vb:stylevar dirmark}<a class="username" href="{vb:link member, {vb:raw loggedin}}">{vb:raw loggedin.musername}</a>{vb:raw loggedin.invisiblemark}{vb:raw loggedin.buddymark}{vb:raw loggedin.comma}</li>
                    </vb:each>
                </ol>
             </div>
        </div>
    </div>
    <div class="underblock"></div>
</li>
</vb:if>
I created a new Plugin and it is active called "Cache template for Users Online Block" that used cache_templates with an execution order of 5:

Code:
if (THIS_SCRIPT == 'forum')
{
    $cache[] = 'block_users_online';
}
And I created a Forum Block called "Users Online" with Cache=1, Display Order 5, set to active, using PHP, and with the following code that uses template "block_users_online":

Code:
if (THIS_SCRIPT != 'forum') {
require_once(DIR . '/includes/functions_bigthree.php');
} 
$activeusers = '';
if ((vB::$vbulletin->options['displayloggedin'] == 1 OR vB::$vbulletin->options['displayloggedin'] == 2 OR (vB::$vbulletin->options['displayloggedin'] > 2 AND vB::$vbulletin->userinfo['userid'])) AND !$show['search_engine'])
{
    $datecut = TIMENOW - vB::$vbulletin->options['cookietimeout'];
    $numbervisible = 0;
    $numberregistered = 0;
    $numberguest = 0;
    
    $hook_query_fields = $hook_query_joins = $hook_query_where = '';
	($hook = vBulletinHook::fetch_hook('forumhome_loggedinuser_query')) ? eval($hook) : false;

    $forumusers = vB::$db->query_read_slave("
        SELECT
            user.username, (user.options & " . vB::$vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, user.usergroupid, user.lastvisit,
            session.userid, session.inforum, session.lastactivity, session.badlocation,
            IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
            $hook_query_fields
        FROM " . TABLE_PREFIX . "session AS session
        LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
        $hook_query_joins
        WHERE session.lastactivity > $datecut
            $hook_query_where
        " . iif(vB::$vbulletin->options['displayloggedin'] == 1 OR vB::$vbulletin->options['displayloggedin'] == 3, "ORDER BY username ASC") . "
    ");

    if (vB::$vbulletin->userinfo['userid'])
    {
        // fakes the user being online for an initial page view of index.php
        vB::$vbulletin->userinfo['joingroupid'] = iif(vB::$vbulletin->userinfo['displaygroupid'], vB::$vbulletin->userinfo['displaygroupid'], vB::$vbulletin->userinfo['usergroupid']);
        $userinfos = array
        (
            vB::$vbulletin->userinfo['userid'] => array
            (
                'userid'            =>& vB::$vbulletin->userinfo['userid'],
                'username'          =>& vB::$vbulletin->userinfo['username'],
                'invisible'         =>& vB::$vbulletin->userinfo['invisible'],
                'inforum'           => 0,
                'lastactivity'      => TIMENOW,
                'lastvisit'         =>& vB::$vbulletin->userinfo['lastvisit'],
                'usergroupid'       =>& vB::$vbulletin->userinfo['usergroupid'],
                'displaygroupid'    =>& vB::$vbulletin->userinfo['displaygroupid'],
                'infractiongroupid' =>& vB::$vbulletin->userinfo['infractiongroupid'],
            )
        );
    }
    else
    {
        $userinfos = array();
    }
    $inforum = array();

    while ($loggedin = vB::$db->fetch_array($forumusers))
    {
        $userid = $loggedin['userid'];
        if (!$userid)
        {    // Guest
            $numberguest++;
            if (!isset($inforum["$loggedin[inforum]"]))
            {
                $inforum["$loggedin[inforum]"] = 0;
            }
            if (!$loggedin['badlocation'])
            {
                $inforum["$loggedin[inforum]"]++;
            }
        }
        else if (empty($userinfos["$userid"]) OR ($userinfos["$userid"]['lastactivity'] < $loggedin['lastactivity']))
        {
            $userinfos["$userid"] = $loggedin;
        }
    }

    if (!vB::$vbulletin->userinfo['userid'] AND $numberguest == 0)
    {
        $numberguest++;
    }

    $activeusers = array();
    foreach ($userinfos AS $userid => $loggedin)
    {
        $numberregistered++;
        if ($userid != vB::$vbulletin->userinfo['userid'] AND !$loggedin['badlocation'])
        {
            if (!isset($inforum["$loggedin[inforum]"]))
            {
                $inforum["$loggedin[inforum]"] = 0;
            }
            $inforum["$loggedin[inforum]"]++;
        }

        fetch_musername($loggedin);
        $loggedin['comma'] = ',';

        if (fetch_online_status($loggedin))
        {
            $numbervisible++;
            $activeusers[$numbervisible] = $loggedin;
        }
    }
    
    // Last element
    if ($numbervisible) 
    {
        $activeusers[$numbervisible]['comma'] = '';
    }

    // memory saving
    unset($userinfos, $loggedin);

    vB::$db->free_result($forumusers);

    $totalonline = $numberregistered + $numberguest;
    $numberinvisible = $numberregistered - $numbervisible;
    
    vB::$vbulletin->datastore->fetch(array('maxloggedin'));
	if (vB::$vbulletin->maxloggedin === NULL)
	{
		vB::$vbulletin->maxloggedin = array();
	}
	if (intval(vB::$vbulletin->maxloggedin['maxonline']) <= $totalonline)
	{
		vB::$vbulletin->maxloggedin['maxonline'] = $totalonline;
		vB::$vbulletin->maxloggedin['maxonlinedate'] = TIMENOW;
		build_datastore('maxloggedin', serialize(vB::$vbulletin->maxloggedin), 1);
	}

	$recordusers = vb_number_format(vB::$vbulletin->maxloggedin['maxonline']);
	$recorddate = vbdate(vB::$vbulletin->options['dateformat'], vB::$vbulletin->maxloggedin['maxonlinedate'], true);
	$recordtime = vbdate(vB::$vbulletin->options['timeformat'], vB::$vbulletin->maxloggedin['maxonlinedate']);

    $show['loggedinusers'] = true;
    
    $statsarray = array('onlinestats' => $onlinestats,
    'totalonline' => $totalonline,
    'numberregistered' => $numberregistered,
    'numberguest' => $numberguest,
    'show'    => $show,
    'recordusers'  => $recordusers,
    'recorddate'  => $recorddate,
    'recordtime'  => $recordtime,
    'activeusers'	=> $activeusers,
    );
    
	return $statsarray;
}
Any idea where I'm screwing this up?
Reply With Quote
  #196  
Old 06-21-2012, 06:02 PM
alhidaya alhidaya is offline
 
Join Date: Feb 2012
Posts: 124
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello,

Could you do me a small patch to have it in cms widget instead of a block forum? Thank you for your help
Reply With Quote
  #197  
Old 06-22-2012, 01:45 AM
cuco88 cuco88 is offline
 
Join Date: Jun 2012
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Use Google or the board-search or see other things this author did an you would find this:
https://vborg.vbsupport.ru/showthread.php?t=230428
Reply With Quote
  #198  
Old 08-01-2012, 06:45 PM
Pure Dope Pure Dope is offline
 
Join Date: Dec 2006
Posts: 165
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i would use this if there was a better way.

why cant this just be a sql script?
Reply With Quote
  #199  
Old 08-01-2012, 11:16 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Pure Dope View Post
why cant this just be a sql script?
When you code your forum blocks to offer to the masses, you are welcome to write them as products, but I just wrote this because of someone's request and I didn't feel like putting a bunch of effort into it. (I don't know how much coding you have done, but it's not as simple to make it into a product as you are making it sound.)
Reply With Quote
  #200  
Old 09-06-2012, 07:50 AM
oldz442 oldz442 is offline
 
Join Date: May 2012
Location: Canada
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can I add a fetch_avatar_url($userid) to the block code somewhere? I want to display a clickable mini avatar, 4 per row similar to below. I am using file based avatars. thx
Attached Images
File Type: jpg wgo_sideblock.jpg (19.9 KB, 0 views)
Reply With Quote
  #201  
Old 09-30-2012, 07:37 AM
BUDIMAN BUDIMAN is offline
 
Join Date: Jun 2010
Posts: 118
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

did not work with 4.1.12 Patch Level 2..nothing appear at sidebar..
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:57 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06413 seconds
  • Memory Usage 2,356KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (3)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (1)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (3)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete