vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=245)
-   -   vBulletin Forum Sideblocks - Block - Users Online (https://vborg.vbsupport.ru/showthread.php?t=233965)

Lynne 11-25-2011 04:52 PM

What is a statistics block?

haincha 11-25-2011 08:37 PM

A block below the Users Online that would have Threads, Posts, Users, Newest Member, etc. What is originally right under Users Online under the forums.

Lynne 11-25-2011 09:29 PM

Isn't there already a block to do that? Just combine the two into one. I wouldn't want to change this one anyway since not everyone would want all that additional stuff.

haincha 11-26-2011 12:14 AM

Fair enough. I will look for another solution. Well, thank you greatly for this tutorial!

uninvited13th 11-27-2011 07:44 AM

Quote:

Originally Posted by Lynne (Post 2271929)
Isn't there already a block to do that? Just combine the two into one. I wouldn't want to change this one anyway since not everyone would want all that additional stuff.

but what's the script for the block?? I want new block of forum statistics like what haincha said.. thanks.. :D

Lynne 11-27-2011 04:12 PM

I don't know the link to the block. The code, however, is just in the forum.php page. I don't think it would be too hard to throw the block together.

uninvited13th 11-28-2011 12:37 AM

Quote:

Originally Posted by Lynne (Post 2272417)
I don't know the link to the block. The code, however, is just in the forum.php page. I don't think it would be too hard to throw the block together.

thanks.. I'll just look at it.. :D

Malcolm-X 12-04-2011 12:06 AM

Hi Lynne;
I followed all the instruction mentioned here and in your documents several times... But nothing is shown in my sidebar... I have ESB 1.4.4.4 and VB 4.1.7... if i can sent you my site admin login info can you look it... Please help... isn't ther anyone to help me?

Thanks...

JMEWLS` 12-06-2011 03:09 AM

Hello, updated the with the new instructions. Any reason why there's double commas next to everyones name?

http://nbadimensions.net/forums/

JMEWLS` 12-06-2011 03:25 AM

EDIT: Just noticed CSS has upgraded.

JMEWLS` 12-07-2011 06:30 AM

Any idea as to why the online users block is outside the div....

This only occurs in Internet Explorer.

JMEWLS` 12-07-2011 06:30 AM

My website is http://www.nbadimensions.net/forums

Lynne 12-07-2011 06:08 PM

I do not know. I don't have IE and you have modified the block code there, so I really can't tell why that would happen.

JMEWLS` 12-07-2011 11:30 PM

This also happens with the code that you supplied, only happened since the update. Weird.

Marv 12-29-2011 07:20 AM

Edit: problem solved. I don?t really dare to tell you what went wrong... (edited the wrong style ^^ ...). Embarrassing..:o

Mark.B 12-29-2011 09:14 PM

1 Attachment(s)
Thanks for this Lynne;

With a few tweaks I have made it do this... :)

phpdesk 01-01-2012 04:28 PM

Quote:

Originally Posted by peugeot405 (Post 2116508)
Not working for me.
Getting following error.

Code:

Fatal error: Class 'vB' not found in /home/peugeot405/domains/fsrclan.com/public_html/fsr-test/includes/block/html.php(95) : eval()'d code on line 9
i have vb 4.0.8.

anyone know how to fix this

Setting the block cache time to 0 causes an error message similar to this one, so you (or anyone else facing the same issue) may wish to play with that setting and see if that works.

Happy New Year!

Winter Sonata 01-13-2012 12:44 AM

Quote:

Originally Posted by Mark.B (Post 2282010)
Thanks for this Lynne;

With a few tweaks I have made it do this... :)


Can you please let me know how did you do that , I would be very gratefull If you answer my question!

hotrod122 04-03-2012 12:41 AM

not working after upgrade to 4.1.11....

please advise?

Thanks

nevermind..im an idiot and cant read :)

haincha 04-07-2012 11:30 PM

Any help with 4.1.11? I have gotten this far.

http://img1.UploadScreenshot.com/ima...9711224944.png

Fixed it. Had to splice code from a few different places. I know how to debug code, I am not the greatest at writing it. If you replace the contents of block_users_online Template with

PHP Code:

<vb:if condition="$show['loggedinusers']">
<
li>
    <
div class="block smaller">
        <
div class="blocksubhead">
            <
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}<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> 

Everything should work.

farazfaraz 04-09-2012 05:41 PM

how install this mod?!

Patriots1049 04-22-2012 08:15 PM

Is there any way to just display specific usergroups?

Lynne 04-23-2012 01:50 AM

Quote:

Originally Posted by Patriots1049 (Post 2322553)
Is there any way to just display specific usergroups?

You would need to modify the query to do this.

Patriots1049 04-23-2012 02:14 AM

I'm trying to find a staff online (ie admins / moderator) sideblock. I am not 100% familiar with modifying the query. Is it difficult?

Lynne 04-23-2012 02:25 AM

It's not that difficult to modify the query, iirc. However, I could have sworn I've seen a Staff Online widget (or was it a forum block?), so you may want to try a search.

DM BoNeZ 04-23-2012 03:50 AM

i would like the staff only online block...

and i just searched for it no results

Patriots1049 04-23-2012 10:30 AM

I have searched and have came up with no results. I used to run IPB and know they have one, but vBulletin does not.

I would like the forum block, not the widget. Since this is your mod a) would you mind if I modified query and b) could you give any insight or a starting point as I am not an expert.

Thanks

Lynne 04-23-2012 05:21 PM

I don't care if you modify the query - do whatever you want with this mod. You'll probably want to change the template. And then in the query, you'll want to add to the WHERE part something like:
AND user.usergroupid IN ('5', '6')

(NOT TESTED!!!!)

DM BoNeZ 04-23-2012 07:27 PM

Lynne toy should code your own on your own time. Ill be the first to install .but im going to try what you said

Patriots1049 04-24-2012 04:47 PM

I tried to add that code and had no success. I hope someone makes this mod one day!

Lynne 04-24-2012 05:14 PM

Quote:

Originally Posted by Patriots1049 (Post 2323127)
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.

Patriots1049 04-25-2012 05:46 PM

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

qpurser 04-28-2012 11:02 AM

Works also in 4.1.12

I followed Lynne's instructions but used the code from post #181 for the template.

AshenTemper 06-16-2012 02:33 AM

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?

alhidaya 06-21-2012 06:02 PM

Hello,

Could you do me a small patch to have it in cms widget instead of a block forum? Thank you for your help

cuco88 06-22-2012 01:45 AM

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

Pure Dope 08-01-2012 06:45 PM

i would use this if there was a better way.

why cant this just be a sql script?

Lynne 08-01-2012 11:16 PM

Quote:

Originally Posted by Pure Dope (Post 2353420)
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.)

oldz442 09-06-2012 07:50 AM

1 Attachment(s)
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

BUDIMAN 09-30-2012 07:37 AM

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


All times are GMT. The time now is 08:13 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01789 seconds
  • Memory Usage 1,867KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_code_printable
  • (1)bbcode_php_printable
  • (7)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete