Make WordPress Core

Changeset 11847


Ignore:
Timestamp:
08/20/2009 07:06:08 AM (17 years ago)
Author:
westi
Message:

Ensure that drafts viewed over XMLRPC have a correct gmt date set. Fixes #10244 for 2.8 branch props josephscott.

Location:
branches/2.8
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2.8/wp-includes/formatting.php

    r11635 r11847  
    14531453 *
    14541454 * Requires and returns a date in the Y-m-d H:i:s format. Simply subtracts the
    1455  * value of the 'gmt_offset' option.
     1455 * value of the 'gmt_offset' option. Return format can be overridden using the
     1456 * $format parameter
    14561457 *
    14571458 * @since 1.2.0
    … …  
    14591460 * @uses get_option() to retrieve the the value of 'gmt_offset'.
    14601461 * @param string $string The date to be converted.
     1462 * @param string $format The format string for the returned date (default is Y-m-d H:i:s)
    14611463 * @return string GMT version of the date provided.
    14621464 */
    1463 function get_gmt_from_date($string) {
     1465function get_gmt_from_date($string, $format = 'Y-m-d H:i:s') {
    14641466        preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $string, $matches);
    14651467        $string_time = gmmktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
    1466         $string_gmt = gmdate('Y-m-d H:i:s', $string_time - get_option('gmt_offset') * 3600);
     1468        $string_gmt = gmdate($format, $string_time - get_option('gmt_offset') * 3600);
    14671469        return $string_gmt;
    14681470}
    … …  
    14721474 *
    14731475 * Requires and returns in the Y-m-d H:i:s format. Simply adds the value of
    1474  * gmt_offset.
     1476 * gmt_offset.Return format can be overridden using the $format parameter
    14751477 *
    14761478 * @since 1.2.0
    14771479 *
    14781480 * @param string $string The date to be converted.
     1481 * @param string $format The format string for the returned date (default is Y-m-d H:i:s)
    14791482 * @return string Formatted date relative to the GMT offset.
    14801483 */
    1481 function get_date_from_gmt($string) {
     1484function get_date_from_gmt($string, $format = 'Y-m-d H:i:s') {
    14821485        preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $string, $matches);
    14831486        $string_time = gmmktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
    1484         $string_localtime = gmdate('Y-m-d H:i:s', $string_time + get_option('gmt_offset')*3600);
     1487        $string_localtime = gmdate($format, $string_time + get_option('gmt_offset')*3600);
    14851488        return $string_localtime;
    14861489}
  • branches/2.8/xmlrpc.php

    r11687 r11847  
    527527                        $page_date_gmt = mysql2date("Ymd\TH:i:s", $page->post_date_gmt, false);
    528528
     529                        // For drafts use the GMT version of the date
     530                        if ( $page->post_status == 'draft' ) {
     531                                $page_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $page->post_date ), 'Ymd\TH:i:s' );
     532                        }
     533
    529534                        // Pull the categories info together.
    530535                        $categories = array();
    … …  
    791796                                post_parent page_parent_id,
    792797                                post_date_gmt,
    793                                 post_date
     798                                post_date,
     799                                post_status
    794800                        FROM {$wpdb->posts}
    795801                        WHERE post_type = 'page'
    … …  
    806812                        $page_list[$i]->date_created_gmt = new IXR_Date($post_date_gmt);
    807813
     814                        // For drafts use the GMT version of the date
     815                        if ( $page_list[$i]->post_status == 'draft' ) {
     816                                $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' );
     817                                $page_list[$i]->date_created_gmt = new IXR_Date( $page_list[$i]->date_created_gmt );
     818                        }
     819
    808820                        unset($page_list[$i]->post_date_gmt);
    809821                        unset($page_list[$i]->post_date);
     822                        unset($page_list[$i]->post_status);
    810823                }
    811824
    … …  
    25772590                        // For drafts use the GMT version of the post date
    25782591                        if ( $postdata['post_status'] == 'draft' ) {
    2579                                 $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $postdata['post_date'] ) );
    2580                                 $post_date_gmt = preg_replace( '|\-|', '', $post_date_gmt );
    2581                                 $post_date_gmt = preg_replace( '| |', 'T', $post_date_gmt );
     2592                                $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $postdata['post_date'] ), 'Ymd\TH:i:s' );
    25822593                        }
    25832594
    … …  
    26982709                        $post_date_gmt = mysql2date('Ymd\TH:i:s', $entry['post_date_gmt'], false);
    26992710
     2711                        // For drafts use the GMT version of the date
     2712                        if ( $entry['post_status'] == 'draft' ) {
     2713                                $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_date'] ), 'Ymd\TH:i:s' );
     2714                        }
     2715
    27002716                        $categories = array();
    27012717                        $catids = wp_get_post_categories($entry['ID']);
    … …  
    29322948                        $post_date = mysql2date('Ymd\TH:i:s', $entry['post_date'], false);
    29332949                        $post_date_gmt = mysql2date('Ymd\TH:i:s', $entry['post_date_gmt'], false);
     2950
     2951                        // For drafts use the GMT version of the date
     2952                        if ( $entry['post_status'] == 'draft' ) {
     2953                                $post_date_gmt = get_gmt_from_date( mysql2date( 'Y-m-d H:i:s', $entry['post_date'] ), 'Ymd\TH:i:s' );
     2954                        }
    29342955
    29352956                        $struct[] = array(
Note: See TracChangeset for help on using the changeset viewer.