Merge pull request #8083 from annando/direct-comment
Notifications: Now declare direct thread answers as replies
This commit is contained in:
		
				commit
				
					
						a5895f8623
					
				
			
		
					 3 changed files with 24 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -2166,7 +2166,8 @@ function api_statuses_mentions($type)
 | 
			
		|||
			AND `user-item`.`iid` > ?";
 | 
			
		||||
	$condition = [GRAVITY_PARENT, GRAVITY_COMMENT, api_user(),
 | 
			
		||||
		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];
 | 
			
		||||
 | 
			
		||||
	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_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) {
 | 
			
		||||
		$params['type'] = NOTIFY_SHARE;
 | 
			
		||||
		$params['verb'] = Activity::POST;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,6 +22,7 @@ class UserItem
 | 
			
		|||
	const NOTIF_DIRECT_COMMENT = 8;
 | 
			
		||||
	const NOTIF_COMMENT_PARTICIPATION = 16;
 | 
			
		||||
	const NOTIF_ACTIVITY_PARTICIPATION = 32;
 | 
			
		||||
	const NOTIF_DIRECT_THREAD_COMMENT = 64;
 | 
			
		||||
	const NOTIF_SHARED = 128;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
| 
						 | 
				
			
			@ -99,6 +100,10 @@ class UserItem
 | 
			
		|||
			$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)) {
 | 
			
		||||
			$notification_type = $notification_type | self::NOTIF_COMMENT_PARTICIPATION;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -259,6 +264,18 @@ class UserItem
 | 
			
		|||
		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
 | 
			
		||||
	 * @param array $item
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue