WordPress.org

Make WordPress Core

Ticket #15153: patch-15153-1.diff

File patch-15153-1.diff, 2.8 KB (added by koke, 8 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         */