Sekedar mengingatkan kembali, bahwa sejak versi 11, PHPMaker menambahkan fitur Custom Files. Fitur ini menggantikan fitur Generate a blank page di versi 10 dan sebelumnya. Dengan menggunakan Custom Files, maka Anda sebagai Web Developer dapat membuat file yang kontennya bebas dan dapat dikostumisasi dengan mudah dari dalam project PHPMaker Anda.
Keuntungan lainnya dari Custom File adalah, file yang dibuat dapat menggunakan fitur Security yang pengaturannya ditentukan dari dalam project PHPMaker. Anda bahkan dapat memberikan hak akses tertentu kepada Pengguna dengan level tertentu pula. Terakhir, Anda pun dapat memutuskan apakah ingin menyertakan Header dan Footer saat PHPMaker men-generate file tersebut atau tidak.
Hari ini saya menemukan satu kasus ringan tapi cukup berdampak sistemik, ehm. Apa itu? Saat menggunakan fitur Custom Files, maka file yang di-generate oleh PHPMaker tersebut ternyata tidak memanggil server event Page_Loading (masih ingat dengan server event ini?). Sementara kita ketahui, bahwa sering kali kita menggunakan server event ini untuk menempatkan pemanggilan fungs-fungsi yang bersifat global dan harus dijalankan di semua halaman.
Selidik punya selidik, ternyata isu ini disebabkan karena PHPMaker memang tidak memperbolehkan template-nya membangkitkan pemanggilan server event ini, melalui kode yang terdapat di sisi Template-nya pada file phpcommon-scripts.php:
<!--## if (CTRL.CtrlType.toLowerCase() != "field" && CTRL.CtrlID != "custom") { if (SYSTEMFUNCTIONS.ServerScriptExist("Global","Page_Loading")) { ##--> // Global Page Loading event (in userfn*.php) Page_Loading(); <!--## } } ##-->
Perhatikan pada bagian kode yang ini:
CTRL.CtrlID != "custom"
Ini merupakan penyebab mengapa PHPMaker tidak pernah membangkitkan kode untuk memanggil server event Page_Loading untuk file-file yang dihasilkan pada bagian Custom Files.
Syukurlah, akhirnya setelah meng-override kode tersebut ke dalam Masino Extensions yang saya buat untuk PHPMaker, sekarang server event Page_Loading menjadi dapat dipanggil dari dalam file yang dihasilkan pada bagian Custom Files.
Pak Masino, saya coba membuat Custom Files (include common file) yang berfungsi sebagai form Pencarian.
kira2 sperti ini :
…..form id=”cari_data” name=”cari_data” method=”post” action=”cari_data.php” …>
// input type =text name=kode …
// input type =submit name=cari …
…. /form>
if(isset($_POST[“cari”]))
{
// disini Query cari
$q_cari=mysql_query(“select bla bla…….
// disini ditampilkan hasil pencarian
script yg sy buat berjalan ketika dijalankan sendiri (tanpa PHP Maker) tapi ketika di gabung di Custom Files tidak bisa , muncul pesan :
“Permintaan Post Tidak Valid”
kira2 apa ya Pak penyebabnya, atau PHP Maker memang tdk mendukung Pemrosesan PHP Manual di dalam projeknya ?
Terimakasih.
Sejak versi 11, PHPMaker secara standar menggunakan kode token untuk Form Post. Anda bisa menonaktifkannya dengan menghapus tanda centang Check token for form post dari menu Tools -> Advanced Settings, lalu generate ulang semua file script seperti biasa.
oke Pak, sdah sy coba dan berjalan.
makasih-makasih Pak…
Sama-sama. 🙂
satu lagi yg mengganjal nih Pak Masino. hehe
bagaimana caranya mengambil nilai (variabel) User ID di halaman Custom Files ?
sy sdh coba baca2 artikel yg ini http://www.masinosinaga.com/phpmaker/menyisipkan-kode-setelah-pengguna-berhasil-login-di-aplikasi-web-dari-phpmaker/
tp kayaknya tidak bisa digunakan utk Kasus ini.
Terimakasih.
PHPMaker sudah menyediakan global function yang bernama CurrentUserID() untuk mengembalikan nilai UserID dari pengguna yang sedang login, atau CurrentUserName() untuk mengembalikan UserName dari pengguna yang sedang login.
Contoh penggunaan di Custom Files:
Cara menerapkan number format rupiah gimana ya? script-nya seperti apa?
Baca topik Field Setup dari menu Help PHPMaker.