Luar biasa memang fleksibelnya PHPMaker! Saya harap Anda jangan terkaget-kaget (sangkin kagumnya) jika dibalik kesederhanaan PHPMaker itu, tersimpan kemampuan yang begitu dahsyatnya. Sepertinya, setiap hari ada saja trik dan ilmu baru yang bisa kita peroleh, dan sangat sayang untuk dilewatkan begitu saja, hehe… 😉
Hari ini ada satu trik lagi yang sangat sederhana, yaitu bagaimana mudahnya kita sebagai Web Developer dapat membuat item menu yang ketika diklik oleh Pengguna akan membuka alamat web tertentu (eksternal). Selain itu, web eksternal yang dibuka tadi akan berada di tab baru dari browser Pengguna. Jadi, web eksternal yang terbuka tadi tidak menimpa halaman Aplikasi Web yang sedang terbuka.
Seperti yang sudah kita ketahui bersama, PHPMaker menyediakan Menu Editor di bawah menu Tools dari dalam project PHPMaker, untuk mengelola item menu Aplikasi Web yang dihasilkan olehnya. Umumnya, item menu tersebut otomatis akan dihasilkan oleh PHPMaker berdasarkan object Tables dan Views yang diekstrak oleh PHPMaker dari Database.
Kadang-kadang, atau suatu ketika, kita sebagai Web Developer dituntut untuk membuat item menu yang akan membuka alamat web tertentu. Untuk itu, maka kita dapat menambahkan item menu baru, lalu masukkan alamat web tersebut pada kolom URL dari item menu yang bertalian pada Menu Editor. Sesimpel itu!
Karena item menu tersebut akan membuka web eksternal, maka alangkah baiknya jika web yang dibuka tadi berada di tab atau jendela baru. Jadi, tidak menimpa atau menutup halaman Aplikasi Web yang sedang dibuka oleh Pengguna. Pertanyaannya adalah, bagaimana caranya kita mengimplementasikan hal ini? Sementara yang kita ketahui, di PHPMaker tidak menyediakan pengaturan khusus di setiap item menu, yang dapat membuka di tab baru?
Jangan khawatir. Di balik keterbatasan yang kita lihat itu, ternyata PHPMaker sudah menyediakan server event Menu_Rendering yang bisa kita optimalkan. Sebagai Web Developer, kita hanya perlu menambahkan satu baris kode PHP berikut ke dalam server event Menu_Rendering tadi yang terdapat di bawah lokasi Server Events -> Global, sehingga kode selengkapnya kira-kira seperti ini:
// Menu Rendering event function Menu_Rendering(&$Menu) { // Change menu items here $Menu->FindItem(3)->Target = "_blank"; }
Tentu Anda pasti bertanya-tanya, apa yang dimaksud dengan nilai 3 di dalam parameter dari method FindItem milik object Menu tersebut? Itu adalah ID dari item menu yang akan menampilkan web eksternal tadi.
Pertanyaan selanjutnya, bagaimana cara mengetahui ID dari item menu tersebut? Oke, pertanyaan yang bagus! Jawabannya, pastikan terlebih dulu kita men-generate semua file script (tanpa terkecuali) menggunakan PHPMaker seperti biasa. Setelah itu, buka file ewmenu.php (asumsi saya menggunakan PHPMaker versi 11), dan cek kode yang menggunakan method AddMenuItem.
Anda bisa berpedoman kepada parameter kedua di method tersebut yang mewakili teks item menu yang kita masukkan di Menu Editor tadi.
Contoh, jika di kolom Menu Item tersebut kita memasukkan teks Web Masino Sinaga dan di kolom URL kita masukkan https://www.masinosinaga.com, maka di file ewmenu.php tadi Anda seharusnya akan melihat parameter kedua adalah mci_Web_Masino_Sinaga. Nah, dalam contoh kode di atas, ID (parameter pertama method AddMenuItem) dari item menu tersebut adalah 3.
Tentu saja ID item menu di sisi Anda kemungkinan besar tidak harus sama dengan 3. Biasanya pasti berbeda. Untuk itu, pastikan Anda menyesuaikan nilai parameter dari method FindItem di atas tadi dengan ID item menu yang Anda punya.
Betapa mudah, cepat, dan menyenangkan sekali, bukan? 😀
Tinggalkan Balasan