Bỏ qua, đến nội dung

Cài đặt và sử dụng — System Settings ​

Tổng quan ​

@digiforce-nc/plugin-system-settings quản lý các cài đặt hệ thống toàn cục: tên ứng dụng, logo, favicon, banner đăng nhập, ngôn ngữ mặc định, và nhiều tùy chọn branding khác. Plugin thường được bật sẵn khi cài đặt Digiforce.

Bước 1: Kiểm tra Plugin ​

Plugin thường đã được kích hoạt sẵn. Kiểm tra trong Settings → Plugin Manager.

Khi cài đặt lần đầu (install), plugin tự động:

  1. Upload ảnh logo, squareLogo, favicon, banner mặc định qua plugin-file-manager
  2. Tạo bản ghi systemSettings với giá trị mặc định
  3. Đặt appLang theo tham số CLI --lang hoặc biến môi trường INIT_APP_LANG (mặc định: en-US)

Bước 2: Cấu hình qua giao diện ​

Vào Settings → System Settings và thay đổi:

Branding ​

Cài đặtMô tảKhuyến nghị
Application titleTên ứng dụng (hiển thị trên header và tab trình duyệt)Hỗ trợ i18n template
LogoLogo chính — hiển thị trên header, trang đăng nhậpPNG/SVG, nền trong suốt, ~200×50px
Square LogoLogo vuông — dùng cho mobile icon, favicon fallbackPNG, 128×128px
FaviconBiểu tượng tab trình duyệtICO/PNG, 32×32px hoặc 16×16px
BannerBanner trang đăng nhậpSVG/PNG, kích thước lớn
LoaderAnimation loading khi khởi động ứng dụngGIF/SVG
Show logo onlyẨn title, chỉ hiển thị logo trên headerCheckbox
Brand HTMLHTML hiển thị ở footer (VD: "Powered by...")Hỗ trợ HTML + link

Ngôn ngữ ​

Cài đặtMô tả
Default languageNgôn ngữ mặc định cho người dùng mới
Enabled languagesDanh sách ngôn ngữ hiển thị trong bộ chọn ngôn ngữ

Bảo mật ​

Cài đặtMặc địnhMô tả
Allow sign uptrueCho phép đăng ký tài khoản mới
SMS authenticationfalseBật xác thực bằng SMS

Giao diện ​

Cài đặtMặc địnhMô tả
Header styleappLauncherKiểu hiển thị header

Cấu hình qua API ​

Đọc cấu hình (public) ​

http
GET /api/systemSettings:get

Response trả về tất cả settings bao gồm logo/favicon/banner URLs. Endpoint này public — trang đăng nhập sử dụng để hiển thị branding.

Lưu ý: Field title trong response đã được render qua renderJsonTemplate() — hỗ trợ biến môi trường. Field raw_title chứa giá trị gốc.

Cập nhật cấu hình (admin) ​

http
PUT /api/systemSettings:put
Content-Type: application/json

{
  "raw_title": "My Application",
  "appLang": "vi-VN",
  "enabledLanguages": ["vi-VN", "en-US"],
  "allowSignUp": false,
  "brand": "Powered by <a href='https://digiforce.vn'>Digiforce</a>",
  "headerStyle": "appLauncher"
}

Lưu ý: Khi cập nhật title qua API, sử dụng field raw_title (không phải title). Server sẽ lưu raw_title vào DB field title.

Luồng hoạt động ​

Biến môi trường ​

BiếnMô tả
INIT_APP_LANGNgôn ngữ mặc định khi cài đặt lần đầu (mặc định: en-US)

Cũng có thể đặt qua CLI: digiforce install --lang vi-VN

ACL và bảo vệ dữ liệu ​

  • Bản ghi systemSettings có ID = 1 không thể xóa (fixedParams: id.$ne: 1 cho action destroy)
  • systemSettings:get là public — ai cũng đọc được
  • systemSettings:put yêu cầu quyền admin (ACL snippet)

Lưu ý quan trọng ​

  • Thay đổi có hiệu lực ngay lập tức (một số cần refresh trang)
  • Logo/favicon/banner lưu dưới dạng belongsTo attachments — quản lý qua plugin-file-manager
  • Field title hỗ trợ i18n template — có thể dùng biến môi trường hoặc translation key
  • Settings lưu trong Database → không bị mất khi cập nhật code
  • Chỉ có 1 bản ghi systemSettings (ID = 1) — không thể tạo thêm