예제 #1
0
/**
 * Screen function for Images listing page (Default)
 */
function bp_media_images_screen()
{
    global $bp;
    remove_filter('bp_activity_get_user_join_filter', 'bp_media_activity_query_filter', 10);
    if (isset($bp->action_variables[0])) {
        switch ($bp->action_variables[0]) {
            case BP_MEDIA_IMAGES_EDIT_SLUG:
                bp_media_images_edit_screen();
                break;
            case BP_MEDIA_IMAGES_ENTRY_SLUG:
                global $bp_media_current_entry;
                if (!isset($bp->action_variables[1])) {
                    bp_media_page_not_exist();
                }
                try {
                    $bp_media_current_entry = new BP_Media_Host_Wordpress($bp->action_variables[1]);
                    if ($bp_media_current_entry->get_author() != bp_displayed_user_id()) {
                        throw new Exception(__('Sorry, the requested media does not belong to the user'));
                    }
                } catch (Exception $e) {
                    /* Send the values to the cookie for page reload display */
                    if (isset($_COOKIE['bp-message']) && $_COOKIE['bp-message'] != '') {
                        @setcookie('bp-message', $_COOKIE['bp-message'], time() + 60 * 60 * 24, COOKIEPATH);
                        @setcookie('bp-message-type', $_COOKIE['bp-message-type'], time() + 60 * 60 * 24, COOKIEPATH);
                    } else {
                        @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;
                }
                add_action('bp_template_content', 'bp_media_images_entry_screen_content');
                break;
            case BP_MEDIA_DELETE_SLUG:
                if (!isset($bp->action_variables[1])) {
                    bp_media_page_not_exist();
                }
                bp_media_entry_delete();
                break;
            default:
                bp_media_set_query();
                add_action('bp_template_content', 'bp_media_images_screen_content');
        }
    } else {
        bp_media_set_query();
        add_action('bp_template_content', 'bp_media_images_screen_content');
    }
    bp_core_load_template(apply_filters('bp_core_template_plugin', 'members/single/plugins'));
}