Jump to content

Status updates should be (un)followable


Colonel_mortis

Recommended Posts

Currently, if someone comments on a status update, you receive a notification iff (if and only if - there is no way to receive notifications without meeting one of the criteria, and no way to not receive notifications if you do) you posted the status update originally, the status update was posted on your profile, or you have previously replied to that status update. If you are tagged in the comment, you will receive two notifications - one for the comment and one for the tag. If two people reply to the status update, you will receive two notifications, unlike how the rest of the site works (where comment notifications are collapsed together into "A, B and 3 others").

A system that would make a lot more sense is:

  • Status updates can be followed and unfollowed, like all other content on the site. I would suggest making this a button inline with time/options/report (probably between time and options) that is fa-bell-o when not following, and fa-bell when following, to make it more inline than following elsewhere on the site. When you click it, it should open the follow popup like following elsewhere.
  • By default, the person who posted the status, and the person who's profile it was posted on, should follow it (ideally they should be able to opt out of that in notification settings, but ¯\_(ツ)_/¯). It might also make sense that the "Notify me of replies" checkbox when posting comments is checked by default.
  • When multiple people have replied to a status update, those notifications should be combined together to just say "A, B and 3 others replied to a status update by Z".

This is one of the most common (if not the single most common) suggestion/bug report that I see on my site, and I would really appreciate it if it was changed.

Implementing it is not particularly complicated - the changes that would be needed are:

  • Add "implements \IPS\Content\Followable" to Statuses\Status
  • Remove the sendNotifications code from Statuses\Reply (you can just rely on the parent)
  • Add the following to Statuses\Status::processAfterCreate:
    $save = array(
    			'follow_id' => md5( 'core'. ';' . 'status' . ';' . $this->id . ';' . \IPS\Member::loggedIn()->member_id ),
    			'follow_app' => 'core',
    			'follow_area' => 'status',
    			'follow_rel_id' => $this->id,
    			'follow_member_id' => \IPS\Member::loggedIn()->member_id,
    			'follow_is_anon' => 0,
    			'follow_added' => time() + 1, // Make sure streams show follows after content is created
    			'follow_notify_do' => 1,
    			'follow_notify_meta' => '',
    			'follow_notify_freq' => 'immediate',
    			'follow_notify_sent' => 0,
    			'follow_visible' => 1
    		);
    		
    		\IPS\Db::i()->insert( 'core_follow', $save );
    		
    		if ($this->member_id != \IPS\Member::loggedIn()->member_id) {
    			$save = array(
    				'follow_id' => md5( 'core'. ';' . 'status' . ';' . $this->id . ';' . $this->member_id ),
    				'follow_app' => 'core',
    				'follow_area' => 'status',
    				'follow_rel_id' => $this->id,
    				'follow_member_id' => $this->member_id,
    				'follow_is_anon' => 0,
    				'follow_added' => time() + 1, // Make sure streams show follows after content is created
    				'follow_notify_do' => 1,
    				'follow_notify_meta' => '',
    				'follow_notify_freq' => 'immediate',
    				'follow_notify_sent' => 0,
    				'follow_visible' => 1
    			);
    			
    			\IPS\Db::i()->insert( 'core_follow', $save );
    		}

     

  • Implement createNotification in Statuses\Reply to customise the notification text

  • I think there was one other thing that has to be changed to prevent it from erroring, but it was easy enough to find by just looking at the error stack trace

  • The theme update to add the button

I am even happy to actually write the patch for you for free if you want, but due to time constraints the times that I can do it are fairly limited (either in the next couple of weeks or not until December). Please contact me by PM here or by email if you're interested in taking up my offer.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Upcoming Events

    No upcoming events found
×
×
  • Create New...