View Single Post
  #320  
Old 01-22-2007, 05:46 PM
akanevsky akanevsky is offline
 
Join Date: Apr 2005
Posts: 3,972
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by axyr View Post
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.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01135 seconds
  • Memory Usage 1,823KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete