Fitur baru lainnya yang ditambahkan mulai di PHPMaker versi 11 adalah Custom Files. Seperti namanya, fitur ini memungkinkan Web Developer dapat menambahkan file PHP sendiri yang dapat dikostumisasi sekaligus dapat disimpan di dalam project. Itu artinya, Anda sebagai Web Developer tidak perlu lagi repot-repot mengelola file PHP sendiri yang disimpan di luar project (seperti yang selama ini mungkin masih Anda lakukan).
Ketika file kostum PHP tadi dapat dikelola dari dalam project PHPMaker, maka file tersebut dapat menerapkan fitur Security yang disediakan oleh PHPMaker. Inilah keuntungan lainnya dari fitur Custom Files. Lebih detail lagi, sebuah file kostum PHP merupakan sebuah halaman kosong (blank page) yang memenuhi aturan project sehingga Web Developer dapat menambahkan konten sendiri dan tampilannya menjadi konsisten, seperti file-file yang selama ini di-generate oleh PHPMaker.
Sebenarnya fitur ini diciptakan untuk menggantikan fitur Generate blank page yang digunakan mulai dari PHPMaker versi 10 ke bawah. Dengan kata lain, fitur Generate blank page sudah tidak ada lagi sejak PHPMaker versi 11. Jadi, jika di project PHPMaker Anda selama ini tergantung pada fitur ini, maka bersiap-siaplah untuk memigrasikannya ke fitur Custom Files ini. Harap maklum, ya! 🙂
Untuk membuat sebuah Custom File, cukup klik kanan pada panel Database yang terdapat di sebelah kiri project PHPMaker Anda, lalu klik Edit di menu utama, kemudian pilih Add File, sampai muncul jendela dialog Custom File.
Di bagian File Name masukkan nama file (tanpa alamat direktori). Jangan gunakan karakter yang dilarang dalam penamaan sebuah file di web server tersebut. Disarankan untuk menggunakan karakter alfa-numerik. Nama file tidak boleh sama dengan nama object Table, Custom View, Report, dan lainnya yang sudah terdapat di dalam project PHPMaker Anda.
Di bagian Caption, masukkan teks judul halaman. Data ini sama dengan judul dari sebuah Table yang di-generate oleh PHPMaker dan ditampilkan di bagian menu Aplikasi Web, termasuk yang kelihatan di bagian Breadcrumb.
Di bagian Includes common files hanya berlaku untuk kostum file PHP. Data ini untuk menentukan apakah Anda sebagai Web Developer ingin menyertakan file-file yang sering digunakan (biasanya merupakan header, menu, dan footer), sehingga tampilan kostum file tadi menjadi sama dengan file-file PHP lainnya yang di-generate oleh PHPMaker. Hal ini juga berguna supaya file kostum PHP tadi dapat menggunakan class dan function yang digunakan oleh PHPMaker.
Di bagian Output folder (relative to application root) merupakan folder tujuan tempat halaman tersebut berada. Data ini haruslah relatif terhadap root aplikasi dari project (lihat di bagian Generate Settings pada file Help PHPMaker). Sebagai contoh, jika Anda telah menentukan pengaturan seperti ini sebelumnya:
Application root folder: C:\Users\Administrator\Documents\mycompany.com Destination folder: C:\Users\Administrator\Documents\mycompany.com\project1
dan Anda ingin men-generate Custom File Anda ke folder tujuan, Anda harus memasukkan project1/. Jangan gunakan induk folder dengan karakter .. (dua titik) karena dapat menyebabkan file di-generate ke luar dari lokasi Aplikasi Web Anda sehingga dapat menimbulkan hal yang tidak diinginkan.
Tentu saja PHPMaker melengkapi dengan kode editor yang memungkinkan Web Developer dapat mengubah konten dari Custom File tadi dengan mudah dan cepat. Berikut ini contoh kode yang sangat sederhana, yang dapat Anda tambahkan sendiri ke dalam editor kode milik salah satu Custom File Anda:
<div class="panel panel-default"> <div class="panel-heading">Judul di Header</div> <div class="panel-body"> <p>Tulisan ini berada di bagian body panel.</p> </div> </div>
Contoh lainnya yang mengandung kode PHP dapat Anda lihat di bawah ini:
<?php $dbhelper = new cdemo_db(); // Create instance of the database helper class named c<database>_db where <database> is database name of the project ?> <div class="panel panel-default"> <div class="panel-heading">Out of stock products</div> <div class="panel-body"> <?php $sql = "SELECT DISTINCT " . "`categories`.`CategoryName` AS `CategoryName`," . "`products`.`ProductName` AS `ProductName`," . "`products`.`QuantityPerUnit` AS `QuantityPerUnit`" . " FROM `categories` JOIN `products` ON (`categories`.`CategoryID` = `products`.`CategoryID`)" . " WHERE " . "`products`.`UnitsInStock` <= 0"; echo $dbhelper->ExecuteHtml($sql, array("fieldcaption" => TRUE, "tablename" => array("products", "categories"))); // Execute a SQL and show as HTML table ?> </div> </div> <div class="panel panel-default"> <div class="panel-heading">Discontinued products</div> <div class="panel-body"> <?php $sql = "SELECT DISTINCT " . "`categories`.`CategoryName` AS `CategoryName`," . "`products`.`ProductName` AS `ProductName`," . "`products`.`QuantityPerUnit` AS `QuantityPerUnit`," . "`products`.`UnitsInStock` AS `UnitsInStock`" . " FROM `categories` JOIN `products` ON (`categories`.`CategoryID` = `products`.`CategoryID`)" . " WHERE " . "`products`.`Discontinued` = '1'"; echo $dbhelper->ExecuteHtml($sql, array("fieldcaption" => TRUE, "tablename" => array("products", "categories"))); // Execute a SQL and show as HTML table ?> </div> </div>
Luar biasa keren, ‘kan? 😀
Cak Sobri mengatakan
Script ini buat apa ya?
array(“fieldcaption” => TRUE, “tablename” => array(“products”, “categories”))
Masino Sinaga mengatakan
Kira-kira buat apa?
Cak Sobri mengatakan
Penggunaanya gimana ya, soalnya saya kosongin juga gak error
$dbhelper->ExecuteHtml($sql);
Masino Sinaga mengatakan
Pelajari file ewdbhelper12.php, lihat method ExecuteHtml untuk info lebih lanjut.
Cak Sobri mengatakan
Defaultnya Null ya, bikin tutorialnya donk bagaimana penggunaannya?
Masino Sinaga mengatakan
Silahkan ke http://www.phpmakerlearning.com.
ribut s mengatakan
malam pak…..
contoh cara mengkostum fpdf di phpmaker gmna kodenya pak..
apa bisa di masukan file fpdf di phpmaker….mohon contoh kodenya
Masino Sinaga mengatakan
Pelajari dokumentasi fpdf, lalu segera implementasikan ke Custom Files. Tidak ada yang sulit jika langsung Anda praktekkan.
Nanda mengatakan
Pak Masino, mau tanya tentang Query di Custom File Single Page (bukan List)
1. Cara Pertama :
dst….. (misalkan sampai 20 Query seperti diatas)
2.Cara Kedua :
kita membuat koneksi baru (diluar PHP Maker) dan Query seperti biasa, seperti ini :
$query=mysql_query(“SELECT nik, nama, alamat bla..bla…. From MyTable WHERE… “);
Pertanyaan saya:
Menurut Pak Masino lebih efisien manakah Cara yang Pertama atau Cara kedua.. mungkin dari segi Resoorce Server, Kecepatan dll…?
Masino Sinaga mengatakan
Gunakan selalu Cara Pertama, karena mengoptimalkan fitur di PHPMaker dan bisa berlaku untuk database manapun.
Cara Kedua sangat tidak disarankan. Mengapa? Karena di samping repot harus membuat koneksi di luar fitur PHPMaker, function seperti mysql_query() sudah tidak akan digunakan lagi di PHP versi 7 nanti. Selain itu, bagaimana jika Anda menggunakan database selain MySQL? Anda harus mencari function yang setara dengan mysql_query() tadi. Betapa repotnya!
rizki mengatakan
siang mas masino, saya mau bertnya, sara mengambil sql di custom file bagaimana?
contoh kodenya :
$sql = “SELECT ” .
“`IDPegawai`.`NamaLengkap` ” .
“`lamacuti`.`status`, `jeniscuti`,” .
” FROM `karyawan` JOIN `cuti` ” .
” WHERE ” .
“`pegawai`.`cuti` “;
*cuti dan karyawan itu nama table..
saya menggunakan phpmaker v12.0.7
terimakasih..
Masino Sinaga mengatakan
Silahkan lihat contohnya dari Custom File demo project, menu Home.
aliyasman mengatakan
Sepertinya fitur Custom File termasuk fitur unggulan PHPMaker dan banyak fitur yang tersedia
Masino Sinaga mengatakan
Betul. Fitur ini membuat PHPMaker semakin fleksibel.
Adhi mengatakan
Siang Pak Masino,
Bisakah fungsi pop up caledar (JSCalendar) yang sudah ada diphpmaker di panggil dari custom file?
Mohon bantu bagaimana caranya.
Terima kasih
Masino Sinaga mengatakan
Bisa. Besok artikelnya akan saya rilis. Silahkan kembali lagi besok.
Masino Sinaga mengatakan
Oke, artikelnya sudah terbit barusan: Begini Mudahnya Menampilkan DatePicker JSCalendar di Custom Files PHPMaker.
Adhi mengatakan
Terima kasih Pak. Sangat Bermanfaat.
Masino Sinaga mengatakan
Sama-sama.
Dayan Leksono Putro mengatakan
Salam, tanya ni Pak ,
Kalau menggunakan echo $dbhelper->ExecuteHtml(); yang ditampilkan angka, bagaimana menambahkan rupiah dengan kode yang
??
Terima Kasih
Masino Sinaga mengatakan
Silahkan modifikasi kode dalam function ExecuteHtml dalam file yang sudah di-generate oleh PHPMaker: ewdbhelper*.php.
Bayu mengatakan
Bang Masino,
Saya bikin custom files. Fungsinya untuk export report ke Excel.
Tapi ada 1 line code yang bikin gak jalan, yaitu include header.php.
Dikarenakan saya pakai common files agar bisa eksekusi pake recordset bawaan phpmaker.
Bagaimana cara menghilangkan 1 line code include header.php?
Kalau pake care edit generated file-nya, lumayan nggak efisien.
Saya coba hilangin menu :
$(“.ewMenuRow”).remove();
$(“.ewMenuColumn”).remove();
Sama saja. Karena header.php -nya bikin frame utama sendiri.
Justru yang ke export malah header.php.
Saya coba cari-cari export ke Excel pake fungsi phpmaker, tapi gak nemu.
Saya pake cara ini :
header(“Content-type: application/vnd-ms-excel”);
header(“Content-Disposition: attachment; filename=laporan.xls”);
Pertanyaan :
1. Adakah cara export ke Excel pakai fungsi phpmaker?
2. Jika tidak ada, bagaimana cara menghilangkan include header.php hanya untuk custom file tertentu?
Terima kasih.
Masino Sinaga mengatakan
Sudah coba aktifkan pilihan No header/footer untuk Custom File tersebut dari jendela Generate sebelum men-generate semua file script?
Bayu mengatakan
Anda luar biasa.
Makasih banyak.
Sukses selalu Bang.
Masino Sinaga mengatakan
Sama-sama.