Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 07-06-2013, 07:29 PM
nerbert nerbert is offline
 
Join Date: May 2008
Posts: 784
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You're not using is_member_of() correctly

is_member_of($bbuserinfo, 9)

or for several groups;

is_member_of($bbuserinfo, array(4,5,6,7))

I'm not 100% sure you can use that function in a template conditional though

Code:
941	 // #############################################################################
942	 /**
943	 * Works out if a user is a member of the specified usergroup(s)
944	 *
945	 * This function can be overloaded to test multiple usergroups: is_member_of($user, 1, 3, 4, 6...)
946	 *
947	 * @param    array    User info array - must contain userid, usergroupid and membergroupids fields
948	 * @param    integer    Usergroup ID to test
949	 * @param    boolean    Pull result from cache
950	 *
951	 * @return    boolean
952	 */
953	 function is_member_of($userinfo, $usergroupid, $cache = true)
954	 {
955	     static $user_memberships; 
956	
957	     switch (func_num_args())
958	     {
959	         // 1 can't happen
960	
961	         case 2: // note: func_num_args doesn't count args with default values unless they're overridden
962	             $groups = is_array($usergroupid) ? $usergroupid : array($usergroupid); 
963	         break; 
964	
965	         case 3:
966	             if (is_array($usergroupid))
967	             {
968	                 $groups = $usergroupid; 
969	                 $cache = (bool)$cache; 
970	             }
971	             else if (is_bool($cache))
972	             {
973	                 // passed in 1 group and a cache state
974	                 $groups = array($usergroupid); 
975	             }
976	             else
977	             {
978	                 // passed in 2 groups
979	                 $groups = array($usergroupid, $cache); 
980	                 $cache = true; 
981	             }
982	         break; 
983	
984	         default:
985	             // passed in 4+ args, which means it has to be in the 1,2,3 method
986	             $groups = func_get_args(); 
987	             unset($groups[0]); 
988	
989	             $cache = true; 
990	     }
991	
992	     if (!is_array($user_memberships["$userinfo[userid]"]) OR !$cache)
993	     {
994	         // fetch membergroup ids for this user
995	         $user_memberships["$userinfo[userid]"] = fetch_membergroupids_array($userinfo); 
996	     }
997	
998	     foreach ($groups AS $usergroupid)
999	     {
1000	         // is current group user's primary usergroup, or one of their membergroups?
1001	         if ($userinfo['usergroupid'] == $usergroupid OR in_array($usergroupid, $user_memberships["$userinfo[userid]"]))
1002	         {
1003	             // yes - return true
1004	             return true; 
1005	         }
1006	     }
1007	
1008	     // if we get here then the user doesn't belong to any of the groups.
1009	     return false; 
1010	 }
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:54 PM.


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.04470 seconds
  • Memory Usage 2,319KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadedmode.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete