EzyArticle là plugin quản trị nội dung dành cho EzyPlatform. Thay vì chỉ cung cấp một màn hình nhập bài viết, plugin tổ chức đầy đủ vòng đời của nội dung: từ biên soạn, phân loại và lên lịch xuất bản đến hiển thị trên website, quản lý bình luận và mở rộng bằng metadata.
Plugin phù hợp với blog, trang tin, cổng thông tin, website tài liệu và những ứng dụng cần tích hợp nội dung động vào hệ thống EzyPlatform.

EzyArticle là gì?

EzyArticle có thể được xem như một nền tảng quản trị nội dung thu gọn bên trong EzyPlatform. Plugin cung cấp khu vực quản trị để biên tập viên làm việc với bài viết và trang, đồng thời cung cấp lớp dịch vụ để theme hoặc web plugin truy vấn nội dung và trình bày cho người dùng cuối.
Kiến trúc của EzyArticle được chia thành các phần chính:
  • Module quản trị dành cho biên tập viên và quản trị viên.
  • Web runtime phục vụ việc đọc và hiển thị nội dung.
  • SDK chứa mô hình dữ liệu, repository, service và các điểm mở rộng dùng chung.
  • Socket plugin để EzyArticle có thể tham gia vào ứng dụng sử dụng EzySocket.
  • Bộ theme mẫu và công cụ hỗ trợ đồng bộ nội dung trong quá trình phát triển.
Nhờ cách phân tách này, dữ liệu nội dung không bị gắn cứng vào một giao diện cụ thể. Cùng một kho bài viết có thể được sử dụng bởi nhiều theme, trang web hoặc thành phần khác nhau.

Quản lý bài viết và trang

Hai đối tượng nội dung quen thuộc nhất trong EzyArticle là bài viết và trang.
Bài viết phù hợp với nội dung được cập nhật thường xuyên như tin tức, bài blog hoặc thông báo. Trang phù hợp với nội dung có cấu trúc ổn định hơn như trang giới thiệu, điều khoản sử dụng, landing page hoặc trang thông tin sản phẩm.
Mỗi nội dung có thể mang các thông tin như:
  • Tiêu đề, nội dung chính, nội dung rút gọn và phần tóm tắt.
  • Slug dùng để xây dựng URL thân thiện.
  • Ảnh đại diện và các tài nguyên media liên quan.
  • Tác giả là quản trị viên hoặc người dùng.
  • Thời điểm tạo, cập nhật và xuất bản.
  • Độ ưu tiên phục vụ sắp xếp.
  • Trạng thái bình luận.
  • Mật khẩu bảo vệ nội dung.
  • Nội dung cha để xây dựng quan hệ phân cấp.
  • Metadata mở rộng theo nhu cầu của ứng dụng.
Ngoài những loại nội dung cơ bản, mô hình của EzyArticle còn hỗ trợ nhiều trường hợp sử dụng như tin tức, blog, FAQ, wiki, video, podcast, ấn phẩm, thư viện và nội dung dạng mẫu. Ứng dụng cũng có thể bổ sung loại nội dung riêng qua phần cấu hình và các điểm mở rộng của plugin.

Quy trình xuất bản

EzyArticle quản lý nội dung theo trạng thái thay vì coi thao tác lưu đồng nghĩa với xuất bản.
Một nội dung có thể đi qua các trạng thái như bản nháp, đã xuất bản, xuất bản nội bộ, xuất bản riêng tư, lưu trữ hoặc thùng rác. Điều này cho phép đội ngũ biên tập chuẩn bị và rà soát nội dung trước khi công khai.
Luồng làm việc điển hình gồm:
  1. Biên tập viên tạo bản nháp.
  2. Nội dung được bổ sung ảnh, phân loại, metadata và thông tin SEO cần thiết.
  3. Biên tập viên xem trước nội dung trên giao diện website.
  4. Bài viết được xuất bản ngay hoặc tạo lịch xuất bản.
  5. Những thay đổi tiếp theo được ghi nhận trong lịch sử nội dung.
  6. Nội dung không còn sử dụng có thể được lưu trữ hoặc chuyển vào thùng rác.
Plugin có màn hình quản lý lịch xuất bản riêng. Mỗi lịch gắn với nội dung, trạng thái cần áp dụng và thời điểm thực thi. Nhờ đó, người quản trị có thể chuẩn bị trước các chiến dịch nội dung mà không phải thao tác thủ công đúng thời điểm phát hành.

Nhiều trình soạn thảo cho nhiều loại nội dung

Nội dung bài viết và nội dung trang thường có yêu cầu biên tập khác nhau. EzyArticle vì vậy không áp đặt một trình soạn thảo duy nhất.
Plugin tích hợp các lựa chọn như:
  • Trình soạn thảo nội dung trực quan dành cho bài viết.
  • Trình soạn thảo theo khối.
  • Trình thiết kế trang dạng kéo thả.
  • Trình nhập văn bản đơn giản cho bình luận.
  • Khả năng đăng ký thêm trình soạn thảo từ plugin khác.
Quản trị viên có thể chọn trình soạn thảo mặc định riêng cho bài viết, trang và bình luận. Việc ánh xạ trình soạn thảo cũng có thể thay đổi theo loại bài hoặc định dạng nội dung.
Cách thiết kế này giúp bài blog tập trung vào trải nghiệm viết, trong khi landing page vẫn có thể sử dụng công cụ thiết kế bố cục trực quan.

Phân loại nội dung linh hoạt

EzyArticle sử dụng hệ thống term để phân loại nội dung. Một term có tên, slug, mô tả, ảnh đại diện, thứ tự hiển thị, trạng thái và quan hệ cha–con.
Các nhóm phân loại có sẵn bao gồm:
  • Danh mục.
  • Thẻ.
  • Series.
  • Nhóm bài viết.
  • Danh mục và thẻ cho ấn phẩm.
  • Danh mục và thẻ cho câu hỏi.
  • Từ khóa tìm kiếm.
  • Nhóm nội dung wiki.
Một bài viết có thể được gắn với nhiều term. Ngược lại, ứng dụng có thể truy vấn các bài viết thuộc một danh mục, thẻ hoặc nhóm nội dung cụ thể.
Mô hình phân loại này giúp EzyArticle thích ứng với nhiều nghiệp vụ mà không cần tạo một hệ thống bảng dữ liệu riêng cho từng loại website.

Menu và điều hướng

Plugin có hệ thống quản lý menu độc lập. Mỗi menu chứa một cây các mục điều hướng và có thể liên kết đến:
  • Bài viết.
  • Trang.
  • Term hoặc nhóm nội dung.
  • Đường dẫn tùy chỉnh.
Các mục menu hỗ trợ quan hệ cha–con, cấp độ, thứ tự hiển thị, nhãn liên kết và trạng thái hoạt động. Người quản trị có thể sắp xếp lại cây menu để thay đổi cấu trúc điều hướng mà không cần sửa mã nguồn của theme.
Ở phía hiển thị, web plugin có thể lấy bài viết hoặc term theo tên menu. Theme vì vậy chỉ cần quyết định cách trình bày, còn cấu trúc điều hướng được quản lý tập trung trong trang quản trị.

Đa ngôn ngữ

EzyArticle lưu nội dung dịch theo từng mã ngôn ngữ. Một bài viết hoặc trang có thể có nhiều phiên bản ngôn ngữ trong khi vẫn giữ cùng một định danh nội dung gốc.
Khi chỉnh sửa, biên tập viên có thể:
  • Tạo nội dung theo một ngôn ngữ.
  • Chuyển giữa các bản dịch.
  • Xem trước phiên bản đang biên tập.
  • Xóa một bản dịch mà không xóa nội dung gốc.
Phần giao diện quản trị của plugin cũng có sẵn tài nguyên cho nhiều ngôn ngữ. Đây là nền tảng phù hợp cho các website cần phục vụ người đọc ở nhiều thị trường nhưng vẫn muốn quản lý nội dung trong cùng một hệ thống.

Lịch sử và khả năng truy vết

Mỗi lần cập nhật có thể tạo ra một phiên bản lịch sử của nội dung. Lịch sử lưu lại dữ liệu cần thiết để người quản trị theo dõi quá trình thay đổi bài viết hoặc trang.
EzyArticle còn theo dõi lịch sử slug. Đây là chi tiết quan trọng đối với website đã hoạt động lâu dài: khi đường dẫn của bài viết thay đổi, ứng dụng có cơ sở để nhận biết slug cũ và xây dựng cơ chế chuyển hướng phù hợp.
Plugin cung cấp dữ liệu lịch sử, nhưng việc tự động chuyển hướng URL trên website vẫn phụ thuộc vào cách web plugin hoặc theme của ứng dụng được triển khai.

