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:getpublic — 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