Make WordPress Core

Changeset 20353

Timestamp:
04/04/2012 09:32:28 PM (12 years ago)
Author:
westi
Message:

XMLRPC: Make sure that we always return valid dates when no date is currently set - for example if the post is pending. Fixes #19733 props markoheijnen and koke.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/class-wp-xmlrpc-server.php

    r20351 r20353  
    500500     *
    501501     * @access protected
    502     .*
     502    *
    503503     * @param array|object $taxonomy The unprepared taxonomy data
    504504     * @return array The prepared taxonomy data
     
    516516     *
    517517     * @access protected
    518     .*
     518    *
    519519     * @param array|object $term The unprepared term data
    520520     * @return array The prepared term data
     
    553553
    554554    /**
     555
     556
     557
     558
     559
     560
     561
     562
     563
     564
     565
     566
     567
     568
     569
    555570     * Prepares post data for return in an XML-RPC object.
    556571     *
     
    569584            'post_title'        => $post['post_title'],
    570585            'post_date'         => $this->_convert_date( $post['post_date'] ),
    571             'post_date_gmt'     => $this->_convert_date( $post['post_date_gmt'] ),
     586            'post_date_gmt'     => $this->_convert_date'] ),
    572587            'post_modified'     => $this->_convert_date( $post['post_modified'] ),
    573             'post_modified_gmt' => $this->_convert_date( $post['post_modified_gmt'] ),
     588            'post_modified_gmt' => $this->_convert_date'] ),
    574589            'post_status'       => $post['post_status'],
    575590            'post_type'         => $post['post_type'],
     
    17151730
    17161731            // Format page date.
    1717             $page_date = mysql2date('Ymd\TH:i:s', $page->post_date, false);
    1718             $page_date_gmt = mysql2date('Ymd\TH:i:s', $page->post_date_gmt, false);
    1719 
    1720             // For drafts use the GMT version of the date
    1721             if ( $page->post_status == 'draft' )
    1722                 $page_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $page->post_date ), 'Ymd\TH:i:s' );
     1732            $page_date = $this->_convert_date( $page->post_date );
     1733            $page_date_gmt = $this->_convert_date_gmt( $page->post_date_gmt, $page->post_date );
    17231734
    17241735            // Pull the categories info together.
     
    17361747
    17371748            $page_struct = array(
    1738                 'dateCreated'           => new IXR_Date($page_date),
     1749                'dateCreated'           => ,
    17391750                'userid'                => $page->post_author,
    17401751                'page_id'               => $page->ID,
     
    17571768                'wp_author_id'          => (string) $author->ID,
    17581769                'wp_author_display_name'    => $author->display_name,
    1759                 'date_created_gmt'      => new IXR_Date($page_date_gmt),
     1770                'date_created_gmt'      => ,
    17601771                'custom_fields'         => $this->get_custom_fields($page_id),
    17611772                'wp_page_template'      => $page_template
     
    19761987        $num_pages = count($page_list);
    19771988        for ( $i = 0; $i < $num_pages; $i++ ) {
    1978             $post_date = mysql2date('Ymd\TH:i:s', $page_list[$i]->post_date, false);
    1979             $post_date_gmt = mysql2date('Ymd\TH:i:s', $page_list[$i]->post_date_gmt, false);
    1980 
    1981             $page_list[$i]->dateCreated = new IXR_Date($post_date);
    1982             $page_list[$i]->date_created_gmt = new IXR_Date($post_date_gmt);
    1983 
    1984             // For drafts use the GMT version of the date
    1985             if ( $page_list[$i]->post_status == 'draft' ) {
    1986                 $page_list[$i]->date_created_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $page_list[$i]->post_date ), 'Ymd\TH:i:s' );
    1987                 $page_list[$i]->date_created_gmt = new IXR_Date( $page_list[$i]->date_created_gmt );
    1988             }
     1989            $page_list[$i]->dateCreated = $this->_convert_date(  $page_list[$i]->post_date );
     1990            $page_list[$i]->date_created_gmt = $this->_convert_date_gmt( $page_list[$i]->post_date_gmt, $page_list[$i]->post_date );
    19891991
    19901992            unset($page_list[$i]->post_date_gmt);
     
    22312233
    22322234        // Format page date.
    2233         $comment_date = mysql2date('Ymd\TH:i:s', $comment->comment_date, false);
    2234         $comment_date_gmt = mysql2date('Ymd\TH:i:s', $comment->comment_date_gmt, false);
     2235        $comment_date = );
     2236        $comment_date_gmt = );
    22352237
    22362238        if ( '0' == $comment->comment_approved )
     
    22462248
    22472249        $comment_struct = array(
    2248             'date_created_gmt'      => new IXR_Date($comment_date_gmt),
     2250            'date_created_gmt'      => ,
    22492251            'user_id'               => $comment->user_id,
    22502252            'comment_id'            => $comment->comment_ID,
     
    28252827
    28262828        // Format page date.
    2827         $attachment_date = mysql2date('Ymd\TH:i:s', $attachment->post_date, false);
    2828         $attachment_date_gmt = mysql2date('Ymd\TH:i:s', $attachment->post_date_gmt, false);
     2829        $attachment_date = );
     2830        $attachment_date_gmt = );
    28292831
    28302832        $link = wp_get_attachment_url($attachment->ID);
     
    28322834
    28332835        $attachment_struct = array(
    2834             'date_created_gmt'      => new IXR_Date($attachment_date_gmt),
     2836            'date_created_gmt'      => ,
    28352837            'parent'                => $attachment->post_parent,
    28362838            'link'                  => $link,
     
    31833185        $struct = array(
    31843186            'userid'    => $post_data['post_author'],
    3185             'dateCreated' => new IXR_Date(mysql2date('Ymd\TH:i:s', $post_data['post_date'], false)),
     3187            'dateCreated' => ),
    31863188            'content'     => $content,
    31873189            'postid'  => (string) $post_data['ID']
     
    32283230                continue;
    32293231
    3230             $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
     3232            $post_date );
    32313233            $categories = implode(',', wp_get_post_categories($entry['ID']));
    32323234
     
    32373239            $struct[] = array(
    32383240                'userid' => $entry['post_author'],
    3239                 'dateCreated' => new IXR_Date($post_date),
     3241                'dateCreated' => ,
    32403242                'content' => $content,
    32413243                'postid' => (string) $entry['ID'],
     
    41244126
    41254127        if ($postdata['post_date'] != '') {
    4126             $post_date = mysql2date('Ymd\TH:i:s', $postdata['post_date'], false);
    4127             $post_date_gmt = mysql2date('Ymd\TH:i:s', $postdata['post_date_gmt'], false);
    4128             $post_modified = mysql2date('Ymd\TH:i:s', $postdata['post_modified'], false);
    4129             $post_modified_gmt = mysql2date('Ymd\TH:i:s', $postdata['post_modified_gmt'], false);
    4130 
    4131             // For drafts use the GMT version of the post date
    4132             if ( $postdata['post_status'] == 'draft' ) {
    4133                 $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $postdata['post_date'] ), 'Ymd\TH:i:s' );
    4134                 $post_modified_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $postdata['post_modified'] ), 'Ymd\TH:i:s' );
    4135             }
     4128            $post_date = $this->_convert_date( $postdata['post_date'] );
     4129            $post_date_gmt = $this->_convert_date_gmt( $postdata['post_date_gmt'],  $postdata['post_date'] );
     4130            $post_modified = $this->_convert_date( $postdata['post_modified'] );
     4131            $post_modified_gmt = $this->_convert_date_gmt( $postdata['post_modified_gmt'], $postdata['post_modified'] );
    41364132
    41374133            $categories = array();
     
    41864182
    41874183            $resp = array(
    4188                 'dateCreated' => new IXR_Date($post_date),
     4184                'dateCreated' => ,
    41894185                'userid' => $postdata['post_author'],
    41904186                'postid' => $postdata['ID'],
     
    42054201                'wp_password' => $postdata['post_password'],
    42064202                'wp_author_id' => (string) $author->ID,
    4207                 'wp_author_display_name'    => $author->display_name,
    4208                 'date_created_gmt' => new IXR_Date($post_date_gmt),
     4203                'wp_author_display_name'=> $author->display_name,
     4204                'date_created_gmt' => ,
    42094205                'post_status' => $postdata['post_status'],
    42104206                'custom_fields' => $this->get_custom_fields($post_ID),
    42114207                'wp_post_format' => $post_format,
    42124208                'sticky' => $sticky,
    4213                 'date_modified' => new IXR_Date( $post_modified ),
    4214                 'date_modified_gmt' => new IXR_Date( $post_modified_gmt )
     4209                'date_modified' => ,
     4210                'date_modified_gmt' =>
    42154211            );
    42164212
     
    42604256                continue;
    42614257
    4262             $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
    4263             $post_date_gmt = mysql2date('Ymd\TH:i:s', $entry['post_date_gmt'], false);
    4264             $post_modified = mysql2date('Ymd\TH:i:s', $entry['post_modified'], false);
    4265             $post_modified_gmt = mysql2date('Ymd\TH:i:s', $entry['post_modified_gmt'], false);
    4266 
    4267             // For drafts use the GMT version of the date
    4268             if ( $entry['post_status'] == 'draft' ) {
    4269                 $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_date'] ), 'Ymd\TH:i:s' );
    4270                 $post_modified_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_modified'] ), 'Ymd\TH:i:s' );
    4271             }
     4258            $post_date = $this->_convert_date( $entry['post_date'] );
     4259            $post_date_gmt = $this->_convert_date_gmt( $entry['post_date_gmt'], $entry['post_date'] );
     4260            $post_modified = $this->_convert_date( $entry['post_modified'] );
     4261            $post_modified_gmt = $this->_convert_date_gmt( $entry['post_modified_gmt'], $entry['post_modified'] );
    42724262
    42734263            $categories = array();
     
    43064296
    43074297            $struct[] = array(
    4308                 'dateCreated' => new IXR_Date($post_date),
     4298                'dateCreated' => ,
    43094299                'userid' => $entry['post_author'],
    43104300                'postid' => (string) $entry['ID'],
     
    43264316                'wp_author_id' => (string) $author->ID,
    43274317                'wp_author_display_name' => $author->display_name,
    4328                 'date_created_gmt' => new IXR_Date($post_date_gmt),
     4318                'date_created_gmt' => ,
    43294319                'post_status' => $entry['post_status'],
    43304320                'custom_fields' => $this->get_custom_fields($entry['ID']),
    43314321                'wp_post_format' => $post_format,
    4332                 'date_modified' => new IXR_Date( $post_modified ),
    4333                 'date_modified_gmt' => new IXR_Date( $post_modified_gmt )
     4322                'date_modified' => ,
     4323                'date_modified_gmt' =>
    43344324            );
    43354325
     
    45174507                continue;
    45184508
    4519             $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
    4520             $post_date_gmt = mysql2date('Ymd\TH:i:s', $entry['post_date_gmt'], false);
    4521 
    4522             // For drafts use the GMT version of the date
    4523             if ( $entry['post_status'] == 'draft' )
    4524                 $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_date'] ), 'Ymd\TH:i:s' );
     4509            $post_date = $this->_convert_date( $entry['post_date'] );
     4510            $post_date_gmt = $this->_convert_date_gmt( $entry['post_date_gmt'], $entry['post_date'] );
    45254511
    45264512            $struct[] = array(
    4527                 'dateCreated' => new IXR_Date($post_date),
     4513                'dateCreated' => ,
    45284514                'userid' => $entry['post_author'],
    45294515                'postid' => (string) $entry['ID'],
    45304516                'title' => $entry['post_title'],
    45314517                'post_status' => $entry['post_status'],
    4532                 'date_created_gmt' => new IXR_Date($post_date_gmt)
     4518                'date_created_gmt' =>
    45334519            );
    45344520
Note: See TracChangeset for help on using the changeset viewer.