Bình luận và thảo luận

Hệ thống bình luận của EzyArticle hỗ trợ:
  • Bình luận theo bài viết.
  • Cấu trúc trả lời cha–con.
  • Bình luận của quản trị viên, người dùng hoặc khách.
  • Các trạng thái chờ duyệt, chấp nhận, từ chối, bản nháp và thùng rác.
  • Bật hoặc tắt bình luận ở cấp hệ thống và cấp nội dung.
  • Yêu cầu đăng nhập trước khi bình luận.
  • Giới hạn số lượng và độ dài nội dung.
  • Giới hạn thông tin tên, email và địa chỉ website của tác giả.
Ngoài bình luận bài viết, EzyArticle còn có khả năng gắn cuộc thảo luận với dữ liệu của plugin khác trong trang quản trị. Chẳng hạn, một đội ngũ có thể trao đổi ngay trên sản phẩm, đơn hàng hoặc yêu cầu hỗ trợ nếu plugin tương ứng đăng ký dữ liệu đó với EzyArticle.
Khả năng này biến phần bình luận thành công cụ cộng tác nội bộ, thay vì chỉ là khu vực phản hồi trên website.

Media, metadata và quan hệ nội dung

Bài viết, trang và term đều có thể liên kết với media. Ngoài ảnh đại diện, plugin cho phép quản lý danh sách tài nguyên gắn với từng đối tượng.
Metadata cung cấp cơ chế lưu các thuộc tính không nằm trong mô hình nội dung cốt lõi, ví dụ:
  • Tiêu đề và mô tả phục vụ SEO.
  • Cấu hình hiển thị riêng.
  • Mã theo dõi chiến dịch.
  • Thuộc tính nghiệp vụ của một loại nội dung tùy chỉnh.
  • Dữ liệu bổ sung dành cho theme.
Quản trị viên có thể cấu hình schema metadata để thống nhất cấu trúc dữ liệu cần nhập.
EzyArticle cũng hỗ trợ thiết lập quan hệ giữa các bài viết. Theme có thể sử dụng dữ liệu này để xây dựng khu vực “Bài viết liên quan”, chuỗi bài học hoặc các nội dung đọc tiếp mà không phải suy đoán hoàn toàn từ danh mục và thẻ.

Trang động, mẫu nội dung và page fragment

Bên cạnh bài viết truyền thống, EzyArticle có các công cụ dành cho việc xây dựng trang động:
  • Mẫu nội dung có thể tái sử dụng.
  • Trang dựa trên template.
  • Page fragment để chia giao diện thành những khối nhỏ.
  • Trình khám phá template.
  • Cơ chế đăng ký fragment từ các thành phần khác.
  • Khả năng dịch nội dung dựa trên mẫu.
Page fragment đặc biệt hữu ích khi một trang được ghép từ nhiều vùng như đầu trang, nội dung chính, thanh bên và chân trang. Từng vùng có thể được quản lý hoặc mở rộng độc lập.
Plugin cho phép cấu hình việc đưa fragment vào giao diện quản trị và giao diện web. Ứng dụng vì vậy có thể kiểm soát rõ thành phần nào chỉ dùng nội bộ và thành phần nào được phép xuất hiện trên website.

Hiển thị nội dung trên website

Phần quản trị chịu trách nhiệm tạo và tổ chức nội dung. Web runtime cung cấp các thao tác đọc phổ biến như:
  • Tìm bài viết theo mã định danh hoặc slug.
  • Lấy tiêu đề, tóm tắt và metadata.
  • Phân trang danh sách bài viết.
  • Lấy những bài mới xuất bản theo loại.
  • Lấy bài viết theo term hoặc menu.
  • Tìm bài trước và bài tiếp theo theo thứ tự ưu tiên.
  • Lấy term đang hoạt động.
  • Lấy thông tin tác giả và ảnh đại diện.
  • Đọc cấu trúc page fragment.
Theme nhận những dữ liệu này và quyết định HTML, CSS cũng như trải nghiệm cuối cùng. EzyArticle không ép website phải sử dụng một bố cục cố định và cũng không tự biến dữ liệu thành một trang hoàn chỉnh nếu chưa có theme hoặc web plugin tương ứng.
Repository có kèm theme mẫu, nhưng ứng dụng hoàn toàn có thể xây dựng theme riêng.

Tìm kiếm và tổ chức dữ liệu lớn

