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;
}
This code is stored in a custom BB Code: [premiumvideo=imagefile.jpg]videofile.f4v[/premiumvideo]
Can someone here help me to get this working, please?