aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rwxr-xr-xinclude/items.php9
-rw-r--r--include/poller.php10
2 files changed, 19 insertions, 0 deletions
diff --git a/include/items.php b/include/items.php
index 9abc2e330..ca8cbdfc0 100755
--- a/include/items.php
+++ b/include/items.php
@@ -1486,6 +1486,15 @@ function item_store($arr,$force_parent = false) {
$arr['item_flags'] = $arr['item_flags'] | ITEM_UNSEEN;
+
+ // handle time travelers
+ // Allow a bit of fudge in case somebody just has a slightly slow/fast clock
+
+ $d1 = new DateTime('now +10 minutes');
+ $d2 = new DateTime($arr['created']);
+ if($d2 > $d1)
+ $arr['item_restrict'] = $arr['item_restrict'] | ITEM_DELAYED_PUBLISH;
+
$arr['llink'] = z_root() . '/display/' . $arr['mid'];
if(! $arr['plink'])
diff --git a/include/poller.php b/include/poller.php
index 33e882735..43c7b497b 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -38,6 +38,16 @@ function poller_run($argv, $argc){
intval(ACCOUNT_EXPIRED)
);
+ // publish any applicable items that were set to be published in the future
+ // (time travel posts)
+
+ q("update item set item_restrict = ( item_restrict ^ %d )
+ where ( item_restrict & %d ) and created <= UTC_TIMESTAMP() ",
+ intval(ITEM_DELAYED_PUBLISH),
+ intval(ITEM_DELAYED_PUBLISH)
+ );
+
+
$abandon_days = intval(get_config('system','account_abandon_days'));
if($abandon_days < 1)
$abandon_days = 0;