The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
BB Code - Need help restricting to specific usergroups
I am trying to resolve the following problem, but my coding skills are obviously not sufficient to get this working. What I am trying to do is have a BB code that displays a video to users in the premium usergroup and shows all others an image and a comment that they have to buy a subscription to view this video.
I have got a working BB code to display the video, my problem is restricting this to members of the specified usergroup. Here is the code I put together (i shortened the video part as that is not the issue): Code:
if(is_member_of($user,30)==TRUE) { // Premium member, can watch video // <a href="premium/{param}" style="display:block;width:720px;height:405px;" id="player"></a> <script language="JavaScript"> flowplayer("player", "flash/flowplayer-3.2.5.swf", { [ **** VIDEO CODE REMOVED FROM THIS EXAMPLE ****] }); </script> } else { // Not Premium Member <img src="premium/thumbs/{option}" border="0" alt="" /> Note: Premium membership required to watch this video. } // ############################################################################# /** * Works out if a user is a member of the specified usergroup(s) * * This function can be overloaded to test multiple usergroups: is_member_of($user, 1, 3, 4, 6...) * * @param array User info array - must contain userid, usergroupid and membergroupids fields * @param integer Usergroup ID to test * @param boolean Pull result from cache * * @return boolean */ function is_member_of($userinfo, $usergroupid, $cache = true) { static $user_memberships; switch (func_num_args()) { // 1 can't happen case 2: // note: func_num_args doesn't count args with default values unless they're overridden $groups = is_array($usergroupid) ? $usergroupid : array($usergroupid); break; case 3: if (is_array($usergroupid)) { $groups = $usergroupid; $cache = (bool)$cache; } else if (is_bool($cache)) { // passed in 1 group and a cache state $groups = array($usergroupid); } else { // passed in 2 groups $groups = array($usergroupid, $cache); $cache = true; } break; default: // passed in 4+ args, which means it has to be in the 1,2,3 method $groups = func_get_args(); unset($groups[0]); $cache = true; } if (!is_array($user_memberships["$userinfo[userid]"]) OR !$cache) { // fetch membergroup ids for this user $user_memberships["$userinfo[userid]"] = fetch_membergroupids_array($userinfo); } foreach ($groups AS $usergroupid) { // is current group user's primary usergroup, or one of their membergroups? if ($userinfo['usergroupid'] == $usergroupid OR in_array($usergroupid, $user_memberships["$userinfo[userid]"])) { // yes - return true return true; } } // if we get here then the user doesn't belong to any of the groups. return false; } Can someone here help me to get this working, please? |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|