[VNXF] News là add-on quản lý tin tức và bài viết dành cho XenForo 2.3+. Cho phép chuyển đổi các chủ đề diễn đàn thành bài viết tin tức chuyên nghiệp, phân loại theo chuyên mục đa cấp, hỗ trợ nhiều kiểu hiển thị, tự động cuộn trang (Auto-loader) và hỗ trợ xuất bản RSS feed có định dạng giao diện đẹp mắt.
Features / Tính năng nổi bật
- Quản lý chuyên mục đa cấp (Hierarchical Categories):
- Cây danh mục tin tức cha - con không giới hạn cấp độ.
- Tự động tạo slug URL thân thiện với SEO (ví dụ:
/news/categories/kham-pha-viet-nam.3/). - Đường dẫn Breadcrumbs chuẩn xác và hiển thị danh mục con trong từng trang chuyên mục.
- Chuyển đổi bài viết từ chủ đề (Thread Promotion to Article):
- Dễ dàng quảng bá (promote) bất kỳ chủ đề nào trên diễn đàn thành bài viết tin tức trực tiếp từ giao diện chủ đề hoặc qua trang quản trị.
- Hỗ trợ gán một bài viết vào nhiều danh mục cùng lúc (
category_ids). - Tùy chỉnh ảnh đại diện bài viết (Thumbnail/Cover image), trích dẫn bài viết (Excerpt), ghim bài viết (Sticky), hoặc loại trừ bài viết khỏi trang chủ.
- Giao diện trang tin tức phong phú (Modern News Layouts):
- Nhiều phong cách hiển thị: Dạng thẻ (Card), danh sách (List), lưới (Grid).
- Thanh phân loại bài viết dạng Tab tiện lợi:
- Mới nhất (Latest): Sắp xếp theo ngày xuất bản và bài ghim.
- Nổi bật (Featured): Sắp xếp theo số lượt xem bài viết.
- Bình luận nhiều (Most commented): Sắp xếp theo số lượt phản hồi.
- Giới hạn thời gian lọc tin theo ngày cho các tab (Option
vnxfNewsTabTimeLimit). - Tự động tải thêm trang (Auto-loader / Infinite Scroll):
- Script AJAX thông minh tích hợp
IntersectionObservertự động nạp bài viết tiếp theo khi người dùng cuộn đến đáy trang. - Tùy chỉnh số trang cuộn tự động trước khi chuyển sang nút bấm "Xem thêm" (
vnxfNewsAutoLoadPages). - Cơ chế lọc bài viết trùng lặp (
skip_thread_ids) đảm bảo không bị lặp bài khi nạp dữ liệu động. - Tối ưu hiệu năng & Bộ nhớ đệm (Caching & Performance):
- Lưu cache nội dung bài viết và chuyên mục bằng hệ thống Cache của XenForo với thời gian sống TTL có thể điều chỉnh (
vnxfNewsCacheTtl). - Header HTTP Cache-Control tối ưu cho khách vãng lai (Guest).
- Hệ thống Widget linh hoạt (Widgets):
- Tin tức mới nhất (
vnxf_news_latest): Hiển thị danh sách các bài viết mới hoặc bài viết theo chuyên mục tại bất kỳ vị trí nào trên diễn đàn. - Danh mục tin tức (
vnxf_news_categories): Hiển thị cây danh mục tin tức ở thanh bên (Sidebar/Sidenav). - Công cụ chuyển đổi dữ liệu từ XenPorta (Migration CLI):
- Hỗ trợ lệnh CLI
php cmd.php vnxf-news:migrate-from-portagiúp chuyển đổi dữ liệu từ add-on XenPorta 2 sang VNXF News nhanh chóng và an toàn.
Requirements / Yêu cầu hệ thống
- XenForo: 2.3.0 trở lên.
- PHP: 8.0 trở lên (khuyên dùng PHP 8.2+).
- Bộ nhớ đệm (Tùy chọn): Redis hoặc Memcached để tối ưu hóa tính năng lưu cache bài viết.
Installation / Cài đặt
- Tải thư mục mã nguồn và đặt vào cây thư mục của diễn đàn:
- Thư mục add-on:
src/addons/VNXF/News/ - Thư mục JavaScript:
js/vnxf/news/ - Thư mục Stylesheet RSS:
styles/vnxf/news/
- Truy cập vào trang Quản trị diễn đàn: AdminCP > Add-ons.
- Tìm [VNXF] News và nhấn nút Install (Cài đặt).
- Hoặc thực hiện cài đặt qua dòng lệnh CLI: <br/> ``
bash <br/> php cmd.php xf-addon:install VNXF/News <br/>``
Configuration / Cấu hình
Truy cập AdminCP > Setup > Options > [VNXF] News:
- Tiêu đề trang tin tức (
vnxfNewsTitle): Tùy chỉnh tiêu đề hiển thị trên thanh trình duyệt của trang tin tức. - Số bài viết mỗi trang (
vnxfNewsPerPage): Số lượng bài viết hiển thị trên mỗi trang danh sách (mặc định: 12). - Kiểu hiển thị (
vnxfNewsListStyle): Chọn phong cách giao diện hiển thị mặc định (card,list,grid...). - Bật tự động tải trang (
vnxfNewsEnableAutoload): Bật hoặc tắt tính năng cuộn vô tận / tự nạp bài viết. - Số trang tự động nạp (
vnxfNewsAutoLoadPages): Số trang sẽ tự động nạp khi cuộn chuột trước khi yêu cầu bấm nút "Xem thêm". - Giới hạn thời gian các tab (
vnxfNewsTabTimeLimit): Số ngày tối đa để lọc các bài viết nổi bật và bình luận nhiều (0 là không giới hạn). - Thời gian lưu Cache (
vnxfNewsCacheTtl): Thời gian lưu bộ nhớ đệm bài viết tính bằng giây (ví dụ: 300s). - Nhóm quyền xem số lượt xem bài viết (
vnxfNewsViewCountGroups): Lựa chọn các nhóm thành viên được phép nhìn thấy số lượt đọc bài viết.
Permissions / Phân quyền
Truy cập AdminCP > Groups & permissions > User groups để cấu hình quyền hạn cho từng nhóm thành viên:
vnxfNews-editAnyArticle: Chỉnh sửa bất kỳ bài viết tin tức nào.vnxfNews-editOwnArticle: Chỉnh sửa bài viết tin tức do mình tạo.vnxfNews-manageCategory: Quản lý danh mục bài viết tin tức.vnxfNews-manageAnyReport: Quản lý báo cáo bài viết của mọi thành viên.vnxfNews-manageOwnReport: Quản lý báo cáo bài viết của chính mình.
User Guide / Hướng dẫn sử dụng
1. Tạo và quản lý chuyên mục tin tức (Categories)
- Đăng nhập vào AdminCP > điều hướng đến menu News > Categories (hoặc truy cập URL:
admin.php?news/categories/). - Nhấn nút Add Category (Thêm chuyên mục).
- Điền các thông tin:
- Category name (Tên chuyên mục): Ví dụ "Công nghệ", "Khám phá Việt Nam".
- Description (Mô tả): Đoạn văn ngắn giới thiệu về chuyên mục.
- Parent category (Chuyên mục cha): Chọn
(None)nếu là chuyên mục gốc, hoặc chọn chuyên mục cha để tạo cấu trúc danh mục đa cấp. - Display order (Thứ tự hiển thị): Số nguyên xác định vị trí xuất hiện (nhỏ hơn xếp trước).
- Bấm Save (Lưu). Hệ thống tự động tạo URL slug chuẩn SEO (ví dụ:
/news/categories/cong-nghe.1/).
2. Quảng bá chủ đề diễn đàn thành bài viết tin tức (Promoting Threads)
Cách 1: Thao tác nhanh trực tiếp từ giao diện chủ đề (Frontend)
- Mở bài viết / chủ đề diễn đàn mà bạn muốn đưa lên cổng tin tức.
- Trên thanh công cụ tác vụ chủ đề (hoặc menu ba chấm
...góc trên bài viết), nhấn nút "Quảng bá thành tin tức" (Promote to News). - Hộp thoại Popup xuất hiện, thiết lập các thông số:
- Tiêu đề tin tức (Article Title): Mặc định lấy từ tiêu đề chủ đề, bạn có thể biên tập lại cho ngắn gọn, hấp dẫn hơn.
- Tóm tắt (Excerpt): Nhập đoạn trích dẫn mô tả ngắn về nội dung bài viết (sẽ xuất hiện trên thẻ card và RSS).
- Ảnh đại diện (Cover/Thumbnail Image): Tải file ảnh từ máy tính hoặc dán URL hình ảnh đại diện.
- Chuyên mục chính (Primary Category): Chọn chuyên mục chính của bài viết.
- Chuyên mục bổ sung (Additional Categories): Chọn thêm một hoặc nhiều chuyên mục khác nếu bài viết thuộc nhiều lĩnh vực.
- Ghim bài (Sticky): Đánh dấu để bài viết luôn xuất hiện ở vị trí đầu tiên trên trang tin tức.
- Loại trừ khỏi trang chủ (Exclude from Home): Đánh dấu nếu chỉ muốn bài viết xuất hiện bên trong trang chuyên mục cụ thể mà không nằm ở trang chủ
/news/.
- Nhấn Save (Lưu) để hoàn tất.
Cách 2: Quản lý từ trang Quản trị (AdminCP)
- Truy cập AdminCP > News > Articles để xem toàn bộ danh sách các bài viết đã quảng bá, tìm kiếm, chỉnh sửa hoặc hạ cấp (demote) bài viết về lại chủ đề thông thường.
3. Cấu hình hiển thị trang tin tức ra Navigation / Trang chủ
- Thanh menu điều hướng (Public Navigation):
- Add-on đã tự động kích hoạt mục Tin tức dẫn đến đường dẫn
/news/. - Quản trị viên có thể thay đổi vị trí, đổi tên hoặc ẩn/hiện tại AdminCP > Setup > Public navigation > vnxfNews.
- Đặt làm trang chủ diễn đàn (Index Route):
- Nếu muốn biến diễn đàn thành Cổng tin tức (Portal) với trang chủ mặc định là tin tức:
- Vào AdminCP > Setup > Options > Basic options.
- Tại mục Index page route, nhập:
news/. - Nhấn Save (Lưu).
4. Thiết lập Widget Tin tức trên các trang khác
- Truy cập AdminCP > Appearance > Widgets > nhấn Add widget.
- Widget "Tin tức mới nhất" (
[VNXF] News: Latest news):
- Chọn vị trí hiển thị:
Forum list: Above nodes(Trên cùng danh sách diễn đàn).Forum overview: Top(Đầu trang tổng quan).Sidebar(Cột bên phải trang bài viết/diễn đàn).- Thiết lập số lượng bài viết cần hiển thị (
Limit). - Chọn chuyên mục cần lấy tin (hoặc để trống để lấy tất cả).
- Chọn kiểu hiển thị giao diện mong muốn (
Card,List,Grid).
- Widget "Danh mục tin tức" (
[VNXF] News: Categories):
- Thêm vào vị trí
vnxf_news_sidenavhoặcSidebarđể cung cấp menu danh mục dọc cho độc giả dễ dàng chuyển đổi qua lại giữa các chuyên mục tin tức.
5. Khai thác kênh xuất bản RSS Feeds
- Luồng RSS toàn trang:
https://your-domain.com/news/rss(hoặcindex.php?news/rss). - Luồng RSS theo từng chuyên mục:
https://your-domain.com/news/categories/{slug}.{id}/rss. - Nhờ tệp
styles/vnxf/news/rss-style.xsl, luồng RSS có thể mở trực tiếp trên trình duyệt hiện đại (Chrome, Edge, Firefox, Safari) để hiển thị giao diện bài đọc đẹp mắt hoặc tích hợp trực tiếp vào các ứng dụng đọc tin tự động (Feedly, Inoreader, Apple News...).
6. Hướng dẫn di chuyển dữ liệu từ XenPorta 2 (XenPorta Migration)
Nếu diễn đàn của bạn đang sử dụng add-on XenPorta 2 và muốn chuyển toàn bộ dữ liệu sang VNXF News:
- Đảm bảo add-on [VNXF] News đã được cài đặt.
- Mở cửa sổ dòng lệnh Terminal / SSH tại thư mục gốc của XenForo và thực hiện lệnh: <br/> ``
bash <br/> php cmd.php vnxf-news:migrate-from-porta <br/>`` - Quá trình di chuyển sẽ tự động:
- Quét toàn bộ danh mục của XenPorta và tái tạo sang danh mục VNXF News.
- Chuyển đổi dữ liệu bài viết đã quảng bá, ảnh đại diện đính kèm và trích dẫn tóm tắt.
- Tự động dọn dẹp bộ nhớ đệm sau khi hoàn tất.