Is pagination impossible or just hard?

I made the switch to Discourse recently and my community is torn on whether they like the infinite scroll or not. Some users like it, some don’t care, some treat it like an existential threat to the community. Based on other discussions I read here it sounds like it’s a common point of contention.

I understand that the developers of this software have no intention of providing pagination as an option. I can respect that. At this point, I’ve written a few plugins and layouts and looked though a bit of the code in the core github so I have a basic familiarity with the software. I’m just wondering how hard it would be to write a plugin for pagination should my community continue to resist? Is it likely that I will have to rewrite a lot of the basic core ruby code? Is it something that can be placed on top of all the existing code that could run seamlessly? Is the database structure really poorly designed for querying in a paginated way?

Just wanted to get a sense of the feasibility of undertaking this task from the people who are most familiar with the code.

Dev is not my strong suit, but I think there are pages already if you can make use of them?

Eg. https://meta.discourse.org/t/introducing-discourse-chat-beta/210734/?page=6

2 Likes

I think the main issue you’d have is the constant burden of maintaining a plugin that very regularly broke as you’d have to override a lot of the UI for which only minor changes in core might break.

The issue is unlikely to be technical, almost any one time customisation is possible, more like practical, economic.

If you are still keen: give it a try and let me know if I’m wrong!

Alternatively why not take the easier route of using a forum that is page based, plenty of them?

3 Likes

You mean the implemention of the chat uses pages? Sorry, I dont think I am following.

No, I think I borked it. :slight_smile:

You can append ?page=2 under certain circumstances, but it appears I have forgotten precisely how that works. :slight_smile:

1 Like

AFAIK that parameter works only for pages we serve to crawlers and old, unsupported browsers.

4 Likes

These are the same users are upset that they can’t use their Commodore 64s. Tell them that you are very sorry and that you’re working hard on the problem and do nothing. Infinite scrolling has been industry standard for at least a decade.

Or, you might try to get them to say just why they think they want it (so that they can link to a particular place in the topic, perhaps?) and demonstrate that you can now link to a specific post and not “see the 6th post on this page”. But they’ll still be very unhappy that it’s not exactly the way it was a decade ago.

2 Likes

I think your point here is very strong. Ultimately this plugin would force us to either never update or would be a task that never ends.

As @pfaffman implies, the communication-based solution is probably easier than a technical one.

I have a feeling most of these users will just get used to it. Just wanted to explore different options if they don’t.

I’m still open to more feedback on how (un)feasible this task would from anyone else

2 Likes

The development would cost somewhere upwards of $10k, possibly as much as $50k. Perhaps you could ask your community to find those funds? Oh and give you $5k a year for maintenance … turning a free open-source project into a costly nightmare.

I don’t see the benefit of “paging” much given you can link directly to a Category, Topic or Post?

5 Likes

I do think a “hybrid” component may be somewhat practical.

Every N posts in a topic you insert a “paginator”

Post 1
Post 2 
...
Post 15

[*Page 1*] [Page 2] [Page 3] [Page 4]

Post 16

... 

De-infinite scrolling Discourse is not a practical exercise, but a component that makes a “hybrid” paginator (even with topic list changes) is probably in the 2k-5k range.

1 Like

Sam, your message makes me remind Natural breakpoints or "chapters" for long topics?; I’d be very curious to see a result of something like this. And it could be a good alternative for those who miss pagination. They often seem to miss the pagination because pages are breakpoints and nothing more.

3 Likes