예제 #1
0
function bp_media_entry_delete()
{
    global $bp;
    if (bp_loggedin_user_id() != bp_displayed_user_id()) {
        bp_core_no_access(array('message' => __('You do not have access to this page.', 'buddypress'), 'root' => bp_displayed_user_domain(), 'redirect' => false));
        exit;
    }
    if (!isset($bp->action_variables[1])) {
        @setcookie('bp-message', 'The requested url does not exist', time() + 60 * 60 * 24, COOKIEPATH);
        @setcookie('bp-message-type', 'error', time() + 60 * 60 * 24, COOKIEPATH);
        wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG));
        exit;
    }
    global $bp_media_current_entry;
    try {
        $bp_media_current_entry = new BP_Media_Host_Wordpress($bp->action_variables[1]);
    } catch (Exception $e) {
        /* Send the values to the cookie for page reload display */
        @setcookie('bp-message', $e->getMessage(), time() + 60 * 60 * 24, COOKIEPATH);
        @setcookie('bp-message-type', 'error', time() + 60 * 60 * 24, COOKIEPATH);
        wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG));
        exit;
    }
    $post_id = $bp_media_current_entry->get_id();
    $activity_id = get_post_meta($post_id, 'bp_media_child_activity', true);
    bp_activity_delete_by_activity_id($activity_id);
    $bp_media_current_entry->delete_media();
    @setcookie('bp-message', __('Media deleted successfully', 'bp-media'), time() + 60 * 60 * 24, COOKIEPATH);
    @setcookie('bp-message-type', 'success', time() + 60 * 60 * 24, COOKIEPATH);
    wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG));
    exit;
}
function bp_media_delete_activity_handler_old($args)
{
    global $bp_media_count, $wpdb;
    if (!array_key_exists('id', $args)) {
        return;
    }
    $activity_id = $args['id'];
    $query = "SELECT post_id from {$wpdb->postmeta} WHERE meta_key='bp_media_child_activity' AND meta_value={$activity_id}";
    $result = $wpdb->get_results($query);
    if (!(is_array($result) && count($result) == 1)) {
        return;
    }
    $post_id = $result[0]->post_id;
    $media = new BP_Media_Host_Wordpress($post_id);
    $media->delete_media();
}
예제 #3
0
function bp_media_delete_activity_handler($args)
{
    remove_action('bp_media_before_delete_media', 'bp_media_delete_media_handler');
    global $bp_media_count, $wpdb;
    if (!array_key_exists('id', $args)) {
        return;
    }
    $activity_id = $args['id'];
    $query = "SELECT post_id from {$wpdb->postmeta} WHERE meta_key='bp_media_child_activity' AND meta_value={$activity_id}";
    $result = $wpdb->get_results($query);
    if (!(is_array($result) && count($result) == 1)) {
        return;
    }
    $post_id = $result[0]->post_id;
    try {
        $post = get_post($post_id);
        if (!isset($post->post_type)) {
            return false;
        }
        switch ($post->post_type) {
            case 'attachment':
                $media = new BP_Media_Host_Wordpress($post_id);
                $media->delete_media();
                break;
            case 'bp_media_album':
                $album = new BP_Media_Album($post_id);
                $album->delete_album();
                break;
            default:
                wp_delete_post($post_id);
        }
    } catch (Exception $e) {
        error_log('Media tried to delete was already deleted');
    }
}