
01-22-2007, 05:46 PM
|
|
|
Join Date: Apr 2005
Posts: 3,972
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
|
Quote:
Originally Posted by axyr
Hi, first of all, kudos on the new version!
I have a question though. What was the reason for changing the coding that calculated the moderators and administrators to this:
PHP Code:
$adminugs = array();
$smodugs = array();
foreach ($vbulletin->usergroupcache as $usergroupid => $usergroup)
{
if ($usergroup['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['cancontrolpanel'])
{
$adminugs[] = $usergroupid;
}
else if ($usergroup['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['ismoderator'])
{
$smodugs[] = $usergroupid;
}
}
if (sizeof($adminugs))
{
$adminugs_cond = array();
foreach ($adminugs as $ugid)
{
$adminugs_cond[] = "FIND_IN_SET($ugid, membergroupids)";
}
$getadmins = $db->query_first("
SELECT COUNT(userid) as X
FROM " . TABLE_PREFIX . "user
WHERE usergroupid IN (" . implode(',', $adminugs) . ")
" . (sizeof($adminugs_cond) ? "OR " . implode(' OR ', $adminugs_cond) : "") . "
");
$c['administrators'] = $getadmins['X'];
}
if (sizeof($smodugs))
{
$smodugs_cond = array();
foreach ($smodugs as $ugid)
{
$smodugs_cond[] = "FIND_IN_SET($ugid, membergroupids)";
}
$getsmods = $db->query_first("
SELECT COUNT(userid) as X
FROM " . TABLE_PREFIX . "user
WHERE usergroupid IN (" . implode(',', $smodugs) . ")
" . (sizeof($smodugs_cond) ? "OR " . implode(' OR ', $smodugs_cond) : "") . "
");
$c['smoderators'] = $getsmods['X'];
}
$getmods = $db->query_read("
SELECT DISTINCT userid
FROM " . TABLE_PREFIX . "moderator
WHERE forumid <> -1
");
$c['moderators'] = $db->num_rows($getmods);
$c['staff'] = $c['administrators'] + $c['smoderators'] + $c['moderators'];
}
In the last version I was able to change what defined an administrator, and what defined a moderator. I was able to change it to define it by usergroups. I need to be able to do that because I have multiple groups that use the admin cpanel, but aren't actual administrators.
I also have two different moderator groups that I was able to define and show on the last version. Now it shows everyone that has access to the mod cp as moderator, and some of them are only blog mods, which I don't want showing up.
Under this new piece of coding, will I be able to define my custom groups, and define them by usergroup instead of by who has access to mod and admin cpanels?
Thank you! 
|
The reason is - speed of execution.
|