WordPress.org

Make WordPress Core

Changeset 8075


Ignore:
Timestamp:
06/12/08 21:41:18 (7 years ago)
Author:
ryan
Message:

wp.getUsersBlogs from josephscott. fixes #7130

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/xmlrpc.php

    r7991 r8075  
    111111        $this->methods = array( 
    112112            // WordPress API 
     113            'wp.getUsersBlogs'      => 'this:wp_getUsersBlogs', 
    113114            'wp.getPage'            => 'this:wp_getPage', 
    114115            'wp.getPages'           => 'this:wp_getPages', 
     
    253254            } 
    254255        } 
     256    } 
     257 
     258    /** 
     259     * WordPress XML-RPC API 
     260     * wp_getUsersBlogs 
     261     */ 
     262    function wp_getUsersBlogs( $args ) { 
     263        // If this isn't on WPMU then just use blogger_getUsersBlogs 
     264        if( !function_exists( 'is_site_admin' ) ) { 
     265            array_unshift( $args, 1 ); 
     266            return $this->blogger_getUsersBlogs( $args ); 
     267        } 
     268 
     269        $this->escape( $args ); 
     270 
     271        $username = $args[0]; 
     272        $password = $args[1]; 
     273 
     274        if( !$this->login_pass_ok( $username, $password ) ) 
     275            return $this->error; 
     276 
     277        do_action( 'xmlrpc_call', 'wp.getUsersBlogs' ); 
     278 
     279        $user = set_current_user( 0, $username ); 
     280 
     281        $blogs = (array) get_blogs_of_user( $user->ID ); 
     282        $struct = array( ); 
     283 
     284        foreach( $blogs as $blog ) { 
     285            // Don't include blogs that aren't hosted at this site 
     286            if( $blog->site_id != 1 ) 
     287                continue; 
     288 
     289            $blog_id = $blog->userblog_id; 
     290            switch_to_blog($blog_id); 
     291            $is_admin = current_user_can('level_8'); 
     292 
     293            $struct[] = array( 
     294                'isAdmin'       => $is_admin, 
     295                'url'           => get_option( 'home' ) . '/', 
     296                'blogid'        => $blog_id, 
     297                'blogName'      => get_option( 'blogname' ), 
     298                'xmlrpc'        => get_option( 'home' ) . '/xmlrpc.php' 
     299            ); 
     300        } 
     301 
     302        return $struct; 
    255303    } 
    256304 
     
    842890            'url'      => get_option('home') . '/', 
    843891            'blogid'   => '1', 
    844             'blogName' => get_option('blogname') 
     892            'blogName' => get_option('blogname'), 
     893            'xmlrpc'   => get_option('home') . '/xmlrpc.php', 
    845894        ); 
    846895 
Note: See TracChangeset for help on using the changeset viewer.