summaryrefslogtreecommitdiffstats
path: root/wp-inst/wp-includes/classes.php
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-11-07 09:22:04 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-11-07 09:22:04 +0000
commit2deb7ed927ba4f38c7920e1d0fb82a85edc031fd (patch)
tree6e3f9b353a79a10e67602b88be98a274bcc8dfe0 /wp-inst/wp-includes/classes.php
parent99532e55fc2d3de5c265bc36976664d1eedbe2ea (diff)
downloadwordpress-mu-2deb7ed927ba4f38c7920e1d0fb82a85edc031fd.tar.gz
wordpress-mu-2deb7ed927ba4f38c7920e1d0fb82a85edc031fd.tar.xz
wordpress-mu-2deb7ed927ba4f38c7920e1d0fb82a85edc031fd.zip
Massive WP Merge
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@417 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-inst/wp-includes/classes.php')
-rw-r--r--wp-inst/wp-includes/classes.php19
1 files changed, 16 insertions, 3 deletions
diff --git a/wp-inst/wp-includes/classes.php b/wp-inst/wp-includes/classes.php
index cb52017..2bcef47 100644
--- a/wp-inst/wp-includes/classes.php
+++ b/wp-inst/wp-includes/classes.php
@@ -13,6 +13,7 @@ class WP_Query {
var $post;
var $is_single = false;
+ var $is_preview = false;
var $is_page = false;
var $is_archive = false;
var $is_date = false;
@@ -534,8 +535,10 @@ class WP_Query {
}
$now = gmdate('Y-m-d H:i:59');
-
- if ($pagenow != 'post.php' && $pagenow != 'edit.php') {
+
+ //only select past-dated posts, except if a logged in user is viewing a single: then, if they
+ //can edit the post, we let them through
+ if ($pagenow != 'post.php' && $pagenow != 'edit.php' && !($this->is_single && $user_ID)) {
$where .= " AND post_date_gmt <= '$now'";
$distinct = 'DISTINCT';
}
@@ -609,13 +612,23 @@ class WP_Query {
} else {
if ('draft' == $status) {
// User must have edit permissions on the draft to preview.
- if (! user_can_edit_post($user_ID, $this->posts[0]->ID))
+ if (! user_can_edit_post($user_ID, $this->posts[0]->ID)) {
$this->posts = array();
+ } else {
+ $this->is_preview = true;
+ }
} elseif ('private' == $status) {
if ($this->posts[0]->post_author != $user_ID)
$this->posts = array();
}
}
+ } else {
+ if (mysql2date('U', $this->posts[0]->post_date) > mysql2date('U', $now)) { //it's future dated
+ $this->is_preview = true;
+ if (!current_user_can('edit_post', $this->posts[0]->ID)) {
+ $this->posts = array ( );
+ }
+ }
}
}