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).
Endless là một plugin thay thế phân trang thông thường bằng cách tiếp cận cuộn vô hạn. Nó được lấy cảm hứng từ Flarum's, ngoại trừ nó được đóng gói với một số sửa đổi làm cho nó hoàn toàn tương thích với các phiên bản MyBB mới nhất và nhằm mục đích cải thiện độ ổn định và khả năng sử dụng của nó.
Yêu cầu tối thiểu
PHP 5.4
MyBB 1.8.0
Những đặc điểm chính
Khả năng mở rộng
Endless được thiết kế để thay thế phân trang MyBB của cả chủ đề và diễn đàn bằng phân trang cuộn vô hạn, nhưng nó có khả năng chuyển đổi bất kỳ danh sách phân trang tùy chỉnh nào thành trải nghiệm cuộn vô tận. Ví dụ: trang chủ newsfeed của MyBBoost có hỗ trợ Endless chỉ với một vài dòng mã phía máy chủ.
Endless tự động phân tích cú pháp danh sách dữ liệu hợp lệ trong DOM và gửi các yêu cầu AJAX với một loạt các mục để lấy từ phần phụ trợ và nó hiển thị một trình giữ chỗ tạm thời trong khi dữ liệu đang được tìm nạp. Tất cả những gì bạn cần làm là viết ra một hàm chấp nhận và xử lý dữ liệu do Endless tạo ra, lấy các mục được yêu cầu và trả về chúng theo cách tiêu chuẩn. Hướng dẫn từng bước sẽ được viết ra sau giai đoạn beta.
Máy chà sàn
Trích dẫnĐiều tốt về phân trang thông thường là có thể nhanh chóng nhảy qua các trang, với cuộn vô hạn, tôi sẽ phải tiếp tục cuộn để có được câu trả lời cuối cùng. Cuộn vô hạn trông tốt hơn rất nhiều so với phân trang thông thường nhưng tôi nghĩ chức năng của nó sẽ trở nên tẻ nhạt, đó là trừ khi bạn đã thực hiện một giải pháp cho việc này.
Giải pháp đến trực tiếp từ nguồn cảm hứng của Flarum. Endless bao gồm một bộ lọc, một mục nhỏ có thể kéo được thêm tự động bởi plugin mà bạn có thể sử dụng để nhanh chóng chuyển giữa các bài đăng và chủ đề trong thảo luận / diễn đàn hiện đang xem. Vị trí máy chà sàn được cập nhật tự động khi bạn cuộn, vì vậy bạn luôn biết những gì còn lại để đọc; Và bạn có thể kéo và thả máy lọc hoặc nhấp vào một điểm cụ thể bên trong nó để được khởi chạy trực tiếp đến phạm vi bài đăng bạn muốn xem.
Ở các giai đoạn hiện tại, bạn có thể chọn ẩn hoặc hiển thị máy chà sàn và đặt các điểm ngắt chủ đề/bài đăng, sau đó, nếu một diễn đàn / chủ đề vượt quá kích thước điểm ngắt, máy chà sàn sẽ được hiển thị. Bạn cũng có thể chọn ẩn trình lọc nếu một diễn đàn / chủ đề có lượng dữ liệu một trang.
Tự động phát hiện hoặc kích hoạt thủ công
Bạn có thể yêu cầu Endless tự động phát hiện các mục cuộn và hiển thị của người dùng hoặc bạn có thể thiết lập các nút thủ công mà người dùng sẽ cần nhấn để tải thêm các bài đăng/chủ đề, theo cả hướng lên và xuống. Tính năng này hiện đang được mã hóa cứng. Nó sẽ được tích hợp vào hệ thống cài đặt của MyBB trong phiên bản beta 2.
Cài đặt
Tải lên các tệp duy trì cùng cấu trúc thư mục mà chúng được biên dịch và nhấp vào nút Cài đặt & kích hoạt trong danh sách plugin của bảng của bạn.
Endless yêu cầu 2 lớp CSS để hoạt động bình thường:
chủ đề đến mọi chủ đề (forumdisplay_thread);
đăng vào mọi bài đăng (postbit/postbit_classic).
Đảm bảo bạn có các lớp đó trong các mẫu của chủ đề, nếu không nó sẽ không hoạt động.
Hiển thị tháng và năm trong máy chà sàn
Máy chà sàn có thể phát hiện dòng ngày của mục hiện đang hiển thị và hiển thị ngày "tháng, năm" được định dạng khi bạn cuộn, vì vậy bạn biết dòng thời gian gần đúng về những gì bạn đang đọc. Tuy nhiên, Endless cần một dấu thời gian để xử lý nó; Bạn phải thêm nó theo cách thủ công vào mẫu của mình.
forumdisplay_thread: thêm data-time="{$thread['dateline']}" vào phần tử tr.thread;
postbit hoặc postbit_classic: thêm data-time="{$post['dateline']}" vào phần tử div.post.
Cài đặt
Endless thêm 4 cài đặt để điều chỉnh máy chà sàn như đã giải thích ở trên.
Mẫu và biểu định kiểu
Endless thêm một tệp CSS có tên endless.css vào mọi chủ đề trên bảng của bạn. Bạn có thể tùy chỉnh giao diện của trình lọc và trình giữ chỗ bằng cách chỉnh sửa các quy tắc CSS của stylesheet và 3 mẫu được thêm vào bởi Endless được gọi là endless_placeholder_post, endless_placeholder_thread và endless_scrubber. {totalCount} và {colspan} được thay thế bằng Endless với các giá trị tương ứng (tổng số vật phẩm và colspan để phù hợp với sự thay đổi của chủ đề mặc định của MyBB trong forumdisplay, do các mod có thêm một cột với hộp kiểm).