Skip to:

Opened 12 years ago

Last modified 8 years ago

#1937 new enhancement

Read/unread posts

Reported by: sadr's profile Sadr Owned by:
Milestone: Future Release Priority: low
Severity: normal Version: 2.1.2
Component: Component - Topics Keywords:
Cc: pippin@…


I'm essentially talking about mirroring the functionality of the BP Unread Posts plugin.

There's plenty of additional features to consider for read/unread, for instance filters to show only unread posts, or only unread posts that you've posted in and so forth. But such extra features are for plugins or future releases imo.

Change History (6)

#1 @johnjamesjacoby
12 years ago

  • Component changed from General to Topics
  • Milestone changed from Awaiting Review to Future Release

Technically, this is a duplicate of #86. I think this would be great to have, but I'd love to see a solid and lightweight plugin implementation of it first.

Moving to Future Release, so we can refer back to this later.

#2 @Sadr
12 years ago

  • Priority changed from normal to low
  • Version set to 2.1.2

The "bbPress - Mark as read" plugin solves this, and I believe it follows all the recommended practices. (Something like a "has-plugin" workflow keyword would be handy I think).

Also solves #86

#3 @mordauk
11 years ago

  • Cc pippin@… added

The Mark as Read plugin I wrote isn't great because it will really only work well for smaller sites. I'd not recommend it on really large forums due to the data being stored persistently.

#4 @Sadr
11 years ago

Maybe one of these two can be used as reference then: (Have been using it on our own site without issues for several months now)

#5 @nirgalo
10 years ago

Hi, I would like to recap a few things on the read/unread feature regarding usage and performance:

  1. in terms of usage, this feature may be considered as a 'must have' when considering a forum feature set generally, by comparison to what people are used to with forums found on the internet. I am mentioning this point to remind we are talking here about a feature of a certain importance (from the user's perspective) and not a minor one.
  1. in terms of what happens when no core functionality is present to handle this feature (currently the case in bbPress): plugins pop up and they are all incompatible with each other (and feature wise they are often incomplete).
  1. in terms of performance, this can be a killer, this needs to be carefully assessed.
  1. we need to consider the core features (i.e. API + DB storage or read state) separately from the UI feature (representation of read/unread states, using filters or not, buttons to mark read/unread etc.).

Here is my take on 3. (performance) :

  • as the feature has a performance impact, it would need to be proposed as optional (off by default).
  • we need to store either read flag or unread flag associated to user/topic. The most natural way is to store a read flag. To be more specific, we probably need to store a last_visited flag such as the bbp-unread-posts plugin is doing, so we can mark a previously read message as unread without deleting a record, by setting its last_visited date to less than the post_last_activity flag (or to 0 simply). So we'll have one DB record per user/topic/last_visited state. Since this obviously can grow with the user base and number of read messages, I would suggest the following:
    • do not use post_meta or user_meta to store the read flag, use a separate table, bbPress specific (need to design this more precisely).
    • if we wish to use the post_meta, then we would need to make a new DB index on the user, as a performance issue there is that a single post meta will have lots of users associated. However we need to dig into the way this table is maintained in Wordpress I do not know much about this yet.
    • in the admin options, let the admin do maintenance and clear the read flag of topics older than n months (say 12 months by default).

If we do what is mentioned above, we have contained the performance issue by:

  • making the feature optional we don't bother with potential performance concerns those who don't need the feature.
  • using a separate table to handle read states so we do not clutter other tables whose usage is shared by other Wordpress functionality
  • we have provided a maintenance tool to reduce the load with low penalty to the usage (delete unread states of older messages). Usage of this maintenance tool is also optional.

Now about 4., distinguish core features from UI features:

  • if bbPress only implements the core features, that is DB storage and API to access read/unread state + admin tool to purge read state, we already have a win as plugins can align to this and will all be compatible with each other.
  • bbPress could minimally implement some UI features, like showing an unread icon in messages list, marking a post as read/unread etc.. but this can come after the core features, or not come at all and let the plugins handle this.

I would suggest to raise the priority of this ticket to 'normal'.

Last edited 10 years ago by nirgalo (previous) (diff)

#6 @darrenllr@…
8 years ago

Hey Guys -

Any update on this?

Seems like 'core' functionality to me for forum software (it would - that's what I've been looking for ;-)

I just had a look through plugins for unread/new topics, and they're all way out of date / not being developed any more.

So there may be an extra tick in the box to provide this as an option.

It does not seem to be well catered for, or maintained by plugin options.

Forum's starting to look awesome - thanks ;-)


Note: See TracTickets for help on using tickets.