Sudah banyak kemudahan yang dapat digunakan oleh Web Developer ketika membuat Aplikasi Web dengan menggunakan PHPMaker seperti yang sudah diuraikan di artikel-artikel saya sebelumnya. Rasanya sayang sekali jika kemudahan yang sudah tersedia itu tidak dioptimalkan. Apalagi jika ternyata masih ada kemudahan-kemudahan lainnya yang perlu diketahui oleh Web Developer. Di antaranya, PHPMaker memberi kesempatan kepada Web Developer untuk menambahkan kode tertentu sebelum sistem mengeluarkan kode HTML untuk sebuah Record atau kumpulan beberapa Record ke browser Pengguna.
PHPMaker sudah menyediakan sebuah server event yang bernama Row_Rendering yang lokasinya berada di bawah Server Events -> Table-Specific -> Common pada project PHPMaker Anda. Pastikan sebelumnya Anda sudah memilih salah satu Table yang Anda inginkan dari panel Database di sebelah kiri dari project PHPMaker Anda, untuk memastikan Anda menambahkan kode di server event pada Table yang tepat.
Sesuai dengan namanya, server event ini akan dipanggil sebelum sistem me-render atau mengeluarkan tampilan sebuah Record ke browser Pengguna. Dengan kata lain, server event ini berguna untuk menerapkan pengaturan View Tag atau Edit Tag tanpa melalui pengaturan manual yang Anda lakukan pada fitur Fields setup di project PHPMaker Anda.
Jika Anda masih ingat dengan pengaturan yang bisa Anda tentukan melalui Fields setup, maka untuk setiap Field pada suatu Table, PHPMaker sudah menyediakan di bagian View Tag dan Edit Tag. Anda sebagai Web Developer bisa mengeset pengaturan-pengaturan di kedua bagian itu sebelum men-generate file script dengan menggunakan PHPMaker.
Nah, kode yang Anda tulis di server event Row_Rendering berguna jika Anda sebagai Web Developer ingin menerapkan pengaturan-pengaturan yang terdapat di bagian View Tag dan Edit Tag dalam Fields setup project PHPMaker tersebut berdasarkan kondisi tertentu.
Mari kita lihat contoh di bawah ini. Katakanlah kita ingin melihat properties apa saja yang dimiliki oleh field yang bernama NamaFieldKu, maka cukup tambahkan kode var_dump($this->NamaFieldKu); ke dalam server event Row_Rendering sehingga akan kelihatan kode selengkapnya menjadi seperti ini:
// Row Rendering event function Row_Rendering() { // Enter your code here var_dump($this->NamaFieldKu); }
Jangan lupa untuk men-generate ulang file script Aplikasi Web tersebut dengan menggunakan PHPMaker, lalu jalankan Aplikasi Web tersebut dari browser untuk melihat output dari properties field NamaFieldKu tadi.
Setelah kita mengetahui properties apa saja (beserta nilainya) yang dimiliki oleh field NamaFieldKu, maka kita bisa menggunakan kode berikut ini untuk membuat tampilan teks di field tersebut menjadi cetak tebal (Bold):
// Row Rendering event function Row_Rendering() { // Enter your code here $this->NamaFieldKu->ViewAttrs["style"] = "font-weight: bold;"; }
Perlu diketahui, bahwa server event Row_Rendering akan dipanggil di semua halaman (List, Add, Edit, Delete, View, Update, Search). Oleh karena itu, jika Anda hanya ingin menerapkan kode yang Anda inginkan hanya pada halaman tertentu, Anda bisa menggunakan Global Function CurrentPageID() untuk memeriksa ID halaman yang bertalian. Contoh, dari kode di atas tadi, kita hanya ingin menerapkannya pada halaman View saja, maka kode di atas cukup kita ubah menjadi seperti di bawah ini:
// Row Rendering event function Row_Rendering() { // Enter your code here if (CurrentPageID() == "view") $this->NamaFieldKu->ViewAttrs["style"] = "font-weight: bold;"; }
Jika kita tidak menambahkan pemeriksaan kondisi untuk halaman View, maka kode di atas akan diterapkan juga di halaman lainnya yang menggunakan property ViewAttrs, yaitu halaman List.
Wouw! Betapa mudahnya bukan? 🙂
Cak Sobri mengatakan
Bagaimana jika ingin menambahkan field/kolom di halaman list ?
misal kita punya tabel A :
ID, nama, kartuID
tabel B :
KartuID, NomorKartu, Deskripsi
Halaman List:
Nama, NomorKartu, Deskripsi
Kalo memakai JOIN di Custom Views tidak bisa di Add
Bagaimana mengatasi hal ini ?
Masino Sinaga mengatakan
1. Usahakan untuk selalu menggunakan Database View daripada Custom View. PHPMaker selalu menyarankan agar menggunakan Database View, karena ada beberapa keterbatasan di Custom View.
2. Jika ingin menambahkan kolom yang baru selain yang sudah ada di Database View, gunakan server event ListOptions_Load dan ListOptions_Rendered (baca file Help atau Bantuan dari PHPMaker untuk informasi dan contoh-contoh kodenya).
3. Pastikan Database View yang digunakan di project PHPMaker sudah diset field Primary Key-nya melalui Fields setup dari dalam PHPMaker.
Alex mengatakan
Klu terpakasa harus membuat subquery dimana harus ditempatkan pak
Masino Sinaga mengatakan
Di dalam database-nya.
Shandy mengatakan
Hy Mas Masino / Mobhar.
Kalau kita ingin mengubah warna text pada field yang read only menjadi misalkan warna merah saat Add Bagaimana caranya Mas? ^_^
Masino Sinaga mengatakan
Bisa dengan menggunakan kode CSS dari bagian HTML -> Styles -> User di project nya PHPMaker 2024.
Shandy mengatakan
Terima kasih untuk pencerahan nya Mas Masino / Mobhar.
Masino Sinaga mengatakan
Sama-sama.