Make WordPress Core

Ticket #35185: 35185.2.diff

File 35185.2.diff, 5.4 KB (added by dd32, 8 years ago)
  • src/wp-includes/class-IXR.php

    class IXR_Message 
    296296                break;
    297297            }
    298298        } while (true);
    299299        xml_parser_free($this->_parser);
    300300
    301301        // Grab the error messages, if any
    302302        if ($this->messageType == 'fault') {
    303303            $this->faultCode = $this->params[0]['faultCode'];
    304304            $this->faultString = $this->params[0]['faultString'];
    305305        }
    306306        return true;
    307307    }
    308308
    309309    function tag_open($parser, $tag, $attr)
    310310    {
    311         $this->_currentTagContents = '';
     311        $this->_currentTagContents = null;
    312312        $this->currentTag = $tag;
    313313        switch($tag) {
    314314            case 'methodCall':
    315315            case 'methodResponse':
    316316            case 'fault':
    317317                $this->messageType = $tag;
    318318                break;
    319319                /* Deal with stacks of arrays and structs */
    320320            case 'data':    // data is to all intents and puposes more interesting than array
    321321                $this->_arraystructstypes[] = 'array';
    322322                $this->_arraystructs[] = array();
    323323                break;
    324324            case 'struct':
    325325                $this->_arraystructstypes[] = 'struct';
    326326                $this->_arraystructs[] = array();
    class IXR_Message 
    347347            case 'double':
    348348                $value = (double)trim($this->_currentTagContents);
    349349                $valueFlag = true;
    350350                break;
    351351            case 'string':
    352352                $value = (string)trim($this->_currentTagContents);
    353353                $valueFlag = true;
    354354                break;
    355355            case 'dateTime.iso8601':
    356356                $value = new IXR_Date(trim($this->_currentTagContents));
    357357                $valueFlag = true;
    358358                break;
    359359            case 'value':
    360360                // "If no type is indicated, the type is string."
    361361                if ( !$this->_valueHasType ) {
    362                     $value = trim( $this->_currentTagContents );
     362                    $value = is_null( $this->_currentTagContents ) ? null : trim( $this->_currentTagContents );
    363363                    $valueFlag = true;
    364364                }
    365365                break;
    366366            case 'boolean':
    367367                $value = (boolean)trim($this->_currentTagContents);
    368368                $valueFlag = true;
    369369                break;
    370370            case 'base64':
    371371                $value = base64_decode($this->_currentTagContents);
    372372                $valueFlag = true;
    373373                break;
    374374                /* Deal with stacks of arrays and structs */
    375375            case 'data':
    376376            case 'struct':
    377377                $value = array_pop($this->_arraystructs);
  • src/wp-includes/class-wp-xmlrpc-server.php

    class wp_xmlrpc_server extends IXR_Serve 
    49124912                                case 'draft':
    49134913                                case 'pending':
    49144914                                case 'private':
    49154915                                case 'publish':
    49164916                                        $post_status = $content_struct["{$post_type}_status"];
    49174917                                        break;
    49184918                                default:
    49194919                                        $post_status = $publish ? 'publish' : 'draft';
    49204920                                        break;
    49214921                        }
    49224922                }
    49234923
    49244924                $post_excerpt = isset($content_struct['mt_excerpt']) ? $content_struct['mt_excerpt'] : null;
    49254925                $post_more = isset($content_struct['mt_text_more']) ? $content_struct['mt_text_more'] : null;
    49264926
    4927                 $tags_input = isset($content_struct['mt_keywords']) ? $content_struct['mt_keywords'] : null;
     4927                $tags_input = array_key_exists( 'mt_keywords', $content_struct ) ? $content_struct['mt_keywords'] : null;
    49284928
    49294929                if ( isset($content_struct['mt_allow_comments']) ) {
    49304930                        if ( !is_numeric($content_struct['mt_allow_comments']) ) {
    49314931                                switch ( $content_struct['mt_allow_comments'] ) {
    49324932                                        case 'closed':
    49334933                                                $comment_status = 'closed';
    49344934                                                break;
    49354935                                        case 'open':
    49364936                                                $comment_status = 'open';
    49374937                                                break;
    49384938                                        default:
    49394939                                                $comment_status = get_default_comment_status( $post_type );
    49404940                                                break;
    49414941                                }
    49424942                        } else {
    class wp_xmlrpc_server extends IXR_Serve 
    53235323                $post_status = $publish ? 'publish' : 'draft';
    53245324                if ( isset( $content_struct["{$post_type}_status"] ) ) {
    53255325                        switch( $content_struct["{$post_type}_status"] ) {
    53265326                                case 'draft':
    53275327                                case 'pending':
    53285328                                case 'private':
    53295329                                case 'publish':
    53305330                                        $post_status = $content_struct["{$post_type}_status"];
    53315331                                        break;
    53325332                                default:
    53335333                                        $post_status = $publish ? 'publish' : 'draft';
    53345334                                        break;
    53355335                        }
    53365336                }
    53375337
    5338                 $tags_input = isset( $content_struct['mt_keywords'] ) ? $content_struct['mt_keywords'] : null;
     5338                $tags_input = array_key_exists( 'mt_keywords', $content_struct ) ? $content_struct['mt_keywords'] : null;
    53395339
    53405340                if ( 'publish' == $post_status || 'private' == $post_status ) {
    53415341                        if ( 'page' == $post_type && ! current_user_can( 'publish_pages' ) ) {
    53425342                                return new IXR_Error( 401, __( 'Sorry, you do not have the right to publish this page.' ) );
    53435343                        } elseif ( ! current_user_can( 'publish_posts' ) ) {
    53445344                                return new IXR_Error( 401, __( 'Sorry, you do not have the right to publish this post.' ) );
    53455345                        }
    53465346                }
    53475347
    53485348                if ( $post_more )
    53495349                        $post_content = $post_content . "<!--more-->" . $post_more;
    53505350
    53515351                $to_ping = null;
    53525352                if ( isset( $content_struct['mt_tb_ping_urls'] ) ) {
    53535353                        $to_ping = $content_struct['mt_tb_ping_urls'];