Sudah bukan rahasia lagi bahwa di versi terakhir, PHPMaker selalu melakukan improvement dari versi-versi sebelumnya. Termasuk fitur Read Only, di versi 2021, PHPMaker pun membuktikannya. Pekerjaan Web Developer pun menjadi semakin ringan saja.
Jika di artikel ini kita harus menangani lagi dengan menggunakan kode khusus untuk membuat icon lookup supaya menjadi non-aktif (disabled), sekarang di PHPMaker 2021 itu sudah ditangani secara otomatis. Jadi, tidak perlu lagi kode tambahan yang harus kita tulis sendiri hanya untuk membuat field Read Only.
Tidak hanya itu saja, jika artikel yang satu ini kita harus menulis kode tambahan di server event Row_Updating untuk meneruskan nilai lama ke nilai baru pada field yang Read Only, maka di PHPMaker 2021 kode tambahan itu tidak perlu lagi kita tulis, karena PHPMaker sudah menangani nilai pada field yang Read Only tadi secara otomatis.
Fakta ini lagi-lagi semakin membuktikan bahwa PHPMaker versi terakhir selalu memiliki banyak keuntungan, sehingga sangat disarankan untuk dipakai dibandingkan versi-versi yang lama. Di samping improvement tersebut, teknologi Web Development yang digunakan pun relatif mengikuti trend, seperti misalnya Aplikasi Web sudah mendukung fitur URL yang SEO-Friendly.
Di PHPMaker 2021, kode yang kita tulis untuk membuat field menjadi Read Only secara dinamis, menjadi lebih sedikit, dibandingkan di versi-versi major sebelumnya. Kita tidak perlu lagi menangani control atau tombol Lookup menjadi disable. Kita juga tidak perlu menangani kode tambahan di server event Row_Updating.
Katakanlah di table models dari project demo2021 yang bisa kita download dan coba sendiri di localhost masing-masing, kita ingin membuat field Trademark menjadi Read Only hanya untuk user admin. Sedangkan untuk user yang bukan admin, maka field Model yang Read Only.
Ada dua cara yang hanya bisa kita pilih salah satu untuk mengimplementasikannya.
Cara pertama, kita menggunakan server event Row_Rendered. Cukup dengan menambahkan kode ini:
if (CurrentPageID() == "edit") { if (IsAdmin()) { $this->Trademark->ReadOnly = true; } else { $this->Model->ReadOnly = true; } }
Karena server event Row_Rendered dipanggil untuk beberapa halaman, maka kita harus menggunakan kondisi, dengan memeriksa ID halaman yang aktif, apakah edit.
Cara kedua, kita menggunakan server event Page_Load milik halaman Edit dari table models:
if (IsAdmin()) { $this->Trademark->ReadOnly = true; } else { $this->Model->ReadOnly = true; }
Karena kode di server event Page_Load sudah mengacu langsung di bawah halaman Edit, maka kode yang kedua ini tidak perlu lagi menggunakan pemeriksaan kondisi ID halaman.
Betapa mudah dan cepatnya, bukan? Hohoho… 😀
Tinggalkan Balasan