WordPress.org

Make WordPress Core

Ticket #15153: patch-15153-1.diff

File patch-15153-1.diff, 2.8 KB (added by koke, 5 years ago)

First patch proposal

  • wp-includes/class.wp-xmlrpc-server.php

    diff --git a/wp-includes/class.wp-xmlrpc-server.php b/wp-includes/class.wp-xmlrpc-server.php
    index 6aa9aa4..2d570a9 100644
    a b class wp_xmlrpc_server extends IXR_Server { 
    6161                        'wp.editComment'                => 'this:wp_editComment', 
    6262                        'wp.newComment'                 => 'this:wp_newComment', 
    6363                        'wp.getCommentStatusList' => 'this:wp_getCommentStatusList', 
     64                        'wp.getMediaSettings'   => 'this:wp_getMediaSettings', 
     65                        'wp.setMediaSettings'   => 'this:wp_setMediaSettings', 
    6466 
    6567                        // Blogger API 
    6668                        'blogger.getUsersBlogs' => 'this:blogger_getUsersBlogs', 
    class wp_xmlrpc_server extends IXR_Server { 
    107109                ); 
    108110 
    109111                $this->initialise_blog_option_info( ); 
     112                $this->initialise_blog_media_settings( ); 
    110113                $this->methods = apply_filters('xmlrpc_methods', $this->methods); 
    111114        } 
    112115 
    class wp_xmlrpc_server extends IXR_Server { 
    340343        } 
    341344 
    342345        /** 
     346         * Set up blog media settings property. 
     347         * 
     348         * @since unknown 
     349         */ 
     350        function initialise_blog_media_settings( ) { 
     351 
     352                $this->media_settings = array( 
     353                        'thumbnail_size_w', 
     354                        'thumbnail_size_h', 
     355                        'thumbnail_crop', 
     356                        'medium_size_w', 
     357                        'medium_size_h', 
     358                        'large_size_w', 
     359                        'large_size_h' 
     360                ); 
     361        } 
     362 
     363        /** 
    343364         * Retrieve the blogs of the user. 
    344365         * 
    345366         * @since 2.6.0 
    class wp_xmlrpc_server extends IXR_Server { 
    14461467                return $this->_getOptions($option_names); 
    14471468        } 
    14481469 
     1470        /** 
     1471         * Retrieve blog media settings. 
     1472         * 
     1473         * @since unknown 
     1474         * 
     1475         * @param array $args Method parameters. 
     1476         * @return array 
     1477         */ 
     1478        function wp_getMediaSettings($args) 
     1479        { 
     1480                $this->escape( $args ); 
     1481 
     1482                $blog_id        = (int) $args[0]; 
     1483                $username       = $args[1]; 
     1484                $password       = $args[2]; 
     1485 
     1486                if ( !$user = $this->login($username, $password) ) 
     1487                        return $this->error; 
     1488 
     1489                $struct = array(); 
     1490                foreach ($this->media_settings as $setting) { 
     1491                        $struct[$setting] = get_option( $setting ); 
     1492                } 
     1493 
     1494                return $struct; 
     1495        } 
     1496 
     1497        /** 
     1498         * Update blog media settings. 
     1499         * 
     1500         * @since unknown 
     1501         * 
     1502         * @param array $args Method parameters. 
     1503         * @return unknown 
     1504         */ 
     1505        function wp_setMediaSettings( $args ) { 
     1506                $this->escape( $args ); 
     1507 
     1508                $blog_id        = (int) $args[0]; 
     1509                $username       = $args[1]; 
     1510                $password       = $args[2]; 
     1511                $settings       = (array) $args[3]; 
     1512 
     1513                if ( !$user = $this->login($username, $password) ) 
     1514                        return $this->error; 
     1515 
     1516                if ( !current_user_can( 'manage_options' ) ) 
     1517                        return new IXR_Error( 403, __( 'You are not allowed to update options.' ) ); 
     1518 
     1519                foreach ( $settings as $s_name => $s_value ) { 
     1520                        if ( !in_array( $s_name, $this->media_settings ) ) 
     1521                                continue; 
     1522 
     1523                        update_option( $s_name, $s_value ); 
     1524                } 
     1525 
     1526                //Now return the updated values 
     1527                return $this->wp_getMediaSettings( array_slice( $args, 0, 3 ) ); 
     1528        } 
     1529 
    14491530        /* Blogger API functions. 
    14501531         * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/ 
    14511532         */