Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

Dashboard

Panel admin diakses lewat AdminController (controllers/AdminController.php), yang mendispatch ke controller turunan di controllers/Admin\* dan merender tampilan dari direktori templates/dashboard/. Device type dashboard memastikan layout, header/footer, dan aset mengacu ke set template tersebut.

AdminController.php · templates/dashboard/ · CLI make · CLI migrate

Alur baca backend

HelperDashboard — panel admin, modul Admin.

Memulai bekerja dengan dashboard

Setelah proyek siap dan basis data dapat diakses, urutan tipikal untuk masuk panel admin:

  1. Skema basis data. Jalankan migrasi dari root proyek agar tabel (user, package, dll.) ada — lihat CLI migrate (nxdom migrate createdb … jika database belum dibuat, lalu nxdom migrate run).
  2. Akun pertama. Buka /signup (contoh lokal: http://localhost/signup — sesuaikan host, port, atau subpath jika aplikasi tidak di root). Daftarkan pengguna; proses ini memakai OauthController@signup (routes/web.php).
  3. Masuk. Buka /signin (mis. http://localhost/signin), masuk dengan akun yang sama. Setelah sesi aktif, Anda diarahkan ke area pengguna — URL dashboard mengikuti slug pengguna: /{username} dan anak rutenya /{username}/{halaman}.

Tanpa migrasi yang sukses, pendaftaran atau login bisa gagal karena tabel belum tersedia. Tanpa login, AdminController mengarahkan pengunjung ke /signin.

Peran AdminController

  • Namespace node: App\Controllers\Admin\ — set di konstruktor lewat setControllerNamespace().
  • index($params) — URL pola /{username}. Memverifikasi username sama dengan slug sesi; memuat variabel global (dataGlobal + assignVars), menjalankan nodeController($page, …) bila ada controller untuk nilai $params['page'] (bawaan index), lalu setDeviceType('dashboard') dan render($templatePath).
  • page($params) — URL pola /{username}/{page}/… dengan segmen ketiga opsional sebagai nama method pada controller halaman.

Direktori template: templates/dashboard/

Semua halaman panel memakai berkas HTML di bawah folder ini — mis. index.html (beranda dashboard), postingan/index.html, account/index.html, package/index.html, aset di assets/css, assets/js, komponen header.html / footer.html. Generator admin menempatkan stub halaman di subfolder yang namanya mengikuti “page” (lihat CLI make).

Modul dokumentasi

  • Distroupload ZIP/HTML ke layout dashboard
  • Packagehak akses menu · storage
  • PostinganCRUD berita · kategori · pagination
  • Themedeploy theme publik (ZIP/HTML)
  • Userdaftar user · paket akses

Resolusi path template

  • Di index(), jika $page === 'index'render('index'); selain itu → render(strtolower($page) . '/index').
  • Di page(), jika controller mendefinisikan metode statis getTemplatePath($finalMethod, $requestMethod), nilai kembalian dipakai; jika tidak: POST → {page}/index, GET → lewat isFile3(2, 'index', 'dashboard').

Konteks global & sesi

dataGlobal() mengisi data untuk sidebar dan layout: identitas pengguna (slug, nama, email, avatar), peran tampilan, tautan terbangunan (link() memakai slug pengguna), logout, menu paket dari storage package, cookie tema (darkmode, sidebarCollapsed), dll.

Akses & aturan page()

  • Selain halaman account, jika model User::byId menunjukkan kolom telepon kosong, pengguna diarahkan ke /{slug}/account.
  • Halaman account, postingan, dan home dapat diakses tanpa cek daftar paket.
  • Halaman lain hanya jika nama halaman ada dalam daftar package pengguna. Peran admin otomatis mendapat izin tambahan untuk halaman package.
  • Slug URL harus cocok dengan pengguna login; jika tidak → redirect ke /signin.

Menambah fitur dashboard

  1. Controller: nxdom make 1/NamaFitur atau nxdom make Admin/NamaFitur — lihat CLI make.
  2. Basis data: CLI migrate.
  3. Daftarkan halaman di sistem paket / izin pengguna agar non-admin bisa membuka menu tersebut.