Endless

by Ben 2 Stars 82 Downloads

Endless is a plugin which replaces normal pagination with an infinite scrolling approach.

Project Details

Endless is a plugin which replaces normal pagination with an infinite scrolling approach. It is heavily inspired by Flarum's, except it is packed with some modifications which make it completely compatible with the latest MyBB versions and aim to improve its stability and usability.

Minimum requirements
PHP 5.4
MyBB 1.8.0

Main features
Extensibility
Endless is designed to replace MyBB pagination of both threads and forums with an infinite scrolling pagination, but it is capable of transforming whatever custom paginated list into an endless scrolling experience. For example, MyBBoost's newsfeed homepage has Endless support with just a few lines of server-side code.

Endless automatically parses lists of valid data in the DOM and sends AJAX requests with a range of items to get from the backend, and it displays a temporary placeholder while the data is being fetched. All you need to do is write down a function which accepts and handles Endless-generated data, gets the requested items and returns them in a standardized fashion. A step-by-step tutorial will be written down after the beta period.

Scrubber-based

QuoteWhat's good about regular pagination is being able to quickly jump through the pages, with infinite scroll I'd have to keep scrolling to get to the last reply. Infinite scrolling looks a lot better than regular pagination but I think its functionality will get tedious, that's unless you've made a workaround for this.


The workaround comes directly from Flarum's inspiration. Endless includes a scrubber, a small draggable item added automatically by the plugin which you can use to quickly jump between posts and threads in the currently viewed discussion/forum. The scrubber position is updated automatically as you scroll, so you always know what's left to read; and you can both drag and drop the scrubber or click a specific point within it to be launched directly to the range of posts you wish to see.

At the current stages, you can choose to hide or display the scrubber and set threads/posts breakpoints after which, if a forum/thread exceed the breakpoint in size, the scrubber is displayed. You can also choose to hide the scrubber if a forum/thread has a single-page amount of data.

Automatic detection or manual triggering
You can tell Endless to automatically detect user's scrolling and show items, or you can set up manual buttons users will need to push in order to load further posts/threads, in both upwards and downwards direction. This feature is currently hardcoded. It will be integrated into MyBB's settings system in beta 2.

Installation
Upload the files maintaining the same folder structure they are compiled to and clicking the button Install & activate within your board's plugin list.

Endless requires 2 CSS classes to work properly:

thread to every thread (forumdisplay_thread);
post to every post (postbit/postbit_classic).

Ensure you have those classes in your theme’s templates, otherwise it will not work.

Display month and year in the scrubber
The scrubber can detect the currently-visible item's dateline and display a formatted "month year" date as you scroll, so you know an approximate timeline of what you are currently reading. Endless needs a timestamp to process it though; you must add it manually to your templates.

forumdisplay_thread: add data-time="{$thread['dateline']}" to the tr.thread element;
postbit or postbit_classic: add data-time="{$post['dateline']}" to the div.post element.

Settings
Endless adds 4 settings to tune the scrubber as explained above.

Templates and stylesheets
Endless adds a CSS file named endless.css to every theme of your board. You can customize the scrubber's and placeholders' appearance by editing the stylesheet's CSS rules and the 3 templates added by Endless called endless_placeholder_post, endless_placeholder_thread and endless_scrubber. {totalCount} and {colspan} are replaced by Endless with the respective values (total count of items and colspan to match the variability of MyBB's default theme within forumdisplay, due to mods having an extra column with a checkbox).
Author
Ben
Collaborators
None
Version
Beta 1
Submitted
2021-02-17, 09:25 PM
Last Updated
2021-02-17, 09:25 PM
Bug Tracking
Disabled
MyBB Versions
1.8.x