Merge pull request #8083 from annando/direct-comment
Notifications: Now declare direct thread answers as replies
This commit is contained in:
commit
a5895f8623
|
@ -2166,7 +2166,8 @@ function api_statuses_mentions($type)
|
||||||
AND `user-item`.`iid` > ?";
|
AND `user-item`.`iid` > ?";
|
||||||
$condition = [GRAVITY_PARENT, GRAVITY_COMMENT, api_user(),
|
$condition = [GRAVITY_PARENT, GRAVITY_COMMENT, api_user(),
|
||||||
UserItem::NOTIF_EXPLICIT_TAGGED | UserItem::NOTIF_IMPLICIT_TAGGED |
|
UserItem::NOTIF_EXPLICIT_TAGGED | UserItem::NOTIF_IMPLICIT_TAGGED |
|
||||||
UserItem::NOTIF_THREAD_COMMENT | UserItem::NOTIF_DIRECT_COMMENT,
|
UserItem::NOTIF_THREAD_COMMENT | UserItem::NOTIF_DIRECT_COMMENT |
|
||||||
|
UserItem::NOTIF_DIRECT_THREAD_COMMENT,
|
||||||
$since_id];
|
$since_id];
|
||||||
|
|
||||||
if ($max_id > 0) {
|
if ($max_id > 0) {
|
||||||
|
|
|
@ -704,6 +704,11 @@ function check_item_notification($itemid, $uid, $notification_type) {
|
||||||
$params['activity']['thread_comment'] = ($notification_type & UserItem::NOTIF_COMMENT_PARTICIPATION);
|
$params['activity']['thread_comment'] = ($notification_type & UserItem::NOTIF_COMMENT_PARTICIPATION);
|
||||||
$params['activity']['thread_activity'] = ($notification_type & UserItem::NOTIF_ACTIVITY_PARTICIPATION);
|
$params['activity']['thread_activity'] = ($notification_type & UserItem::NOTIF_ACTIVITY_PARTICIPATION);
|
||||||
|
|
||||||
|
// Tagging a user in a direct post (first comment level) means a direct comment
|
||||||
|
if ($params['activity']['explicit_tagged'] && ($notification_type & UserItem::NOTIF_DIRECT_THREAD_COMMENT)) {
|
||||||
|
$params['activity']['origin_comment'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
if ($notification_type & UserItem::NOTIF_SHARED) {
|
if ($notification_type & UserItem::NOTIF_SHARED) {
|
||||||
$params['type'] = NOTIFY_SHARE;
|
$params['type'] = NOTIFY_SHARE;
|
||||||
$params['verb'] = Activity::POST;
|
$params['verb'] = Activity::POST;
|
||||||
|
|
|
@ -22,6 +22,7 @@ class UserItem
|
||||||
const NOTIF_DIRECT_COMMENT = 8;
|
const NOTIF_DIRECT_COMMENT = 8;
|
||||||
const NOTIF_COMMENT_PARTICIPATION = 16;
|
const NOTIF_COMMENT_PARTICIPATION = 16;
|
||||||
const NOTIF_ACTIVITY_PARTICIPATION = 32;
|
const NOTIF_ACTIVITY_PARTICIPATION = 32;
|
||||||
|
const NOTIF_DIRECT_THREAD_COMMENT = 64;
|
||||||
const NOTIF_SHARED = 128;
|
const NOTIF_SHARED = 128;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -99,6 +100,10 @@ class UserItem
|
||||||
$notification_type = $notification_type | self::NOTIF_DIRECT_COMMENT;
|
$notification_type = $notification_type | self::NOTIF_DIRECT_COMMENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (self::checkDirectCommentedThread($item, $contacts)) {
|
||||||
|
$notification_type = $notification_type | self::NOTIF_DIRECT_THREAD_COMMENT;
|
||||||
|
}
|
||||||
|
|
||||||
if (self::checkCommentedParticipation($item, $contacts)) {
|
if (self::checkCommentedParticipation($item, $contacts)) {
|
||||||
$notification_type = $notification_type | self::NOTIF_COMMENT_PARTICIPATION;
|
$notification_type = $notification_type | self::NOTIF_COMMENT_PARTICIPATION;
|
||||||
}
|
}
|
||||||
|
@ -259,6 +264,18 @@ class UserItem
|
||||||
return Item::exists($condition);
|
return Item::exists($condition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check for a direct comment to the starting post of the given user
|
||||||
|
* @param array $item
|
||||||
|
* @param array $contacts Array of contact IDs
|
||||||
|
* @return bool The user had created this thread
|
||||||
|
*/
|
||||||
|
private static function checkDirectCommentedThread(array $item, array $contacts)
|
||||||
|
{
|
||||||
|
$condition = ['uri' => $item['thr-parent'], 'uid' => $item['uid'], 'author-id' => $contacts, 'deleted' => false, 'gravity' => GRAVITY_PARENT];
|
||||||
|
return Item::exists($condition);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the user had commented in this thread
|
* Check if the user had commented in this thread
|
||||||
* @param array $item
|
* @param array $item
|
||||||
|
|
Loading…
Reference in a new issue