The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Block - Users Online Details »» | |||||||||||||||||||||||||||||
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
Screenshots
Show Your Support
|
Благодарность от: | ||
BCP Hung |
Comments |
#192
|
||||
|
||||
When something doesn't work, it helps if you post *exactly* what you tried so we can see where you went wrong.
|
#193
|
|||
|
|||
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 |
#194
|
|||
|
|||
Works also in 4.1.12
I followed Lynne's instructions but used the code from post #181 for the template. |
#195
|
||||
|
||||
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> Code:
if (THIS_SCRIPT == 'forum') { $cache[] = '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; } |
#196
|
|||
|
|||
Hello,
Could you do me a small patch to have it in cms widget instead of a block forum? Thank you for your help |
#197
|
|||
|
|||
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 |
#198
|
|||
|
|||
i would use this if there was a better way.
why cant this just be a sql script? |
#199
|
||||
|
||||
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.)
|
#200
|
|||
|
|||
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
|
#201
|
|||
|
|||
did not work with 4.1.12 Patch Level 2..nothing appear at sidebar..
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|