I’ve just got a new Discourse forum pretty much up and running, but have question from a member that I can’t figure out the solution to. The community is moving from another forum, and on that software you can get a url to a topic that will take you to the most recently read point, which people then often bookmark in their browser. I haven’t been able to spot how to do that in Discourse though, anyone have any ideas?
I’m afraid not. The url it takes you to when you click on a topic in the topic list, is a url specific to where you were last reading, not a url that says “take me to where I last was”. So if you bookmark that, and then view some more of the topic, and then come back to that bookmark, it’ll take you to the same place you went to originally, not where you most recently left off. I’m after a generic “where I last was for this topic” url that can be stored in the browser and will keep on working no matter how much of the topic gets read.
AFAIK, Discourse doesn’t store the last topic visited but does store the last visit timestamp for each topic (topic_users.last_visited_at) so it should be possible to find the latest topic visited and then display it. But this will require a plug-in or an external widget that calls the Discourse API.
The following material is just for completeness on this topic.
As already said, the closest to what you want is to use bookmarks:
Bookmark a topic. The bookmark will return you to the first post unless you have read the entire topic already in which case you will be at the last post. But the timeline can show a back button to allow you to return to last read post in that topic - see the far right of this screenshot:
As you pointed out, bookmarks have two failings for your purpose:
Bookmarks normally require user action to set them unless a plug-in or other software is used to create them.
Bookmarks always return to the specific topic (i.e. first post) or the specific post that was selected by the user. There is no option to have a bookmark that returns to a topic or post that is determined by software at the time the bookmark is accessed.
The URL you are talking about can always bring up the last post read because the forum software automatically stores that data. This is useful because we don’t always know when we will stop reading in the forum - it can be interrupted by system reboot, system user or application user logout or an unexpected crash.
Discourse doesn’t have an option to return to the last post viewed but I think that it would be a useful feature.
However, Discourse does have a feature that shows you which topics you viewed in your last visit even in Bookmarks so that helps to show you which topic you might have last looked at:
Thanks for that in-depth answer, really helpful of you, even if the end result is indeed that there’s currenty no way to do what we’d like
Indeed. Annoyingly I’ve never coded Ruby or I’d have a go myself. I’m guessing it might be too much work, since the topic lists figure out the what the last post read was in a topic and generate a relevant url, so you could have a new url, like t/topic-title/133114/latest that then redirects to the right place
Re the PS, hmm, I’ll take a look at it. The thing is that we have numerous topics that will go on for literally hundreds of posts, and you might not have looked at specific topics for a couple of weeks or more, and then want to take another look, and be able to go there directly from a browser bookmark.
Not exactly I don’t think. There’ll be lots of different topics people will be following. Within a specific category on the forum, there are dozens and dozens of long-term hundreds and hundreds of post topics, of which lots of people follow loads. And they obviously like to pop in, read a load of posts, but maybe not all the way to the end, then come back later to read some more. And some people like to browser-bookmark these
I think the bookmarks tab might be a reasonable alternative though, since you were indeed right, that view does indeed appear to take you to where you left off, and can be filtered by category as well.