Make WordPress Core

Changeset 11847


Ignore:
Timestamp:
08/20/2009 07:06:08 AM (15 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.