PDA

View Full Version : How to find the forum ids that a user can see


MrEyes
12-03-2010, 01:43 PM
As per title really, I am trying to get all the forum ids that the current user is allowed to see?

preemz10314
12-04-2010, 10:43 AM
check your permissions for each user group. take note of which user group has access to which forum. then, go to forum manager> select the forum of the id you want to get by hitting go> at the top you will see "Forum: General (id: 4)" for example you will see a different id for each forum... take note because that number is that forums id...and go down the list..i think thats what your looking for?.

But you will have to manually put in the work and figure out the forum id by hand for each one.. why you need this i dont know..

MrEyes
12-07-2010, 08:37 AM
...why you need this i dont know..

I should have been more explicit, I need to get this in code for a mod I am playing around with.

preemz10314
12-07-2010, 11:27 AM
well i showed you..

Lynne
12-07-2010, 02:21 PM
The forum chooser only shows forums the user is allowed to view (but doesn't show forums the admin says shouldn't be shown in the chooser). So, take a look at the function construct_forum_chooser

MrEyes
12-09-2010, 12:02 PM
In the end I went with this:

foreach ($vbulletin->forumcache as &$forum)
{
$forumperms =& $vbulletin->userinfo['forumpermissions'][$forum['forumid']];
if (forum_accessible($forum, $forumperms))
{
$forumids[] = $forum['forumid'];
}
}

function forum_accessible($forum, $forumperms)
{
global $vbulletin;

if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']))
return false;

if (!($forum['options'] & $vbulletin->bf_misc_forumoptions['active']))
return false;

if (!verify_forum_password($forum['forumid'], $forum['password'], false))
return false;

if (trim($forum['link']))
return false;

if ($forum['displayorder'] == 0)
return false;

return true;
}