NukeViet

https://www.nukeviet.vn

Kế hoạch phát triển NukeViet phiên bản 5.0

NukeViet phiên bản 4 đã đi vào ổn định với gần 40 phiên bản thử nghiệm lẫn chính thức. Hiện tại dòng NukeViet 4.3.x đang là thế hệ mới nhất và được tiếp tục hỗ trợ trong 2 - 3 năm tới, đây là thời điểm thích hợp để nghiên cứu và phát triển thế hệ tiếp theo - NukeViet 5.0
Kế hoạch phát triển NukeViet phiên bản 5.0

Kế hoạch phát triển NukeViet phiên bản 5.0

Dựa trên các ý kiến tổng hợp của các nhà phát triển, chúng tôi xin đưa ra các điểm chính sẽ đưa vào nội dung phát triển của NukeViet 5.0 như sau:

Các thay đổi về mặt hệ thống

  • Yêu cầu PHP hỗ trợ mbstring (Multibyte String Functions) để đơn giản hóa việc xử lý unicode.
  • CSDL chuyển sang dùng InnoDB thay vì MyISAM như hiện tại.
  • Xử lý composer khi update không bị hỏng ví dụ cài thư viện phpexcel.
  • Có cấu hình cho phép quản trị có thể đăng nhập được nhiều nơi cùng lúc.
  • Cho phép auto load các module thông qua namespace NukeViet\Module\[Sub]
  • Chuyển cấu hình hiển thị captcha của hệ thống về các module tương ứng.

Ngôn ngữ

  • Mỗi module chỉ có 1 file ngôn ngữ dùng chung cả trong admin và ngoài site: do tỉ lệ giống nhau giữa admin và ngoài site rất cao.
  • Sử dụng class ngôn ngữ để đọc và xuất ngôn ngữ, đảm bảo ngôn ngữ chưa dịch không bị lỗi cảnh báo khi sử dụng.
  • Xây dựng tài liệu về các ngôn ngữ thường dùng để các nhà phát triển sử dụng, tránh việc thừa các lang key

Module Email Templates

Bổ sung module email template vào gói NukeViet mặc đinh, module này cho phép thiết lập các mẫu email gửi đi. Quản trị có thể thay đổi mẫu email gửi thay vì mẫu email gửi đi đang bị fix cứng trong code như hiện tại.
Các mẫu sử dụng mặc định trong hệ thống sẽ chỉ có thể sửa đổi và không thể xóa. Các module khác muốn sử dụng email template có thể dụng API được cung cấp bởi module.

Hỗ trợ Hook, Event và API

Xem bài giới thiệu tại: https://nukeviet.vn/vi/forum/Lay-y-kien-cac-nha-phat-trien-ve-HOOK-va-API-t44557/

Giao diện

  • Xây dựng mới giao diện default và admin_default trên nền Bootstrap 4
  • Sử dụng Smarty thay thế cho XTemplate.
  • Đồng bộ được CSS trong  trình soạn thảo và ngoài site.
  • Nên tạo sẵn các file và hướng dẫn các nhà phát triển nếu copy giao diện mặc định ra thì nên sửa vào các file này không nên sửa vào các file hệ thống: ví dụ tạo sẵn custom.css, color.css, custom.js
  • Có một vấn đề thường phát sinh đó là nhiều khi chỉ cần sửa giao diện một block của một module. người lập trình cần phải copy hết thư mục /themes/theme-name/modules/module-name/ rồi sửa chỉ một file block.name.tpl, sau này khi update phải check toàn bộ các file khác mặc dù không sửa gì gây mất thời gian cho nên bản mới cần xây dựng cơ chế tìm riêng từng file tpl, nếu không tồn tại thì tự lấy ở giao diện mặc định.

Test tự động

  • Sử dụng PHPUnit để test tự động php.
  • Sử dụng QUnit để test tự động javascript.
  • Tái cấu trúc lại kho code để phù hợp với auto test.

Rewrite

Có chức năng cấu hình URL rewrite theo nhiều phong cách khác nhau thay vì cố định dạng /vi/module/op/alias. Một số ví dụ:
  • setalias thay thế cho cả /lang/module/func/op
  • lang-setalias thay thế cho /lang/module/func/op khi đó module/func/op tương đương setalias
  • Giữ như cách cũ /lang/module/func/op
  • lang-module-func/op ….

Các phần khác

Bên dưới là các phần chúng tôi dự kiến sẽ có thể thực hiện, cần các ý kiến góp ý từ các nhà phát triển:
  • Các module admin của hệ thống, cũng đưa ra tương tự như module thường.
  • Xây dựng mô hình thiết kế CSDL cho toàn hệ thống giúp các nhà phát triển mới tiếp cận dễ dàng làm quen với hệ thống.
  • Tiến trình tự động không để cho trình duyệt gọi nữa mà chuyển qua crontab của hệ điều hành xử lý.
  • Bổ sung phương án ghi tự động vào cơ sở dữ liệu để lưu được toàn bộ dữ liệu thay vì chỉ bảo vệ được dữ liệu trong Editor. → Lưu tất cả các dữ liệu trên form vào chung 1 chỗ, để có thể lấy lại được tất cả.
  • Nghiên cứu xử lý lỗi tìm kiếm chữ Đ, đ ví dụ trong tiêu đề có: tôi được đi học. Nhưng đánh vào tìm kiếm là toi duoc di hoc sẽ không ra kết quả.
  • Xem xét lại các khái niệm theme, block, module, plugin, cronjobs. Có thể gộp lại thành theme, block, plugin (module, cronjob và plugin)

Hiện tại bước đầu chúng tôi đã tiến hành tiến hành phát triển và thử nghiệm về Hook, API, auto test bằng PHPUnit, sử dụng ngôn ngữ và đã xây dựng các tài liệu cơ bản sau:
Rất mong nhận được ý kiến đóng góp của các thành viên và các nhà phát triển. Mọi ý kiến đóng góp xin gửi tại https://nukeviet.vn/vi/forum/Thao-luan-ke-hoach-phat-trien-NukeViet-5-0-t44638/.
Chúng tôi rất hoan nghênh các nhà phát triển cùng tham gia vào việc phát triển NukeViet 5.0. Nhà phát triển muốn tham gia có thể gửi email tới “webmaster@nukeviet.vn” để được hướng dẫn.
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây