| | 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; |
|---|