function spa_display_usergroup_select($filter = false, $forum_id = 0, $showSelect = true) { $usergroups = spa_get_usergroups_all(); if ($showSelect) { echo spa_text('Select usergroup') . ': '; } if ($showSelect) { ?> <select style="width:145px" class='sfacontrol' name='usergroup_id'> <?php } $out = '<option value="-1">' . spa_text('Select usergroup') . '</option>'; if ($filter) { $perms = sp_get_forum_permissions($forum_id); } foreach ($usergroups as $usergroup) { $disabled = ''; if ($filter == 1 && $perms) { foreach ($perms as $perm) { if ($perm->usergroup_id == $usergroup->usergroup_id) { $disabled = 'disabled="disabled" '; continue; } } } $out .= '<option ' . $disabled . 'value="' . $usergroup->usergroup_id . '">' . sp_filter_title_display($usergroup->usergroup_name) . '</option>' . "\n"; $default = ''; } echo $out; if ($showSelect) { ?> </select></p> <?php } }
function spa_forums_view_forums_permission_form($forum_id) { ?> <script type="text/javascript"> jQuery(document).ready(function() { jQuery('#forumrow-<?php echo $forum_id; ?> ').addClass('inForm'); }); </script> <?php $forum = spdb_table(SFFORUMS, "forum_id={$forum_id}", 'row'); spa_paint_options_init(); spa_paint_open_tab(spa_text('Forums') . ' - ' . spa_text('Manage Groups and Forums'), true); spa_paint_open_panel(); spa_paint_open_fieldset(spa_text('View Forum Permissions'), false); $perms = sp_get_forum_permissions($forum->forum_id); if ($perms) { ?> <table class="sfmaintable" cellpadding="5" cellspacing="3"> <tr> <td align="center" colspan="3"><strong><?php echo spa_text('Current permission set for forum') . ' ' . sp_filter_title_display($forum->forum_name); ?> </strong></td> </tr> <?php foreach ($perms as $perm) { $usergroup = spa_get_usergroups_row($perm->usergroup_id); $role = spa_get_role_row($perm->permission_role); ?> <tr> <td class="sflabel"><?php echo sp_filter_title_display($usergroup->usergroup_name); ?> => <?php echo sp_filter_title_display($role->role_name); ?> </td> <td align="center"> <?php $base = SFHOMEURL . 'index.php?sp_ahah=forums-loader&sfnonce=' . wp_create_nonce('forum-ahah'); $target = "curperm-{$perm->permission_id}"; $image = SFADMINIMAGES; ?> <input type="button" class="spButton-tall" value="<?php echo sp_splice(spa_text('Edit Permission Set'), 0); ?> " onclick="spjLoadForm('editperm', '<?php echo $base; ?> ', '<?php echo $target; ?> ', '<?php echo $image; ?> ', '<?php echo $perm->permission_id; ?> ');" /> <input type="button" class="spButton-tall" value="<?php echo sp_splice(spa_text('Delete Permission Set'), 0); ?> " onclick="spjLoadForm('delperm', '<?php echo $base; ?> ', '<?php echo $target; ?> ', '<?php echo $image; ?> ', '<?php echo $perm->permission_id; ?> ');" /> </td> </tr> <tr class="sfinline-form"> <!-- This row will hold hidden forms for the current forum permission set --> <td colspan="3"> <div id="curperm-<?php echo $perm->permission_id; ?> "> </td> </tr> <?php } ?> <?php } else { ?> <table class="sfmaintable" cellpadding="5" cellspacing="3"> <tr> <td> <?php spa_etext('No permission sets for any usergroup'); ?> </td> </tr> <?php } ?> <tr> <td colspan="3" align="center"> <?php $base = SFHOMEURL . 'index.php?sp_ahah=forums-loader&sfnonce=' . wp_create_nonce('forum-ahah'); $target = "newperm-{$forum->forum_id}"; $image = SFADMINIMAGES; ?> <input type="button" class="spButton-tall" value="<?php echo sp_splice(spa_text('Add Permission'), 0); ?> " onclick="spjLoadForm('addperm', '<?php echo $base; ?> ', '<?php echo $target; ?> ', '<?php echo $image; ?> ', '<?php echo $forum->forum_id; ?> ', 'sfopen');" /> </td> </tr> <tr class="sfinline-form"> <!-- This row will hold ahah forms for adding a new forum permission set --> <td colspan="3"> <div id="newperm-<?php echo $forum->forum_id; ?> "> </div> </td> </tr> </table> <?php spa_paint_close_fieldset(); spa_paint_close_panel(); spa_paint_close_container(); ?> <form> <div class="sfform-submit-bar"> <input type="button" class="button-primary" onclick="javascript:jQuery('#forum-<?php echo $forum->forum_id; ?> ').html('');jQuery('#forumrow-<?php echo $forum_id; ?> ').removeClass('inForm');" id="sfgroupdel<?php echo $forum->forum_id; ?> " name="forumcancel<?php echo $forum->forum_id; ?> " value="<?php spa_etext('Cancel'); ?> " /> </div> </form> <?php spa_paint_close_tab(); ?> <div class="sfform-panel-spacer"></div> <?php }
function spa_forums_check_memberships($forums) { $value = sp_get_sfmeta('default usergroup', 'sfguests'); $ugid = spdb_table(SFUSERGROUPS, "usergroup_id={$value[0]['meta_value']}", 'usergroup_id'); if (empty($ugid)) { $ugid = 0; } $noMembers = array(); foreach ($forums as $forum) { $has_members = false; $permissions = sp_get_forum_permissions($forum->forum_id); if ($permissions) { foreach ($permissions as $permission) { $members = spdb_table(SFMEMBERSHIPS, "usergroup_id= {$permission->usergroup_id}", 'row', '', '1'); if ($members || $permission->usergroup_id == $ugid) { $has_members = true; break; } } } if (!$has_members) { $noMembers[] = $forum->forum_id; } } return $noMembers; }
function spa_save_forums_delete_group() { check_admin_referer('forum-adminform_groupdelete', 'forum-adminform_groupdelete'); $group_id = sp_esc_int($_POST['group_id']); $cseq = sp_esc_int($_POST['cgroup_seq']); # remove permissions for each forum in group $forums = spa_get_forums_in_group($group_id); if ($forums) { foreach ($forums as $forum) { # remove permissions for this forum $perms = sp_get_forum_permissions($forum->forum_id); if ($perms) { foreach ($perms as $perm) { spa_remove_permission_data($perm->permission_id); } } } } # reset auths and memberships for everyone sp_reset_memberships(); sp_reset_auths(); # select all the forums in the group $forums = spa_get_forums_in_group($group_id); # remove the topics and posts in each forum foreach ($forums as $forum) { # need to delete all topics in the forum using standard routine to clean up behind it $topics = spdb_table(SFTOPICS, "forum_id={$forum->forum_id}"); if ($topics) { foreach ($topics as $topic) { sp_delete_topic($topic->topic_id, $forum->forum_id, false); } } } #now remove the forums themselves spdb_query('DELETE FROM ' . SFFORUMS . " WHERE group_id={$group_id}"); # and finaly remove the group spdb_query('DELETE FROM ' . SFGROUPS . " WHERE group_id={$group_id}"); # need to iterate through the groups $groups = spdb_table(SFGROUPS, '', '', 'group_seq'); foreach ($groups as $group) { if ($group->group_seq > $cseq) { spa_bump_group_seq($group->group_id, $group->group_seq - 1); } } # remove the default permissions for the group being deleted spdb_query('DELETE FROM ' . SFDEFPERMISSIONS . " WHERE group_id={$group_id}"); do_action('sph_forum_group_del', $group_id); # clear out group cache tpo enable change_user sp_flush_cache('group'); $mess = spa_text('Group Deleted'); return $mess; }