The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Private Social Groups Details »» | |||||||||||||||||||||||||||||||
Some may not have noticed, but vb4 no longer supports restricting Moderators from viewing Join-To-View/Invite Only content.
This modification does the following: - Restricts Moderator access - Hides the display of Social Groups set to Invite Only/Join-To-View (similar to this) These are file edits. Back up your original files. Included in the zip are changed files which can be used as replacements; for those that prefer to make the changes manually, here they are. 1) In /group.php Find (~ line365): Code:
// If a group id is specified, but the group doesn't exist, error out if ($vbulletin->GPC['groupid']) { $group = fetch_socialgroupinfo($vbulletin->GPC['groupid'], true); if (empty($group)) { standard_error(fetch_error('invalidid', $vbphrase['social_group'], $vbulletin->options['contactuslink'])); } Code:
// If a group id is specified, but the group doesn't exist, error out if ($vbulletin->GPC['groupid']) { $group = fetch_socialgroupinfo($vbulletin->GPC['groupid'], true); if (empty($group)) { standard_error(fetch_error('invalidid', $vbphrase['social_group'], $vbulletin->options['contactuslink'])); } $group = prepare_socialgroup($group); // Disallow everything except joining if you can't view a // group's content. if( !$group['canviewcontent'] AND $group['type'] == 'inviteonly' AND $_REQUEST['do'] != 'join' AND $_REQUEST['do'] != 'dojoin' ) print_no_permission(); } Find (~ line 653): Code:
$group = prepare_socialgroup($group); $group['canjoin'] = can_join_group($group); $group['canleave'] = can_leave_group($group); $show['pending_link'] = (fetch_socialgroup_modperm('caninvitemoderatemembers', $group) AND $group['moderatedmembers'] > 0); $show['lastpostinfo'] = ($group['lastposterid']); ($hook = vBulletinHook::fetch_hook('group_list_groupbit')) ? eval($hook) : false; $templater = vB_Template::create('socialgroups_grouplist_bit'); $templater->register('group', $group); $templater->register('lastpostalt', $lastpostalt); $grouplist .= $templater->render(); } } Code:
// Only show groups if we can view the // content or this is an invitation $group = prepare_socialgroup($group); if( $group['canviewcontent'] OR $group['type'] != 'inviteonly' OR $_REQUEST['do'] == 'invitations' ) { $group['canjoin'] = can_join_group($group); $group['canleave'] = can_leave_group($group); $show['pending_link'] = (fetch_socialgroup_modperm('caninvitemoderatemembers', $group) AND $group['moderatedmembers'] > 0); $show['lastpostinfo'] = ($group['lastposterid']); ($hook = vBulletinHook::fetch_hook('group_list_groupbit')) ? eval($hook) : false; $templater = vB_Template::create('socialgroups_grouplist_bit'); $templater->register('group', $group); $templater->register('lastpostalt', $lastpostalt); $grouplist .= $templater->render(); } } } Find (~ line 699): Code:
) // The above means that you dont have to join to view OR $group['membertype'] == 'member' // Or can moderate comments OR can_moderate(0, 'canmoderategroupmessages') OR can_moderate(0, 'canremovegroupmessages') OR can_moderate(0, 'candeletegroupmessages') OR fetch_socialgroup_perm('canalwayspostmessage') OR fetch_socialgroup_perm('canalwascreatediscussion') ) ); Code:
) // The above means that you dont have to join to view OR $group['membertype'] == 'member' ) ); Find (~ line 1829): Code:
$groups = array(); while ($group = $vbulletin->db->fetch_array($result)) { $group = prepare_socialgroup($group, true); $group['delete_group'] = can_delete_group($group); $group['edit_group'] = can_edit_group($group); $group['leave_group'] = can_leave_group($group); $group['group_options'] = ($group['delete_group'] OR $group['edit_group'] OR $group['leave_group']); $groups[] = $group; } Code:
$groups = array(); while ($group = $vbulletin->db->fetch_array($result)) { // Only include groups whose content can be viewed. $group = prepare_socialgroup($group, true); if($group['canviewcontent'] OR $group['type'] != 'inviteonly') { $group['delete_group'] = can_delete_group($group); $group['edit_group'] = can_edit_group($group); $group['leave_group'] = can_leave_group($group); $group['group_options'] = ($group['delete_group'] OR $group['edit_group'] OR $group['leave_group']); $groups[] = $group; } } Find (~ line 1893): Code:
return $groups; } Code:
// Only include groups whose content can be viewed. $visible_groups = array(); while($groups) { $group = prepare_socialgroup(array_shift($groups)); if($group['canviewcontent'] OR $group['type'] != 'inviteonly') $visible_groups[] = $group; } return $visible_groups; } Find (~ line 1967): Code:
$groups = array(); while ($group = $vbulletin->db->fetch_array($result)) { $group['delete_group'] = can_delete_group($group); $group['edit_group'] = can_edit_group($group); $group['leave_group'] = can_leave_group($group); $group['group_options'] = ($group['delete_group'] OR $group['edit_group'] OR $group['leave_group']); $groups[] = $group; } Code:
$groups = array(); while ($group = $vbulletin->db->fetch_array($result)) { // Only show groups we can view $group = prepare_socialgroup($group); if($group['canviewcontent'] OR $group['type'] != 'inviteonly') { $group['delete_group'] = can_delete_group($group); $group['edit_group'] = can_edit_group($group); $group['leave_group'] = can_leave_group($group); $group['group_options'] = ($group['delete_group'] OR $group['edit_group'] OR $group['leave_group']); $groups[] = $group; } } $vbulletin->db->free_result($result); return $groups; } Download Now
Screenshots
Show Your Support
|
Comments |
#2
|
|||
|
|||
Thank you for this solution !
|
#3
|
|||
|
|||
Very welcome, glad someone else could use it!
|
#4
|
|||
|
|||
Just installed. Works like a champ.
Trying to figure out how to apply filter to the Activity Stream now. |
Благодарность от: | ||
grey_goose |
#5
|
|||
|
|||
Ever figure out how to do that?
|
#6
|
|||
|
|||
Probably just need to add the viewable permission to the stream SQL query. Unfortunately I don't use that so I can't be much help there.
maybe something like... WHERE group.canviewcontent != 'No' OR group.type != 'inviteonly' |
Благодарность от: | ||
KevinL |
#7
|
|||
|
|||
Thank you I will look into that.
Would the profile page edits be similar to what is listed here also: https://vborg.vbsupport.ru/showthread.php?t=184715 Also trying remove the group posts from the profile activity stream. When viewing someones profile you are able to see the private groups post. Would that be similar to your last reply? Thank you for the help! |
#8
|
|||
|
|||
Semi-sorta. That link will still let moderators see it (refer to can_moderate in WHERE syntax) whereas my goal was to hide them completely.
And, yes, adjusting the query would remove the private groups post. |
#9
|
|||
|
|||
Quote:
just realized about it...kinda surprising not even vb4 got around to fixing permission issues dam.. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|