function bp_group_management_delete_group($group_id)
{
    global $bp;
    $group = new BP_Groups_Group($group_id);
    if (!$group->delete()) {
        return false;
    }
    /* Delete all group activity from activity streams */
    if (function_exists('bp_activity_delete_by_item_id')) {
        bp_activity_delete_by_item_id(array('item_id' => $group_id, 'component' => $bp->groups->id));
    }
    // Remove all outstanding invites for this group
    groups_delete_all_group_invites($group_id);
    // Remove all notifications for any user belonging to this group
    bp_core_delete_all_notifications_by_type($group_id, $bp->groups->slug);
    do_action('groups_delete_group', $group_id);
    return true;
}
 /**
  * @group delete
  * @group cache
  */
 public function test_delete_clear_cache()
 {
     $g = $this->factory->group->create();
     // Prime cache
     groups_get_group(array('group_id' => $g));
     $this->assertNotEmpty(wp_cache_get($g, 'bp_groups'));
     $group = new BP_Groups_Group($g);
     $group->delete();
     $this->assertFalse(wp_cache_get($g, 'bp_groups'));
 }
/**
 * Delete a group and all of its associated meta
 *
 * @global object $bp BuddyPress global settings
 * @param int $group_id
 * @since 1.0
 */
function groups_delete_group($group_id)
{
    global $bp;
    // Check the user is the group admin.
    if (!$bp->is_item_admin) {
        return false;
    }
    // Get the group object
    $group = new BP_Groups_Group($group_id);
    if (!$group->delete()) {
        return false;
    }
    do_action('groups_before_delete_group', $group_id);
    // Delete all group activity from activity streams
    if (bp_is_active('activity')) {
        bp_activity_delete_by_item_id(array('item_id' => $group_id, 'component' => $bp->groups->id));
    }
    // Remove all outstanding invites for this group
    groups_delete_all_group_invites($group_id);
    // Remove all notifications for any user belonging to this group
    bp_core_delete_all_notifications_by_type($group_id, $bp->groups->id);
    // Remove forum if component is active and current group has one
    if (bp_is_active('forums') && ($forum_id = groups_get_groupmeta($group_id, 'forum_id'))) {
        do_action('bbpress_init');
        bb_delete_forum($forum_id);
    }
    do_action('groups_delete_group', $group_id);
    return true;
}
Exemplo n.º 4
0
function groups_delete_group($group_id)
{
    global $bp;
    /* Check the nonce first. */
    if (!check_admin_referer('groups_delete_group')) {
        return false;
    }
    // Check the user is the group admin.
    if (!$bp->is_item_admin) {
        return false;
    }
    // Get the group object
    $group = new BP_Groups_Group($group_id);
    if (!$group->delete()) {
        return false;
    }
    // Remove the activity stream item
    groups_delete_activity(array('item_id' => $group_id, 'component_name' => $bp->groups->slug, 'component_action' => 'created_group', 'user_id' => $bp->loggedin_user->id));
    // Remove all outstanding invites for this group
    groups_delete_all_group_invites($group_id);
    // Remove all notifications for any user belonging to this group
    bp_core_delete_all_notifications_by_type($group_id, $bp->groups->slug);
    do_action('groups_delete_group', $group_id);
    return true;
}
Exemplo n.º 5
0
function groups_admin_settings()
{
    if (isset($_POST['groups_admin_delete']) && isset($_POST['allgroups'])) {
        if (!check_admin_referer('bp-groups-admin')) {
            return false;
        }
        $errors = false;
        foreach ($_POST['allgroups'] as $group_id) {
            $group = new BP_Groups_Group($group_id);
            if (!$group->delete()) {
                $errors = true;
            }
        }
        if ($errors) {
            $message = __('There were errors when deleting groups, please try again', 'buddypress');
            $type = 'error';
        } else {
            $message = __('Groups deleted successfully', 'buddypress');
            $type = 'updated';
        }
    }
    ?>
	<?php 
    if (isset($message)) {
        ?>
		<div id="message" class="<?php 
        echo $type;
        ?>
 fade">
			<p><?php 
        echo $message;
        ?>
</p>
		</div>
	<?php 
    }
    ?>

	<div class="wrap" style="position: relative">
		<h2><?php 
    _e('Groups', 'buddypress');
    ?>
</h2>
	
		<form id="wpmu-search" method="post" action="">
			<input type="text" size="17" value="<?php 
    echo attribute_escape(stripslashes($_REQUEST['s']));
    ?>
" name="s" />
			<input id="post-query-submit" class="button" type="submit" value="<?php 
    _e('Search Groups', 'buddypress');
    ?>
" />
		</form>
		
		<?php 
    if (bp_has_site_groups('type=active&per_page=10')) {
        ?>
			<form id="bp-group-admin-list" method="post" action="">
				<div class="tablenav">
					<div class="tablenav-pages">
						<?php 
        bp_site_groups_pagination_count();
        ?>
 <?php 
        bp_site_groups_pagination_links();
        ?>
					</div>
					<div class="alignleft">
						<input class="button-secondary delete" type="submit" name="groups_admin_delete" value="<?php 
        _e('Delete', 'buddypress');
        ?>
" onclick="if ( !confirm('<?php 
        _e('Are you sure?', 'buddypress');
        ?>
') ) return false"/>
						<?php 
        wp_nonce_field('bp-groups-admin');
        ?>
						<br class="clear"/>
					</div>
				</div>
				
				<br class="clear"/>
				
				<?php 
        if (isset($_REQUEST['s']) && $_REQUEST['s'] != '') {
            ?>
					<p><?php 
            echo sprintf(__('Groups matching: "%s"', 'buddypress'), $_REQUEST['s']);
            ?>
</p>
				<?php 
        }
        ?>


				<table class="widefat" cellspacing="3" cellpadding="3">
					<thead>
						<tr>
							<th class="check-column" scope="col">
								<input id="group_check_all" type="checkbox" value="0" name="group_check_all" onclick="if ( jQuery(this).attr('checked') ) { jQuery('#group-list input[@type=checkbox]').attr('checked', 'checked'); } else { jQuery('#group-list input[@type=checkbox]').attr('checked', ''); }" />
							</th>
							<th scope="col">
							</th>
							<th scope="col">
									ID
							</th>
							<th scope="col">
									<?php 
        _e('Name', 'buddypress');
        ?>
							</th>
							<th scope="col">
									<?php 
        _e('Description', 'buddypress');
        ?>
							</th>
							<th scope="col">
									<?php 
        _e('Type', 'buddypress');
        ?>
							</th>
							<th scope="col">
									<?php 
        _e('Members', 'buddypress');
        ?>
							</th>
							<th scope="col">
									<?php 
        _e('Created', 'buddypress');
        ?>
							</th>
							<th scope="col">
									<?php 
        _e('Last Active', 'buddypress');
        ?>
							</th>
							<th scope="col">
							</th>
						</tr>
					</thead>
					<tbody id="group-list" class="list:groups group-list">
					<?php 
        $counter = 0;
        ?>
					<?php 
        while (bp_site_groups()) {
            bp_the_site_group();
            ?>
						<tr<?php 
            if (1 == $counter % 2) {
                ?>
 class="alternate"<?php 
            }
            ?>
>
							<th class="check-column" scope="row">
								<input id="group_<?php 
            bp_the_site_group_id();
            ?>
" type="checkbox" value="<?php 
            bp_the_site_group_id();
            ?>
" name="allgroups[<?php 
            bp_the_site_group_id();
            ?>
]" />
							</th>
							<td><?php 
            bp_the_site_group_avatar_mini();
            ?>
</td>
							<td><?php 
            bp_the_site_group_id();
            ?>
</td>
							<td><a href="<?php 
            bp_the_site_group_link();
            ?>
"><?php 
            bp_the_site_group_name();
            ?>
</a></td>
							<td><?php 
            bp_the_site_group_description_excerpt();
            ?>
</td>
							<td><?php 
            bp_the_site_group_type();
            ?>
</td>
							<td><?php 
            bp_the_site_group_member_count();
            ?>
</td>
							<td><?php 
            bp_the_site_group_date_created();
            ?>
</td>
							<td><?php 
            bp_the_site_group_last_active();
            ?>
</td>
							<td><a href="<?php 
            bp_the_site_group_link();
            ?>
/admin"><?php 
            _e('Edit', 'buddypress');
            ?>
</a></td>
						</tr>
						<?php 
            $counter++;
            ?>
					<?php 
        }
        ?>
					</tbody>
				</table>	

		<?php 
    } else {
        ?>

			<div id="message" class="info">
				<p><?php 
        _e('No groups found.', 'buddypress');
        ?>
</p>
			</div>

		<?php 
    }
    ?>

		<?php 
    bp_the_site_group_hidden_fields();
    ?>
		</form>
	</div>
<?php 
}