Make WordPress Core

Ticket #1795: view-future-dated.diff

File view-future-dated.diff, 1.9 KB (added by davidhouse, 19 years ago)
  • wp-includes/classes.php

     
    1313        var $post;
    1414
    1515        var $is_single = false;
     16        var $is_preview = false;
    1617        var $is_page = false;
    1718        var $is_archive = false;
    1819        var $is_date = false;
     
    534535                }
    535536
    536537                $now = gmdate('Y-m-d H:i:59');
    537 
    538                 if ($pagenow != 'post.php' && $pagenow != 'edit.php') {
     538               
     539                //allow authors to preview their own future-dated posts
     540                if ($this->is_single && $user_ID) {
     541                        $where .= " AND ((post_date_gmt <= '$now') OR (post_date_gmt >= '$now' AND post_author = $user_ID))";
     542                        $distinct = 'DISTINCT';
     543                } elseif ($pagenow != 'post.php' && $pagenow != 'edit.php') {
    539544                        $where .= " AND post_date_gmt <= '$now'";
    540545                        $distinct = 'DISTINCT';
    541546                }
     
    609614                                } else {
    610615                                        if ('draft' == $status) {
    611616                                                // User must have edit permissions on the draft to preview.
    612                                                 if (! user_can_edit_post($user_ID, $this->posts[0]->ID))
     617                                                if (! user_can_edit_post($user_ID, $this->posts[0]->ID)) {
    613618                                                        $this->posts = array();
     619                                                } else {
     620                                                        $this->is_preview = true;
     621                                                }
    614622                                        } elseif ('private' == $status) {
    615623                                                if ($this->posts[0]->post_author != $user_ID)
    616624                                                        $this->posts = array();
    617625                                        }
    618626                                }
     627                        } else {
     628                                if (mysql2date('U', $this->posts[0]->post_date) > mysql2date('U', $now)) { //it's future dated
     629                                        $this->is_preview = true;
     630                                }
    619631                        }
    620632                }
    621633
  • wp-includes/functions.php

     
    13991399        return $wp_query->is_subpost;
    14001400}
    14011401
     1402function is_preview() {
     1403        global $wp_query;
     1404       
     1405        return $wp_query->is_preview;
     1406}
     1407
    14021408function is_archive () {
    14031409        global $wp_query;
    14041410