View Full Version : Total Users In Usergroup
Davey-UK
02-02-2014, 10:17 AM
Hello all.
Could anyone point me in the right direction, as to how to show the total number of members in a certain usergroup in a sidebar module and/or on the forumhome.
If it helps, the usergroup number is 12.
Thanks a bunch. :)
Well, you could do this:
if ($result = $vbulletin->db->query_first("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "user WHERE usergroupid = 12"))
{
$num_members = $result['count'];
}
Then either pre-register $num_members to a template where you want to use it, or else create a php type block and return some html that includes that variable.
Davey-UK
02-02-2014, 11:53 AM
Mmm, thanks i will give it a whirl.
Do you mean add the text you have added as a plugin, then make a new template which can be called via $num_members ?
If you want to make a forum block, then you can make a php type block and use that code as part of it. If you want to put the value in an existing template, then you need to create a plugin, use that code, and also add a line to pre-register it to the template you want it to display in (and also edit the template to add something like {vb:raw num_members}).
For example, if you wanted to add it somewhere in the FORUMHOME template, you could create a plugin using hook location forumhome_complete and code like this:
if ($result = $vbulletin->db->query_first("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "user WHERE usergroupid = 12"))
{
$num_grp_members = $result['count'];
vB_Template::preRegister('FORUMHOME', array('num_grp_members' => $num_grp_members));
}
Then in FORUMHOME, something like:
<vb:if condition="isset($num_grp_members)">There are {vb:raw num_grp_members} in group 12</vb:if>
BTW, you wouldn't expect that query to fail, but it's good to check anyway and do something reasonable rather than display 0.
(I changed it to use num_grp_members because I think num_members might be used already).
Oh, I also meant to mention: that query only works if 12 is the users' primary usergroup. If you're using it as a secondary group it needs to be modified to check the membergroups column.
Davey-UK
02-02-2014, 12:41 PM
Fabulous!! Thankyou. That works great on Forum Home.
I tried the code in a php block, but it causes a white screen of nothingness on the forum.
Not my forte unfortunately.
Thankyou though, i have a starting block at least. :up:
Hmm...you may need to add "global $vbulletin;" to the beginning to use it in a forum block.
Davey-UK
02-02-2014, 12:47 PM
Strange.
I added
if ($result = global $vbulletin->db->query_first("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "user WHERE usergroupid = 12"))
{
$num_grp_members = $result['count'];
}
to a forum block, and it does stop the white screen, but the block doesn't show at all.
Sorry I wasn't clear, it should be:
global $vbulletin;
if ($result = $vbulletin->db->query_first("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "user WHERE usergroupid = 12"))
{
$num_grp_members = $result['count'];
}
But you also need to return some html to see anything.
Davey-UK
02-02-2014, 12:58 PM
Yes that works, but still not showing the number in sideblock. Would this be correct?
global $vbulletin;
if ($result = $vbulletin->db->query_first("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "user WHERE usergroupid = 12"))
{
$output = "We currently have" . $num_grp_members . "<br />" . "<a href=http://www.mysite.com/forum/payments.php> Upgrade now</a>";
return $output;
}
Oops, I left out the part where you set $num_grp_members (I think I originally posted it like that then edited the post to fix it). Also, you should use <br /> instead of \n. So, try this:
global $vbulletin;
if ($result = $vbulletin->db->query_first("SELECT COUNT(*) AS count FROM " . TABLE_PREFIX . "user WHERE usergroupid = 12"))
{
$output = "We currently have " . $result['count'] . "<br /><a href=http://www.mysite.com/forum/payments.php> Upgrade now</a>";
return $output;
}
Davey-UK
02-02-2014, 01:07 PM
Woop! Fantastic, that works a treat! I was editing my last post to include <br /> as you must have been typing this. LOL
Thankyou so much for this swift answering, its fab. Now for some styling.
Thanks again
Davey-UK
06-09-2014, 05:39 AM
You wouldnt know how to fetch the last paid member username, or even the last 3, and place it in the sidebar with this bit of code would you?
Thanks
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.