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 }