plugin hook for update_unseen

This commit is contained in:
zotlabs 2017-08-01 22:25:55 -07:00
parent 01526a9a79
commit 9359f9fe4d
5 changed files with 38 additions and 13 deletions

View File

@ -358,9 +358,13 @@ class Channel extends \Zotlabs\Web\Controller {
} }
if($is_owner && $update_unseen) { if($is_owner && $update_unseen) {
$r = q("UPDATE item SET item_unseen = 0 where item_unseen = 1 and item_wall = 1 AND uid = %d $update_unseen", $x = [ 'channel_id' => local_channel(), 'update' => 'unset' ];
intval(local_channel()) call_hooks('update_unseen',$x);
); if($x['update'] === 'unset' || intval($x['update'])) {
$r = q("UPDATE item SET item_unseen = 0 where item_unseen = 1 and item_wall = 1 AND uid = %d $update_unseen",
intval(local_channel())
);
}
} }

View File

@ -545,10 +545,15 @@ class Network extends \Zotlabs\Web\Controller {
} }
} }
if(($update_unseen) && (! $firehose)) if(($update_unseen) && (! $firehose)) {
$r = q("UPDATE item SET item_unseen = 0 WHERE item_unseen = 1 AND uid = %d $update_unseen ", $x = [ 'channel_id' => local_channel(), 'update' => 'unset' ];
intval(local_channel()) call_hooks('update_unseen',$x);
); if($x['update'] === 'unset' || intval($x['update'])) {
$r = q("UPDATE item SET item_unseen = 0 WHERE item_unseen = 1 AND uid = %d $update_unseen ",
intval(local_channel())
);
}
}
$mode = (($nouveau) ? 'network-new' : 'network'); $mode = (($nouveau) ? 'network-new' : 'network');

View File

@ -15,12 +15,16 @@ class Notify extends \Zotlabs\Web\Controller {
intval(local_channel()) intval(local_channel())
); );
if($r) { if($r) {
q("update notify set seen = 1 where (( parent != '' and parent = '%s' and otype = '%s' ) or link = '%s' ) and uid = %d", $x = [ 'channel_id' => local_channel(), 'update' => 'unset' ];
dbesc($r[0]['parent']), call_hooks('update_unseen',$x);
dbesc($r[0]['otype']), if($x['update'] === 'unset' || intval($x['update'])) {
dbesc($r[0]['link']), q("update notify set seen = 1 where (( parent != '' and parent = '%s' and otype = '%s' ) or link = '%s' ) and uid = %d",
intval(local_channel()) dbesc($r[0]['parent']),
); dbesc($r[0]['otype']),
dbesc($r[0]['link']),
intval(local_channel())
);
}
goaway($r[0]['link']); goaway($r[0]['link']);
} }
goaway(z_root()); goaway(z_root());

View File

@ -0,0 +1,9 @@
[h3]update_unseen[/h3]
Called prior to automatically marking items 'seen'; allowing a plugin the choice to not perform this action.
hook data
[ 'channel_id' => local_channel(), 'update' => 'unset' ];
If 'update' is set to 0 or false on return, the update operation is not performed.

View File

@ -572,6 +572,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/tagged]tagged[/zrl] [zrl=[baseurl]/help/hook/tagged]tagged[/zrl]
Called when a delivery is processed which results in you being tagged Called when a delivery is processed which results in you being tagged
[zrl=[baseurl]/help/hook/update_unseen]update_unseen[/zrl]
Called prior to automatically marking items seen which were loaded in the browser
[zrl=[baseurl]/help/hook/validate_channelname]validate_channelname[/zrl] [zrl=[baseurl]/help/hook/validate_channelname]validate_channelname[/zrl]
Used to validate the names used by a channel Used to validate the names used by a channel