Make WordPress Core

Changeset 942


Ignore:
Timestamp:
02/26/2004 04:13:05 PM (21 years ago)
Author:
michelvaldrighi
Message:

rewrote upgrade for GMT, now checks for the option gmt_offset before changing anything

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/upgrade-functions.php

    r920 r942  
    713713    }
    714714
    715     // Convert all datetime fields' values to GMT, and update $time_difference
    716     $time_difference = get_settings('time_difference');
    717 
    718     $server_time = gmmktime(date('H'), date('i'), date('s'), date('m'), date('d'), date('Y'));
    719     $w = date('Y-m-d H:i:s', time() + $time_difference*3600);
    720     $weblogger_time = gmmktime(substr($w,11,13), substr($w,14,16), substr($w,17,19), substr($w,5,7), substr($w,8,10), substr($w,0,4));
    721     $gmt_time = time();
    722 
    723     $diff_gmt_server = ($gmt_time - $server_time) / 3600;
    724     $diff_weblogger_server = ($weblogger_time - $server_time) / 3600;
    725     $diff_gmt_weblogger = $diff_gmt_server - $diff_weblogger_server;
    726 
    727     if (strval(current_time('timestamp') - $time_difference*3600) != gmdate('Y-m-d H:i:s', time())) {
    728 
    729         $new_time_difference = -$diff_gmt_weblogger;
    730 
    731         $add_hours = intval($diff_gmt_weblogger);
    732         $add_minutes = intval(60 * ($diff_gmt_weblogger - $add_hours));
    733 
    734         #the queries are simple
    735         $wpdb->query("UPDATE $tableposts SET post_date = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
    736         $wpdb->query("UPDATE $tableposts SET post_modified = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE) WHERE post_modified != '0000-00-00 00:00:00'");
    737         $wpdb->query("UPDATE $tablecomments SET comment_date = DATE_ADD(comment_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
    738         $wpdb->query("UPDATE $tableusers SET dateYMDhour = DATE_ADD(dateYMDhour, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
    739 
    740         #and then we update time_difference to use the new value
    741         $wpdb->query("UPDATE $tableoptions SET option_value = '$new_time_difference' WHERE option_name = 'time_difference'");
    742 
    743     } else {
    744 
    745         #if the times are already stored as GMT, we shouldn't have anything to do
    746         #except set time_difference to zero
    747         $wpdb->query("UPDATE $tableoptions SET option_value = '0' WHERE option_name = 'time_difference'");
    748 
    749     }
    750 
     715    // Convert all datetime fields' values to GMT, add a gmt_offset option
     716    if (!get_settings('gmt_offset')) {
     717        // echo '1';
     718        $all_options = get_alloptions();
     719        $time_difference = $all_options->time_difference;
     720
     721        $server_time = time()+date('Z');
     722        $weblogger_time = $server_time + $time_difference*3600;
     723        $gmt_time = time();
     724
     725        $diff_gmt_server = ($gmt_time - $server_time) / 3600;
     726        $diff_weblogger_server = ($weblogger_time - $server_time) / 3600;
     727        $diff_gmt_weblogger = $diff_gmt_server - $diff_weblogger_server;
     728
     729        if ($diff_gmt_weblogger != 0) {
     730            //echo '<br>2: ';
     731            $gmt_offset = -$diff_gmt_weblogger;
     732
     733            $add_hours = intval($diff_gmt_weblogger);
     734            $add_minutes = intval(60 * ($diff_gmt_weblogger - $add_hours));
     735            // echo $add_hours.':'.$add_minutes;
     736           
     737            // Add or substract time to all dates, to get GMT dates
     738            $wpdb->query("UPDATE $tableposts SET post_date = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
     739            $wpdb->query("UPDATE $tableposts SET post_modified = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE) WHERE post_modified != '0000-00-00 00:00:00'");
     740            $wpdb->query("UPDATE $tablecomments SET comment_date = DATE_ADD(comment_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
     741            $wpdb->query("UPDATE $tableusers SET dateYMDhour = DATE_ADD(dateYMDhour, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
     742
     743
     744        } else {
     745            //echo '3';
     746            $gmt_offset = 0;
     747        }
     748
     749        // Add gmt_field option, with value $gmt_offset
     750        if(!$wpdb->get_var("SELECT * FROM $tableoptions WHERE option_name = 'gmt_offset'")) {
     751            // echo "<br>4: $gmt_offset";
     752            $wpdb->query("INSERT INTO $tableoptions (option_id, option_name, option_type, option_value, option_description, option_admin_level) VALUES (94, 'gmt_offset', 8, $gmt_offset, 'The difference in hours between GMT and your timezone', 8)");
     753        }
     754
     755    }
    751756}
    752757
Note: See TracChangeset for help on using the changeset viewer.