Danh sách bài viết, bình luận, term, lịch sử và lịch xuất bản đều được thiết kế để phân trang. Các màn hình quản trị cung cấp bộ lọc theo những thuộc tính quan trọng như loại nội dung, trạng thái, tác giả, từ khóa và thời gian.
EzyArticle cũng cho phép cấu hình:
  • Những loại bài được tham gia tìm kiếm.
  • Những trạng thái được phép hiển thị.
  • Cách tìm kiếm bài viết và bình luận.
  • Loại term chính của hệ thống.
  • Các loại bài, trang, term, trạng thái và bình luận bổ sung.
Nhờ đó, một dự án có thể bắt đầu từ blog đơn giản rồi mở rộng thành kho nội dung lớn mà không phải thay đổi toàn bộ mô hình quản trị.

Khả năng tích hợp và mở rộng

Các thành phần của EzyArticle giao tiếp thông qua service, repository, controller và hệ thống sự kiện của EzyPlatform. Plugin khác có thể tham gia vào quá trình xử lý nội dung bằng cách đăng ký trình soạn thảo, page fragment, loại dữ liệu, bộ tải thông tin hoặc handler phù hợp.
Bộ SDK giúp mã nguồn bên ngoài làm việc với bài viết, term, menu, bình luận và metadata mà không cần phụ thuộc trực tiếp vào giao diện quản trị.
Repository cũng cung cấp extension dành cho Visual Studio Code để hỗ trợ một số quy trình đồng bộ như:
  • Bài viết và term.
  • Trang và page fragment.
  • Mẫu nội dung.
  • Mẫu email.
  • Media.
Công cụ này phù hợp với đội phát triển muốn quản lý một phần nội dung dạng mã nguồn, xem trước thay đổi trên máy cá nhân hoặc đồng bộ tài nguyên giữa môi trường phát triển và máy chủ.

Phân quyền và bảo vệ nội dung

EzyArticle chạy trong hệ thống quản trị của EzyPlatform nên các thao tác quản trị được đặt sau cơ chế đăng nhập và phân quyền của nền tảng.
Ở cấp nội dung, plugin phân biệt nội dung công khai, nội bộ, riêng tư và nội dung được bảo vệ bằng mật khẩu. Tuy nhiên, mức độ bảo vệ thực tế trên website phụ thuộc vào việc web plugin hoặc theme sử dụng đúng các trạng thái và luồng xác thực do EzyArticle cung cấp.
Nói cách khác, không nên truy vấn trực tiếp toàn bộ bản ghi rồi hiển thị mà bỏ qua lớp dịch vụ kiểm tra trạng thái, thời điểm xuất bản và quyền truy cập.

EzyArticle phù hợp với ai?

EzyArticle phù hợp khi dự án:
  • Đang sử dụng EzyPlatform và cần bổ sung khả năng quản trị nội dung.
  • Muốn xây dựng blog hoặc trang tin nhưng vẫn kiểm soát hoàn toàn theme.
  • Cần quản lý đồng thời bài viết, trang, menu, taxonomy và bình luận.
  • Có nhu cầu xuất bản nội dung đa ngôn ngữ.
  • Cần lịch xuất bản và lịch sử chỉnh sửa.
  • Muốn mở rộng mô hình nội dung bằng metadata.
  • Muốn kết hợp CMS với các module nghiệp vụ khác trong cùng hệ thống.
  • Cần sử dụng nội dung từ cả web runtime và ứng dụng socket.
EzyArticle không phải là một website hoàn chỉnh ngay sau khi cài đặt. Plugin cung cấp lõi quản trị và truy xuất nội dung; dự án vẫn cần theme hoặc lớp giao diện web để tạo ra trải nghiệm dành cho người đọc.

Kết luận

Điểm mạnh của EzyArticle nằm ở việc kết hợp những chức năng quen thuộc của một CMS với kiến trúc plugin của EzyPlatform. Nội dung, giao diện và nghiệp vụ được tách thành các lớp rõ ràng: biên tập viên có công cụ quản trị tập trung, còn đội phát triển vẫn chủ động xây dựng theme và tích hợp nội dung vào ứng dụng.
Với hệ thống bài viết, trang, taxonomy, menu, lịch xuất bản, lịch sử, đa ngôn ngữ, bình luận, metadata và các điểm mở rộng, EzyArticle có thể bắt đầu từ một blog nhỏ và tiếp tục phục vụ những hệ thống nội dung phức tạp hơn khi dự án phát triển.