PORLAPAN - Versi PHP cPanel, server-only

Prinsip revisi ini:
- Folder public TIDAK DIUBAH.
- File tampilan, CSS, JS, halaman, aset, dan logika frontend TIDAK DIUBAH.
- server.js asli tetap disertakan sebagai arsip/pembanding, tetapi tidak dipakai di cPanel.
- Backend/API Node.js diganti dengan api.php.
- .htaccess hanya dipakai untuk mengarahkan API dan menyajikan folder public seperti server.js semula.

Cara upload ke cPanel:
1. Extract ZIP ini.
2. Upload isi folder porlapan_php_server_only ke public_html atau folder subdomain/domain tujuan.
3. Struktur setelah upload sebaiknya tetap seperti ini:

   public_html/
   ├── .htaccess
   ├── api.php
   ├── index.php
   ├── server.js
   ├── package.json
   ├── public/
   │   ├── index.html
   │   ├── css/
   │   ├── js/
   │   ├── assets/
   │   └── pages/
   └── data/
       ├── k3.json
       ├── competitions/
       └── backups/

4. Buka:
   https://domainanda.com/api/health

   Jika berhasil, muncul JSON dengan ok=true dan mode=php-cpanel.

5. Jika data/skor tidak tersimpan, ubah permission folder berikut menjadi 755 atau 775:
   data/
   data/competitions/
   data/backups/

Catatan penting:
- Jangan upload isi folder public saja, karena api.php dan data harus tetap berada satu level dengan folder public.
- URL API di frontend tetap /api/... jadi tidak perlu mengubah JavaScript.
- Kalau hosting menonaktifkan mod_rewrite, minta Rumahweb/cPanel mengaktifkan Apache Rewrite Module, karena .htaccess membutuhkan mod_rewrite.

Update revisi 2026-06-16:
- public/index.html sudah diringkas menjadi loader kecil. Layout utama dipindahkan ke public/js/app-shell.js agar source index yang terlihat publik tidak terlalu panjang.
- Login Admin/Administrator sekarang divalidasi lewat api.php (/api/login), bukan lagi dari password yang terbuka di JavaScript publik.
- Endpoint penyimpanan data pertandingan /api/competition/... sekarang membutuhkan session login Admin/Administrator. Public tetap bisa membaca jadwal dan klasemen, tetapi tidak bisa menyimpan perubahan ke file data.
- Untuk cabang Futsal Anak dan Tenis Meja, tab Jadwal hanya bisa diedit oleh Admin/Administrator. Pengunjung/public hanya melihat jadwal.
- Setelah upload, tetap cek https://domainanda.com/api/health. Lalu tes login dari tombol Login Admin di header.
