Bagaimana Cara Kerja PHPMaker?
PHPMaker: PHP Code Generator + PHP Framework Februari 20, 2014 oleh Masino Sinaga 86 Komentar
Pendahuluan Sebelum Anda membaca tulisan ini, saya ingin mengatakan bahwa PHPMaker memang bukanlah segala-galanya. Tulisan ini juga bukan berarti ingin meremehkan PHP Framework selain yang digunakan oleh PHPMaker. Masing-masing pasti memiliki kelebihan dan kekurangannya. Semua pasti setuju dengan pernyataan tersebut. Melalui tulisan ini, saya ingin membagi pengalaman selama menggunakan PHPMaker, bahwa sebenarnya masih ada alternatif dalam membangun Aplikasi Web selain hanya menggunakan PHP Framework. Khususnya bagi mereka yang masih bingung, ingin menggunakan yang mana dalam membangun aplikasi berbasis web.
Apa itu PHPMaker? PHPMaker adalah sebuah perangkat lunak atau perkakas tool otomasi yang dapat membangkitkan (generate) sekumpulan kode PHP dengan cepat dari basis data MySQL, PostgreSQL, Microsoft Access, Microsoft SQL Server, dan Oracle. Dengan menggunakan PHPMaker, Anda dapat membuat dengan cepat aplikasi berbasis web yang mengijinkan penggunanya untuk menampilkan, mengubah, mencari, menambah, dan menghapus record melalui web. PHPMaker dibuat dengan fleksibilitas yang tinggi, dan dilengkapi dengan berbagai pilihan yang memungkinkan Web Developer untuk membuat aplikasi berbasis web dengan menggunakan kode PHP yang sesuai dengan kebutuhan. Kode PHP yang dihasilkan sudah barang tentu bersih, langsung kepada fungsinya, dan mudah untuk dimodifikasi atau dikostumisasi. Skrip PHP(untuk yang dihasilkan dijalankan di server yang menggunakan sistem operasi Windows basis data:olehnya MySQL,dapat PostgreSQL, Access, MSSQL, dan Oracle) atau Linux/Unix (untuk basis data: MySQL, PostgreSQL, dan Oracle). PHPMaker dapat menghemat banyak waktu dan cocok baik untuk Web Developer yang masih pemula maupun yang sudah mahir sekalipun.
Fitur di PHPMaker
Ketika banyak Web Developer ramai-ramai belajar dan menggunakan PHP Framework, maka di saat yang sama saya justru lebih memilih PHPMaker. Mengapa? Karena ternyata PHPMaker itu bukan hanya sekedar tools men-generate kode PHP untuk membuat aplikasi berbasis web. PHPMaker pun sebenarnya menggunakan PHP Framework. Atau lebih tepatnya, dia menggunakan framework khusus yang dia ciptakan sendiri. Aplikasi Web yang di-generate oleh PHPMaker ternyata sudah menyertakan PHP Framework di dalamnya. Itu artinya, Anda dapat sendiri Aplikasiitu Web yangmaupun dihasilkan olehnya. Bisa dengan mengatur settingmengembangkan dari dalam aplikasi PHPMaker sendiri, dengan mengkostumais kode yang sudah dihasilkannya (untuk cara yang terakhir ini, saya tidak menyarankannya, karena Anda dapat mengoptimalkan Server Events dan Client Scripts di PHPMaker). Beberapa fitur yang sudah tersedia di Aplikasi Web yang di-generate oleh PHPMaker adalah sebagai berikut: 1. 2. 3. 4. 5.
Login/Logout Pendaftaran Akun Pengguna Reset Kata Sandi Ganti Kata Sandi Captcha di form
6. CRUD Pencarian CepatRead, Update, Delete) 7. (Create, 8. Copy/Salin Record 9. Halaman/Paging 10. List Page (halaman yang menampilkan record di tabel) 11. View Page (halaman yang menampilkan satu record per halaman) 12. Edit Page (halaman untuk mengubah record) 13. Add Page (halaman untuk menambah record) 14. Delete Page (halaman konfirmasi sebelum menghapus record) 15. Advanced Search (pencarian mahir) 16. Role Based Access Level (RBAC) 17. Export Data (Printer Friendly, Excel, Word, HTML, CSV, XML, PDF, dan Send to Email) 18. Master/Detail (View, Add, Edit, Multiple Details) 19. Multi Language (multi bahasa) 20. Menu Horizontal/Vertical 21. Table yang dapat discroll 22. Update banyak record 23. Hapus banyak record 24. Grid-Add (penambahan beberapa record sekaligus) 25. Grid-Edit (pengubahan beberapa record sekaligus) 26. Inline-Add/Copy (tambah/salin record di baris grid tabel) 27. Inline-Edit (ubah record di baris grid tabel) 28. Upload Gambar ke Basis Data dan File
29. Preview Row, Detail Preview (Overlay) untuk Master/Detail 30. Auto-Suggest 31. Auto-Fill 32. Breadcrumb Links 33. … dan masih banyak lagi Selain itu, PHPMaker menyediakan banyak sekali pilihan yang bisa digunakan oleh Web Developer untuk menghasilkan Aplikasi Web yang sesuai dengan kebutuhan, seperti misalnya: 1. File Upload 2. Audit Trail (Log atau Database) 3. Server/Client Side Validation 4. Record per Halaman 5. Jumlah record yang dapat dipilih 6. Tipe pengurutan record (single atau multi) 7. Multi-Page type (Tabs, Pills, atau Accordion) 8. Posisi Paging (atas, bawah, atas dan bawah) 9. Penghapusan banyak 10. Penghapusan tanpa halaman konfirmasi 11. Link di sebelah kiri atau kanan tabel 12. Konversi tombol menjadi link 13. Pengelompokan link ke dalam tombol dropdown 14. Email Pengelompokan 15. Setting link di bagian Paging 16. Site title, icon, logo, header, dan footer 17. Charset 18. Font Name dan Font Size 19. Login (Auto-login, remember username, always ask) 20. Keamanan Aplikasi (Statik, dinamis, atau keduanya) 21. User ID dan Parent User ID 22. User Login Options 23. Sinkronisasi Database ke Project 24. Multi Language 25. Extensions 26. Advanced Settings 27. Copy Table Settings 28. Copy Field Settings 29. Menu Editor 30. Generate blank page 31. … dan masih banyak lagi Fitur selengkapnya mengenai PHPMaker dapat Anda lihat melalui situs resminya.
Alasan Menggunakan PHPMaker
Di samping alasan PHP Framework yang sudah terdapat di PHPMaker dan fitur-fitur yang sedemikian lengkapnya di atas yang membuat saya memilih untuk menggunakan PHPMaker, dengan menggunakan PHPMaker maka Aplikasi Web yang saya buat bisa diselesaikan dalam waktu yang sangat cepat. PHPMaker bisa men-generate Aplikasi Web hanya dalam hitungan detik saja (tergantung dengan banyaknya jumlah tabel dan halaman yang di- generate). Saya bahkan bisa menyimpan semua hasil pekerjaan di PHPMaker tersebut cukup hanya dalam satu file project (yang memiliki ekstensi .pmp – merupakan singkatan dari PHPMaker Project). File ini otomatis di-backup oleh PHPMaker sebanyak 10 file dari 10 hasil pekerjaan yang disimpan terakhir. Sebenarnya masih banyak alasan detail lainnya mengapa saya sangat menyenangi PHPMaker yang belum sempat saya uraikan di sini satu per satu di sini. Meskipun demikian, Anda dapat mengetahui beberapa alasan saya lainnya melalui artikel yang sudah pernah saya tulis berjudul: – Ayo Menjadi Web Developer yang Cerdas! – Too Many Reasons Why I Love PHPMaker!.
Apakah PHPMaker Cocok buat Saya? Sebelum Anda memutuskan apakah ingin menggunakan PHPMaker atau tidak, berikut beberapa pertanyaan yang layak untuk Anda jawab sendiri: 1. Apakah Anda ingin membangun aplikasi berbasis web dengan menggunakan kode PHP dengan mudah dan cepat tanpa mengabaikan kualitasnya? 2. Apakah Anda sudah bosan membangun Aplikasi Web dengan harus menggunakan cara menulis kode PHP langsung ke file .php-nya? 3. Apakah Anda sering menulis ulang kode yang hampir sama dari satu aplikasi ke aplikasi yang lain dan membutuhkan tools tertentu untuk menghindari pekerjaan tadi? 4. Apakah Anda tidak ingin berlama-lama duduk di depan komputer dan ingin memiliki waktu juga untuk bersosialisasi/berkumpul dengan keluarga/teman? 5. Apakah Anda hanya satu-satunya tenaga programmer atau tidak memiliki team untuk membangun beberapa Aplikasi Web sekaligus? 6. Apakah Anda ingin menggunakan metode pengembangan Aplikasi Web yang mudah dan cepat mengkostumais kembali di masa yang akan datang? 7. Apakah Anda ingin selalu mengikuti perkembangan teknologi web development tanpa harus melakukan terlalu banyak usaha sendiri? Jika jawaban dari semua pertanyaan di atas adalah YA, maka memang sudah saatnya Anda menggunakan PHPMaker.
Selanjutnya Apa? Jika Anda memutuskan ingin menggunakan PHPMaker dengan serius, maka saya sarankan untuk melakukan sebagai berikut:
1. Silahkan beli aplikasi PHPMaker hanya dengan harga sekitar Rp 2 Juta saja (saat artikel ini saya tulis). Klik di sini untuk memesan. 2. Baca juga presentasi saya mengenai PHPMaker di situs SlideShare. 3. Kunjungi situs saya yang membahas lebih detail mengenai PHPMaker di ILovePHPMaker.com. Dijamin Anda akan mendapatkan banyak ilmu, extension powerful bikinan saya, dan masih banyak lagi info berguna mengenai PHPMaker, sehingga Aplikasi Web yang Anda buat dengan PHPMaker bisa menjadi lebih powerful dan profesional bagi klien Anda.
Bagaimana Cara Kerja PHPMaker? April 1, 2014 oleh Masino Sinaga 37 Komentar Ada yang bilang bahwa Tak Kenal Maka Tak Sayang. Sekarang mari kita membahas lebih dalam lagi mengenai PHPMaker sebagai PHP Code Generator sekaligus sebagai sebuah PHP Framework yang sangat powerful dan fleksibel untuk membuat sebuah aplikasi berbasis web. Hal yang pertama sekali perlu Anda ketahui mengenai PHPMaker adalah bagaimana cara menggunakannya. Beginilah urutan cara kerjanya. PHPMaker menghubungi database Anda, meng- extract informasi Tabel dan Field, lalu membangkitkan (generate) skrip PHP dengan cepat berdasarkan informasiList, yangAdd/Copy, sudah di-extract Tabel, yang PHPMaker akanitu men-generate halaman View, tadi. Edit,Untuk Delete,setiap dan Search semuanya sudah salingsebuah terhubung antara satu dengan lainnya. Sangat sederhana, bukan? Inilah salah satu rahasia mengapa PHPMaker dengan sangat cepat dapat membuat aplikasi web yang memiliki banyak Tabel di database Anda. O iya, kita menggunakan istilah Tabel di atas tadi, hanya untuk menyederhanakan saja. Sebenarnya yang dimaksud dengan Tabel itu juga termasuk dengan View di dalam database. Dengan kata lain, PHPMaker akan men-generate skrip PHP berdasarkan object Tables dan Views yang terdapat di dalam sebuah database. Untuk men-generate skrip, Anda hanya perlu mengikuti urutan menu tab di PHPMaker dan menyesuaikan (jika perlu) beberapa pilihan di setiap menu tab tadi, yaitu dari: [Database] > [PHP] > [HTML] > [Security] > [Generate] Meskipun begitu, jika Anda baru pertama kali menggunakan PHPMaker, disarankan untuk mengenerate sebuah aplikasi PHP yang sangat dasar agar mengetahui bagaimana PHPMaker dan PHP berfungsi pertama sekali. Jika Anda belum pernah menggunakan PHP sebelumnya, maka disarankan untuk membaca Introduction to PHP and MySQLpertama kali di dalam file Help yang terdapat di PHPMaker. Perlu Anda ketahui juga bahwa PHPMaker dilengkapi dengan file Help atau Bantuan yang berisi informasi penting yang wajib Anda gunakan sebagai pedoman dalam bekerja dengan PHPMaker.
Untuk men-generate project PHP Anda yang pertama, Anda dapat melewati pilihan-pilihan di setiap menu tab pada aplikasi PHPMaker, dan cukup menggunakan pengaturan standar pertama kalinya. Dengan kata lain, Anda dapat melewati langkah-langkah yang terdapat setelah menu tab [Database] dan sebelum menu tab [Generate]. Artinya, dari menu tab [Database], Anda dapat langsung lompat ke menu tab [Generate] setelah berhasil terhubung ke database Anda, yaitu: [Database] > [Generate] Application root Pastikan skrip, Anda sudah menyesuaikan pengaturan di sebelum menu tabmen-generate [Generate] tersebut. Jika sudah, maka pengaturan folder Destination folder juga akan otomatis menyesuaikan dengan lokasi di Application root folder tadi. Kedua pengaturan ini adalah lokasi tempat semua skrip akan di-generate oleh PHPMaker. Contoh, karena saya menggunakan Wampserver dan saya akan men-generate skrip untuk aplikasi web demo, maka lokasi folder root aplikasi adalah: D:\wamp\www\demo.
Perlu Anda ketahui juga bahwa bukan hanya skrip PHP saja yang akan di-generate oleh PHPMaker. Beberapa skrip pendukung penting lainnya pun sudah termasuk akan di-generate oleh PHPMaker, seperti file-file .css (untuk pengaturan stylesheet), .txt (untuk template email), .js (untuk kode javascript), .xml (untuk file language dan pengaturan setting lainnya), dan filefile icon/gambar. Ini jugalah alasan lainnya yang semakin membuktikan kepada Anda bahwa PHPMaker bisa menghemat waktu Anda sampai 80% untuk membuat sebuah aplikasi berbasis web. Banyak fitur-fitur utama yang wajib ada di sebuah aplikasi web sudah ditangani oleh PHPMaker. Tidak ada PHP Code Generator lainnya yang menurut saya bisa menyamai kehebatan dari PHPMaker. Saya sudah mencoba dan mengeksplorasi PHPRunner, ScriptCase, dan lain-lain, tapi sampai saat ini, produk-produk pesaing tersebut masih jauh ketinggalan dibandingkan dengan kemampuan PHPMaker yang benar-benar powerful dan flexible. Tidak hanya itu saja, bekerja dengan PHPMaker membuat pengembangan aplikasi berbasis web menjadi lebih mudah sekaligus menyenangkan. Di artikel-artikel selanjutnya, kita akan membahas lebih dalam lagi mengenai fitur-fitur dan pilihan-pilihan apa saja yang terdapat di dalam aplikasi PHPMaker.
File Project di PHPMaker April 2, 2014 oleh Masino Sinaga Tinggalkan Komentar Ketika Anda membuat sebuah project di PHPMaker, maka PHPMaker akan menyimpannya ke dalam file yang berekstensi .pmp (singkatan dari PHPMaker Project). Sebuah file project adalah sebuah file XML yang menyimpan semua pengaturan (settings) dari sebuah project. Anda disarankan untuk menyimpan sebuah file project untuk setiap aplikasi web yang Anda buat dan bangkitkan dengan PHPMaker. Jangan lupa juga untuk selalu mem-backup file .pmp ini, karena
Anda tidak dapat membuat file project dari file-file skrip yang sudah di-generate oleh PHPMaker. Ini sangat penting untuk diketahui sejak awal. Sebuah file project sebenarnya merupakan sebuah file XML, sama seperti file XML lainnya, file ini bisa dibaca dengan mudah oleh manusia (human-legible). Anda dapat membuka file project ini dengan menggunakan aplikasi editor teks dan melihat isinya. Setiap object (seperti database, table, field, dsb) diwakili oleh sebuah node XML di file project tersebut. Sedangkan properties dari object tersebut disimpan sebagai attributes dari node yang bertalian. Sebuah file project dibuat dengan menggunakan utf-8 encoding. Oleh karena itu, aplikasi editor teks yang Anda gunakan untuk membuka file ini perlu mendukung utf-8. Kebanyakan aplikasi teks editor mendukung utf-8 pada saat ini. Anda dapat dengan mudah menggunakan Notepad atau Notepad++ jika Anda tidak memiliki aplikasi teks editor lainnya. Dengan pemahaman dasar XML, Anda dapat mengganti pengaturan-pengaturan yang terdapat di file ini secara manual. Meskipun demikian, jika Anda memodifikasi sebuah file project, pastikan Anda menjaganya dengan baik, dan tidak ada salah sintaks. Untuk memeriksa jika file project ini tetap valid, Anda dapat mengganti ekstensi file .pmp menjadi .xml, lalu membukanya dengan menggunakan browser seperti Internet Explorer atau Firefox. Jika file tersebut dapat dimuat dan ditampilkan dengan baik di browser, maka file itu sudah bisa dipastikan valid dan dapat dibuka dengan PHPMaker.
Auto Backup untuk File Project PHPMaker April 3, 2014 oleh Masino Sinaga 2 Komentar Aplikasi PHPMaker mendukung auto-backup atau backup otomatis terhadap file project. Sekedar untuk menyegarkan memori kita bersama, file project adalah file yang dihasilkan oleh PHPMaker berekstensi .pmp. File ini berisi semua pengaturan/setting termasuk kode Server Events dan Client Scripts yang ditambahkan ke suatu project PHPMaker. Setiap kali Anda menyimpan file project tadi di PHPMaker, maka file-file project versi yang sebelumnya akan otomatis disimpan ke subfolder
\PHPMaker\Backup. Anda dapat menggunakan file project versi terdahulu dari folder Backup tadi, jika misalnya suatu saat dibutuhkan kembali. Fitur auto-backup ini sangat berguna jika misalnya file project Anda korup atau terjadi kasus lainnya seperti misalnya kehilangan file project, maka Anda masih memiliki salinan file project terakhir yang masih valid. Karena semua hasil pekerjaan Anda di PHPMaker disimpan di satu file ini, maka auto-backup adalah sesuatu yang wajib dilakukan di PHPMaker. Bayangkan jika file project ini tidak bisa dibuka oleh PHPMaker, maka Anda harus mengulangi dari awal membuat project PHPMaker tersebut. Tentu, dibutuhkan waktu yang tidak sedikit untuk membuatnya. Perlu diingatkan kembali bahwa file project PHPMaker tidak dapat dibuat berdasarkan skrip file yang sudah di-generate oleh PHPMaker. Oleh karena itu, file project di PHPMaker adalah
sesuatu yang sangat berharga, dan layak untuk diamankan/disimpan dengan baik, sama seperti Anda merawat dan memperlakukan barang-barang berharga Anda. Sekalipun PHPMaker sudah menyediakan fitur auto-backup file project, tapi Anda tetap disarankan untuk membackup filefile yang terdapat di subfolder Backup tadi. Perlu diingat juga, bahwa hanya 10 versi terakhir file project yang akan disimpan. File-file project versi sebelumnya akan otomatis dihapus. Jadi, jika misalnya nama file project Anda yang sebenarnya adalah: movies.pmp, maka 10 file terakhir yang akan disimpan di subfolder Backup tadi adalah: 1. movies(1).pmp 2. movies(2).pmp 3. movies(3).pmp 4. movies(4).pmp 5. movies(5).pmp 6. movies(6).pmp 7. movies(7).pmp 8. movies(8).pmp 9. movies(9).pmp 10. movies(10).pmp Dari kesepuluh contoh file project hasil auto-backup tersebut, maka file project yang terbaru atau yang terakhir adalah movies(1).pmp , sedangkan file project yang terlama atau paling lama disimpandisimpan adalah movies(10).pmp . Jadi, pastikan Anda juga membackup file-file project yang terdapat di dalam folder Backup tadi, dan me-rename-nya bila perlu, jika ingin menyimpan setiap histori perubahan yang Anda lakukan di project PHPMaker Anda. Catatan: adalah folder pribadi Anda, tempat Anda menyimpan file-file pribadi. Sebagai contoh, di sistem operasi Windows XP, lokasi sebenarnya dari adalah C:\Documents and Settings\\My Documentssecara standar (default), di mana C adalah drive di mana Windows diinstal, dan adalah pengguna yang sedang login di Windows tersebut. Sementara untuk sistem operasi Windows Vista (atau yang lebih tinggi), folder ini adalah: C:\Users\\My Documents. Sebagai informasi tambahan sekaligus penutup, yang membuat hidup Web Developer semakin mudah dan menyenangkan adalah, file project PHPMaker ini selalu mendukung versi terakhir PHPMaker. Contoh, file project yang Anda buat terakhir menggunakan aplikasi PHPMaker versi 9.2.0. Ketika aplikasi PHPMaker versi 10.0.0 keluar, maka Anda tetap dapat membuka file project yang disimpan menggunakan PHPMaker versi 9.2.0 tadi di PHPMaker versi 10.0.0. PHPMaker akan otomatis mengenali file project di versi PHPMaker yang lama dan mengconvert-nya ke versi terakhir dengan cepat, tanpa pernah menimbulkan kesulitan dan permasalahan sama sekali. Hal ini berdasarkan pengalaman penulis yang menggunakan PHPMaker versi 3 sampai dengan versi 10.
Project Name dan Project ID di PHPMaker
April 4, 2014 oleh Masino Sinaga Tinggalkan Komentar Di dua artikel sebelumnya kita sudah membahas mengenai file project di aplikasi PHPMaker. Sekarang mari kita membahas mengenai dua hal penting yang perlu kita ketahui di dalam sebuah project PHPMaker, yaitu Project Name dan Project ID. Keduanya terkait erat dengan file project PHPMaker yang sebelumnya sudah kita bahas. Project Name, seperti namanya, adalah nama dari sebuah project di PHPMaker. Setiap project
di PHPMaker wajib memiliki Secara standar, file (tanpa ekstensi) dariketika file project akan digunakan sebagai nama nama. project. Sebelum namanama file project diberikan, maka Anda menyimpannya untuk pertama kali, sebuah nama sementara, Project, di mana n adalah sebuah data numerik/angka, yang akan digunakan. Nama project merupakan sebuah property yang penting. Dia digunakan di kode yang dibangkitkan oleh PHPMaker untuk mengidentifikasi project Anda. Untuk penamaan nama project, sangat disarankan menggunakan karakter alfanumerik. Project ID, juga seperti namanya, adalah sebuah GUID (Globally Unique IDentifier). Setiap project di PHPMaker wajib memiliki Project ID yang nilainya unik. Nilai dari sebuah GUID diwakili dengan string yang terdiri dari 32 karakter hexadecimal. Contohnya: {095F6728-DF534763-A372-D8F2EAC959F2}. Project ID digunakan untuk mengenali project dan skrip yang dibangkitkan oleh PHPMaker. Setiap skrip dibangkitkan oleh project yang memiliki Project ID. Sebuah file XML yang bernama .xml (dalam contoh di atas adalah 095F6728-DF534763-A372-D8F2EAC959F2.xml ) juga akan dibangkitkan (generate ) untuk project subfolder yang namanya sama dengan Project Name di bawah folder root darisetiap aplikasi web.diFile XML mengandung beberapa informasi project dan digunakan untuk berbagi dengan project lainnya (misalnya dengan project PHP Report Maker), dan tentunya harus dengan nama project yang sama. Jadi, jangan sekali-sekali memberikan data Project ID ke publik dan jangan ganti Project ID kecuali memang ada kebutuhan yang harus dilakukan. Jika Anda perlu mengganti Project ID, maka Anda bisa menggantinya melalui menu Tools -> Advanced Settings di aplikasi PHPMaker.
Jika Anda menggunakan Dynamic User Level (lihat topik Advanced Security di file Bantuan/Help pada aplikasi PHPMaker), maka Project ID juga digunakan di tabel User Level Permission sebagai awalan (prefix) dari nama tabel, sehingga nama-nama tabel dari project yang berbeda tidak akan pernah bentrok antara satu dengan lainnya.
Pilih Simpan Sebagai atau Simpan Salinan di PHPMaker? April 5, 2014 oleh Masino Sinaga Tinggalkan Komentar Ada dua pilihan di aplikasi PHPMaker untuk membuat project baru berdasarkan project yang sudah ada. Kedua pilihan ini terdapat di bawah menu Project. Pertama adalah pilihan [Save As…], dan yang Kedua adalah pilihan [Save a Copy…].
Jika Anda ingin membuat sebuah project baru berdasarkan sebuah project yang sedang Anda buka di PHPMaker, gunakanlah pilihan [Save As…] di bawah menu [Project]. Jika [Save As…] digunakan, maka nama dan ID project diganti atau berubah di file project yang baru. File project yang baru tidak sama lagi dengan project aslinya tadi. Jika Anda ingin membuat salinan atau versi lainnya dari project yang sedang dibuka di PHPMaker, gunakan pilihan [Save a Copy…] untuk menyimpan file project dengan nama yang lain. Jika [Save a Copy…] digunakan, maka nama dan ID project tidak diubah. Nama project mungkin tidak sama lagiyang dengan nama file dari project. Meskipun dengan nama dan ID projectbisa yang sama, skrip dibangkitkan file-file projectdemikian, ini akan tetap berfungsi seperti mereka dibangkitkan dari file project yang sama. Jadi, bisa disimpulkan bahwa pilihan [Save As…] co cok digunakan untuk membuat project baru berdasarkan project yang sudah ada sekaligus akan mengganti nama dan ID project, sedangkan pilihan [Save a Copy…] cocok digunakan jika Anda ingin menyalin atau mem -backup project yang sudah ada di mana nama dan ID project tidak mengalami perubahan. Pilihan [Save a Copy…] mirip seperti fungsi Auto-Backup saat Anda menyimpan file project di PHPMaker.
Sinkronisasi Database dengan Project PHPMaker April 6, 2014 oleh Masino Sinaga 2 Komentar Pernahkah Anda mengalami kesulitan ketika harus melakukan sinkronisasi ulang antara perubahan struktur tabel di database dengan seluruh file skrip yang sudah Anda buat untuk membangun sebuah aplikasi berbasis web? Dalam masa-masa pengembangan sebuah aplikasi berbasis web, sudah hal yang biasa jika Anda harus mengubah skema atau struktur tabel-tabel di database Anda. Untuk menghemat waktu dan tenaga untuk melakukan sinkronisasi dari awal kembali, maka PHPMaker menyediakan kemampuan untuk melakukan sinkronisasi data di project Anda dengan struktur yang terakhir di database. Proses sinkronisasi di PHPMaker dapat dilakukan dalam situasi berikut:
1. Ketika bekerja di PHPMaker Cukup klik menu [Tools] -> [Synchronize] atau klik tombol di toolbar untuk melakukan sinkronisasi. PHPMaker akan otomatis memeriksa perubahan skema atau struktur database. Jika terjadi perubahan, PHPMaker akan menampilkan informasi mengenai perubahan ini sekaligus menanyakan kepada Anda apakah ingin melanjutkan dengan proses sinkronisasi.
2. Ketika membuka sebuah file project
Ketika membuka sebuah file project, PHPMaker akan otomatis memeriksa database untuk melihat apakah skema atau struktur database mengalami perubahan. Anda akan ditanya apakah ingin mempertahankan struktur database yang lama di file project Anda ateau apakah ingin memperbarui file project dengan skema atau struktur database yang baru. Berdasarkan pengalaman, hanya dibutuhkan beberapa detik saja untuk menyelesaikan proses sinkronisasi perubahan struktur database dengan file project PHPMaker dengan jumlah tabel yang tidak lebih dari 100. Sekarang bandingkan jika Anda melakukan proses sinkronisasi ini secara manual di semua file skrip yang harus Anda tulis. Jika database memiliki banyak tabel/field, fitur sinkronisasi otomatis ini akan membutuhkan waktu yang sedikit lebih lama saat memuat file project. Jika hal ini terjadi, Anda dapat menonaktifkan fitur ini dengan menghapus tanda centang dari menu: [Tool] -> [Auto Synchronize].
Betapa Mudah dan Cepatnya Menduplikasi Pengaturan Level Table di PHPMaker April 7, 2014 oleh Masino Sinaga Tinggalkan Komentar Ada satu mudah fitur di dan dalam aplikasi PHPMaker yang dapat hidup Web Developer lagi-lagi semakin menyenangkan. Bayangkanlah jikamembuat Anda harus membuat sebuah View di dalam database berdasarkan tabel yang sudah ada, lalu Anda harus mengatur ulang lagi semua pengaturan level tabel di View yang baru tadi dari dalam aplikasi PHPMaker, maka dibutuhkan waktu yang tidak sedikit bagi Anda untuk menyelesaikan pekerjaan ini. PHPMaker menyediakan fitur khusus yang bisa membuat hal ini diselesaikan dengan menjadi lebih mudah, cepat, dan yang pasti: menyenangkan! Fitur itu berada di bawah menu [Tools], dan namanya adalah: [Copy Table Settings]. Jika Anda menggunakan Query/View yang terdapat di dalam database untuk membuat versi alternatif dari sebuah Table yang sudah ada, maka Anda perlu membuat ulang semua pengaturan Table dan Field di View tadi. [Copy Table Settings] dapat membantu Anda dengan cepat menyalin semua pengaturan Table dan Field dari Table sumber ke sebuah View di database. Cukup dengan mengklik menu [Tools] -> [Copy Table Settings], lalu menentukan dua parameter, dan terakhir mengklik tombol OK, maka PHPMaker akan menyalin semua pengaturan setting level Table dari tabel sumber ke tabel tujuan. Lagi-lagi, kita menggunakan istilah tabel untuk menyederhanakan istilah. Tabel di sini meliputi object Tables dan Views di database. Di jendela atau form Copy Table Settings, Anda hanya perlu menentukan [Source table] dan [Target table]. Pilih [Source table] dan [Target table] (misalnya query/view), lalu klik OK untuk menyalin pengaturan Table. Jika sebuah field di tabel tujuan punya nama yang sama dengan yang di tabel asal/sumber, maka pengaturan Field tersebut juga akan disalin.
Perlu diingat bahwa fitur ini menyalin pengaturan tanpa kode validasi yang terdapat di Server Event atau Client Script. Jika pengaturan dari Table/Field sumber tidak tersedia untuk Table/Field tujuan, maka error mungkin akan terjadi. Anda harus memeriksa ulang pengaturan tersebut setelah mengeksekusi [Copy Table Setttings] tadi.
Pengaturan Level Field pun Bisa Disalin dengan Cepat di PHPMaker April 8, 2014 oleh Masino Sinaga Tinggalkan Komentar Di artikel sebelumnya, kita sudah membahas betapa mudah, cepat, dan menyenangkannya menyalin pengaturan level Table di aplikasi PHPMaker, sehingga dapat menghemat waktu Anda saat bekerja di PHPMaker. Hal yang sama juga berlaku jika kita ingin menyalin pengaturan level Fields. Jika Anda membuat pengaturan level Field dari awal, maka dibutuhkan waktu yang tidak sedikit untuk menyelesaikan pekerjaan ini. PHPMaker menyediakan fitur [Copy Field Settings] untuk menghemat waktu Anda. Ketika Anda menggunakan Custom View, PHPMaker mengijinkan Anda untuk menyalin pengaturan field dari tabel sumber ke tabel tujuan. Ketika Query/View yang terdapat di dalam database digunakan, maka Anda perlu menentukan pengaturan level Field dari awal kembali. Fieldcepat, Settings] Fitur [Copy membantu Anda untuk menyalin pengaturan field tabel asal ke View tadi dengan mudah, dan menyenangkan! Klik menu [Tools] -> laludari pilih [Copy Field Settings] untuk membuka sebuah form yang akan meminta Anda menentukan beberapa parameter berikut.
Selanjutnya, pilih [Source table] dan [Target table] (misalnya Query/View), maka field-field dari tabel tujuan akan ditampilkan di kolom sebelah kiri, kemudian Anda dapat memilih fieldfield yang sesuai dengan (dari tabel sumber) di kolom sebelah kanan, dan terakhir klik tombol OK untuk menyalin pengaturan field-field tersebut. Field-field yang ditampilkan di kolom sebelah kanan (tabel asal) ditandai dengan nama field yang sama dengan nama field di tabel tujuan. Jika nama field tidak sama, maka di kolom sebelah kanan akan ditampilkan dengan data string kosong.
Betapa Mudah danWeb Menyenangkannya Membuat Aplikasi yang Mendukung Multi Bahasa dengan PHPMaker April 10, 2014 oleh Masino Sinaga 1 Komentar Pernahkah Anda mengalami kesulitan ketika akan membuat sebuah aplikasi web yang mendukung pemakaian multi bahasa? Beberapa faktor penting yang perlu diperhatikan adalah:
bagaimana membuat konsep multi bahasa ini agar bisa diimplementasikan di seluruh teks dan label yang ditampilkan di aplikasi web tadi, bagaimana membuat dan memisahkan setiap frase kata atau kalimat sesuai dengan bahasanya, dan bagaimana menampilkan setiap frase yang sesuai dengan pilihan bahasa yang sedang digunakan oleh Pengguna dengan cara-cara yang seefektif dan seefisien mungkin. Kini Anda tidak perlu khawatir lagi, karena PHPMaker dapat mengatasi semua itu. PHPMaker menyediakan fitur untuk membuat aplikasi web Anda mendukung pemakaian multi bahasa dengan cepat, mudah, sekaligus menyenangkan! Anda [Multi-Language] ingin menggunakanmelalui project menu tab: PHPMaker yang mendukung multi bahasa, cukupJika aktifkan [PHP] -> [General], lalu setelah itu klik menu [Tools] -> [Languages] untuk memilih bahasabahasa apa saja yang ingin Anda gunakan di project tadi. Jika aplikasi web Anda nantinya ingin menggunakan lebih dari satu bahasa, maka sebuah combobox akan muncul di bagian atas dari aplikasi web yang dibangkitkan, sehingga Pengguna dapat memilih bahasa yang diinginkannya. Setelah memilih bahasa, maka pilihlah juga Default Language dari menu tab [PHP] -> [General] untuk memilih bahasa standar yang pertama kali akan digunakan oleh aplikasi web Anda ketika dibuka pertama sekali oleh Pengguna. Untuk file-file bahasa yang menyimpan setiap frase kata atau kalimat, Anda bisa melihatnya di dalam sub-folder languages di bawah folder tujuan instalasi aplikasi PHPMaker. Sedangkan untuk file-file bahasa yang dibangkitkan oleh PHPMaker pada aplikasi web tersebut, Anda dapat melihatnya di dalam sub-folder phplanguages di bawah folder root dari aplikasi web Anda. Perlu diingat bahwa hanya file bahasa English yang disediakan oleh PHPMaker. Anda harus menyiapkan file untuk bahasa Anda dengan cara menterjemahkan ke bahasa tersebut. Beberapa file bahasa sudah ada yang dibagikan oleh pengguna PHPMaker melalui forum diskusi PHPMaker. Klik di sini untuk memeriksa apakah file bahasa yang Anda inginkan sudah tersedia di forum tersebut. Untuk menterjemahkan isi dari sebuah file bahasa, Anda cukup menyalin file english.xml lalu mengubah nama file tersebut. Sangat disarankan agar nama file mengandung karakter alfa numerik (termasuk karakter garis bawah jika perlu) dan semuanya dalam huruf kecil, supaya seragam dengan file english.xml tadi. Buka file XML tersebut dengan editor teks favorit Anda, maka Anda akan melihat node utama (root) seperti ini:
Yang perlu Anda ganti adalah nilai dari atribut id, name, dan desc. id adalah singkatan atau kode bahasa yang menandai bahasa tersebut di skrip yang dibangkitkan oleh PHPMaker, harus unik, dan usahakan hanya mengandung karakter alfa numerik.
name adalah nama bahasa yang ditampilkan di antar muka Pengguna (yang tidak mendukung Unicode), usahakan hanya mengandung karakter alfa numerik, garis bawah, dan spasi. Data name ini juga akan ditampilkan pada menu: Tools -> Languages saat Anda akan menentukan bahasa mana saja yang akan diikutkan untuk di- generate oleh PHPMaker. desc adalah nama bahasa yang ditampilkan di skrip yang dibangkitkan oleh PHPMaker, bisa berupa file XML yang di-encoding. Data desc ini akan terlihat di combobox pilihan bahasa pada skrip yang dibangkitkan oleh PHPMaker.
Sebagai contoh, jika Anda ingin membuat dan menggunakan file bahasa untuk Traditional Chinese, maka Anda perlu mengubah nama file english.xml menjadi chinese.xml, lalu memodifikasi bagian node utama menjadi:
lalu setelah itu, silahkan menterjemahkan semua frase yang terdapat di file .xml tadi. Untuk menterjemahkan label (caption) dari table/field/menu dan propeti lainnya yang mendukung unicode, lihat topik Multi-Language Property Editorpada file bantuan yang disertakan di aplikasi PHPMaker. Penting juga untuk diketahui, bahwa: 1. Project Multi-Language harus menggunakan utf-8 untuk segalanya. Charset dari project harus dalam bentuk utf-8. 2. Data di database yang Anda gunakan harus disimpan dalam format unicode, karena jika tidak maka data Anda tidak dapat ditampilkan sebagaimana mestinya di antar muka Pengguna pada aplikasi web Anda. 3. Jika Anda harus mengkostumais file template dan meletakkan karakter unicode secara langsung di template daripada menggunakan file .xml bahasa tadi, selalulah menggunakan encoding utf-8 dan mengaktifkan pilihan UTF-8 output file dari menu Tools -> Advanced Settings dari aplikasi PHPMaker. Lihat petunjuk lebih detail mengenai hal ini pada topik-topik: Customizing Template dan Tools di file help yang disediakan oleh aplikasi PHPMaker. Selamat mencoba dan semoga berhasil.
Mudahnya Menterjemahkan Teks ke Bahasa Lain di PHPMaker April 11, 2014 oleh Masino Sinaga Tinggalkan Komentar
Di artikel sebelumnya kita sudah membahas bagaimana mudah, cepat, dan menyenangkannya jika ingin membuat aplikasi berbasis web yang mendukung pemakaian multi bahasa. Di artikel ini kita akan lebih mendalami lagi bagaimana cara menterjemahkan teks dari satu bahasa ke bahasa lain dengan menggunakan editor khusus yang disediakan oleh PHPMaker. Editor tersebut disebut dengan Multi-Language Property Editor. Perlu diingat bahwa antar muka pengguna mendukung Unicode. Jika Anda hanya menggunakan satu bahasa, maka Anda tidak perlu menggunakan editor ini. Hanya gunakan editor ini jika aplikasi web yang Anda generate mendukung pemakaian multi bahasa. Beberapa properti teks dari Object yang terdapat di PHPMaker mendukung multi-bahasa. Editor ini mengijinkan Anda untuk memasukkan nilai properti Unicode untuk setiap bahasa. Properti yang didukung adalah sebagai berikut:
Table Captions Table Page Names Field Captions Field Edit Tag Title Field Error Message Field Image Tag Alt Field User Values
Field Display Display Field Field #2 #1 Field Field Display Field #3 Field Display Field #4 Menu Text Site Title Site Footer Text
Meskipun demikian, jika Charset (lihat topik PHP Settings di file Bantuan aplikasi PHPMaker) dari project Anda bukan utf-8, skrip yang di-generate akan mengkonversi properti Unicode ke charset yang Anda gunakan. Jadi, pastikan karakter di properti tersebut mendukung charset yang Anda gunakan. Sebagai contoh, jika Anda menggunakan simbol dollar Unicode Euro di Caption tapi project charset yang digunakan adalah iso-8859-1, maka simbol tersebut tidak dapat ditampilkan di aplikasi web Anda sebagai iso-8859-1 karena tidak mendukung symbol. Dalam kasus demikian, Anda seharusnya menggunakan karakter entity HTML seperti "€"
di Caption Anda. Untuk mengubah properti, klik [Tools] -> [Multi-Language Property Editor]untuk membuka editor terlebih dulu. Alternatif lainnya, Anda juga dapat mengklik tombol kecil di sebelah properti di antar muka PHPMaker untuk membuka editor tersebut.
Pilih sebuah properti di pane Property pada sebelah kiri untuk mengubah, lalu masukkan properti Anda dalam Unicode. Sebagai contoh, Anda dapat menyalin dan menempelkan (copy and paste) dari aplikasi MS Word. Perlu diingat juga bahwa properti yang sudah disimpan sebelumnya akan ditampilkan dalam cetakan huruf tebal. Setiap kali Anda menggunakan editor ini untuk menyimpan teks Unicode Anda, maka nilai properti Unicode akan selalu digunakan mendahului nilai properti asli (di antar muka pengguna yang umum). Nilai properti asli hanya akan digunakan jika nilai properti Unicode bahasa tidak ditemukan. Jika Anda ingin Unicode, mengubahingatlah properti, selalu kembali ke editor ini.dari Setelah mengubah dan menyimpan properti untuk mengenerate ulang file bahasa (.xml) dan jangan lupa untuk mengunggahnya ke web server Anda.
Rahasia PHPMaker Bisa Men-Generate Skrip dengan Sangat Super Cepat April 12, 2014 oleh Masino Sinaga 1 Komentar Di tulisan ini kita akan mengetahui alasan utama mengapa aplikasi PHPMaker bisa mengenerate skrip aplikasi web Anda dengan sangat super cepat, ehm. Sangkin cepatnya, saya menggunakan istilah sangat super cepat. Sedikit berlebihan ya, tapi memang begitulah keadaan yang sebenarnya, hehehe…
Oke, jadi beginilah rahasianya. Ketika Anda mengklik tombol Generate di menu tab Generate pada aplikasi PHPMaker, maka dia akan memeriksa terlebih dulu apakah sudah ada file template script yang sudah diproses sebelumnya oleh aplikasi PHPMaker. Jika file tersebut sudah ada, maka PHPMaker akan menggunakan ulang template script tersebut untuk mempercepat pengenerate-an kode di skrip aplikasi web Anda. Hanya dibutuhkan beberapa detik saja untuk mengenerate aplikasi web dengan jumlah tabel di database sampai dengan 50 tabel dan jumlah field di setiap tabel kurang dari 20 field. O, iya. Kita mengacu kepada kalimat “template script yang sudah diproses sebelumnya” dengan istilah template cache.
Kadang-kadang, template cache ini bisa korup. Misalnya, ketika PHPMaker sedang mengenerate dengan menggunakan sebuah template yang sebelumnya sudah korup, atau karena template tersebut sudah pernah dikostumais sebelumnya tetapi hasilnya tidak valid. Dalam kasus seperti itu, maka Anda disarankan untuk segera menghapus template cache yang tidak valid tersebut, lalu biarkan PHPMaker otomatis membangun template cache kembali. Untuk menghapus template cache tersebut, cukup klik menu [Tools] -> [Delete Template Cache] di aplikasi PHPMaker. Atau, Anda juga dapat melakukannya secara manual dengan menghapus folder yang digunakan untuk menyimpan template di bawah folder \PHPMaker\Templates\.zip\.
Mudahnya Mengelola Menu Aplikasi Web dari PHPMaker April 13, 2014 oleh Masino Sinaga 4 Komentar Aplikasi PHPMaker menyediakan fitur yang memungkinkan Web Developer mengelola Menu di [Tools] -> aplikasi Editor] web dengan mudah, cepat, dan lagi-lagi: menyenangkan! Cukup klik menu: atau langsung mengklik icon Menu atas, maka PHPMaker [Menu Editor di toolbar akan menampilkan jendela dialog yang berisi item menu yang secara standar diambil dari Table yang akan di-generate.
Melalui jendela Menu Editor tersebut, Anda dapat mengelola item menu yang nantinya ditampilkan di aplikasi web yang akan di-generate oleh PHPMaker. Beberapa fungsi yang dapat Anda lakukan di Menu Editor ini adalah sebagai berikut: 1. Mengatur posisi menu, apakah ingin dijadikan sebagai menu induk (root), atau dibuat menjadi sub-menu. 2. Mengatur posisi item menu tertentu apakah ingin digeser ke atas atau ke bawah. 3. Meng-expand atau meng-collapse semua item menu. 4. Menyembunyikan item menu dengan cara menghilangkan tanda centang di sebelah kirinya. 5. Menambahkan item menu baru pada posisi yang Anda inginkan. 6. Mengelompokkan beberapa item menu ke dalam group menu tertentu. 7. Menentukan item menu yang dapat diakses oleh Pengguna yang memiliki level akses Anonymous. 8. Menghapus item menu yang sudah Anda buat sebelumnya (perlu diingat, bahwa item menu yang berasal dari Table tidak dapat dihapus, tapi Anda dapat menyembunyikannya). 9. Mengubah Caption dari item menu tertentu. 10. Menampilkan item menu yang memiliki tanda centang (yang akan di-generate di aplikasi web). 11. Meng-import item menu dari file project PHP Report Maker (hal ini berguna untuk meng-integrasikan report yang di-generate oleh PHP Report Maker ke project PHPMaker Anda). 12. Membuka jendela dialog Multi-Language Property Editoruntuk menterjemahkan teks menu supaya mendukung pemakaian multi-bahasa. Sekalipun Anda sudah membuat dan mengelola item menu dari jendela Menu Editor ini, Anda tetap dapat mengelola item menu tersebut secara on-the-fly saat aplikasi web Anda diakses oleh Pengguna. Nanti kita akan membahas cara untuk menampilkan atau menyembunyikan item menu tertentu melalui fitur Server Events di PHPMaker. Hal lain yang terkait dengan menu di PHPMaker adalah, disediakannya extension untuk mengubah layout menu yang secara standar adalah Vertical, menjadi Horizontal. Extension ini
disebut dengan MenuHorizontal dan hanya tersedia untuk Pengguna PHPMaker yang sudah membeli dan terdaftar di website PHPMaker. Seperti yang sudah disebutkan pada salah satu fungsi dari Menu Editor di atas yaitu adanya fitur pengelompokan menu, item-item menu yang dikelompokkan dibuat dengan cara yang sama sebagai sub-menu. Anda dapat memberi tanda centang di kolom Group Title pada Menu Editor. Group Title hanya berfungsi pada layout menu Vertical. Sedangkan untuk layout menu Horizontal, fitur Group Title ini akan ditampilkan sebagai sub-menu. Meskipun demikian, karena sub-menu bentuknya adalah Vertical, maka Anda dapat menggunakan Group Title ini hanya untuk item-item di sub-menu.
Mengenal Lebih Jauh File Template di PHPMaker April 14, 2014 oleh Masino Sinaga 3 Komentar Di artikel yang saya tulis terdahulu berjudul Rahasia PHPMaker Bisa Men-Generate Skrip dengan Sangat Super Cepatkita sudah sama-sama mengetahui penyebab utama mengapa PHPMaker bisa men-generate file-file skrip aplikasi web dengan sangat super cepat. Salah satu rahasianya adalah karena PHPMaker menggunakan Template Script yang sudah diproses
Template Script yang sebelumnya oleh aplikasi PHPMaker ituberasal sendiri.dari kenal juga ini dengan istilah Template Cache itu sebenarnya File Template yangkita dalam artikel akan kita bahas lebih lanjut. File Template yang digunakan oleh PHPMaker adalah sebuah file yang sudah dikompres atau dipadatkan; berekstensi .zip. Contoh, untuk PHPMaker 10, nama File Template-nya adalah phpv100.zip dan berada di dalam sub-folder template di bawah folder instalasi PHPMaker. Isinya adalah kumpulan potongan kode yang dibutuhkan untuk men- generate skrip aplikasi web. File Template dapat dikostumais secara penuh. Artinya, Anda dapat mengkostumais standar template yang disertakan oleh aplikasi PHPMaker, sehingga menjadi sesuai dengan kebutuhan di aplikasi web Anda. Mengkostumais File Template tentu saja membutuhkan pengetahuan mengenai teknologi web, seperti: HTML dan JavaScript. Juga harus memahami bagaimana File Template tersebut bekerja. Jadi, sebelum Anda memutuskan untuk melakukan kostumisasi template, pastikan Anda membaca beberapa hal penting di bawah ini. Mesin dari File Template di PHPMaker adalah Windows Script, sedangkan bahasa skripting (scripting) yang digunakan adalah JavaScript. Untuk mengkostumais File Template, Anda perlu mengetahui pengetahuan dasar mengenai JavaScript. Jika Anda belum memahami bahasa skripting tersebut, silahkan mengacu kepada JavaScript Fundamentalsdan JavaScript Reference.
Perbedaan dari Template ZIP, Template yang Di-UNZIP, dan Template Cache Untuk men-generate file skrip aplikasi web Anda, PHPMaker pertama sekali mengekstrak (unzip) File Template ke dalam sub-folder \PHPMaker\Templates\di bawah folder Documents Anda, lalu memproses skrip yang terdapat di dalam template yang sudah diekstrak ke dalam Template Cache, kemudian menggunakan Template Cache tersebut untuk membangkitkan file skrip web Anda. Jika template yang pengekstrakan sudah diekstrak(unzip) (Unzipped Template) tadi untuk sudah aplikasi ada, PHPMaker akan melewati proses tadi, dan cukup menggunakan ulang Template Cache, sehingga waktu yang dibutuhkan untuk pembuatan file skrip aplikasi web bisa sangat cepat. Jika Anda ingin mengkostumais sebuah template, maka biasanya Anda mengkostumais kode yang terdapat pada file-file di Template yang dizip tadi, tapi Anda harus men-zip-nya kembali setelah kostumisasi yang Anda lakukan selesai. Sebagai contoh, dengan cara menyeret ( drag) file-file yang sudah dikostumais tadi ke dalam file template yang berekstensi .zip tadi. Template yang sudah di-unzip yang berada di bawah folder Documents menyediakan sebuah pilihan cara untuk mengkostumais template tanpa harus mengkompres atau men-zip file template kembali. Meskipun demikian, sangat disarankan agar Anda men-zip-nya kembali setelah semua proses kostumisasi selesai dilakukan. Documents O iya, yang dimaksud dengan folder di atas tadi adalah pribadi tempat Anda menaruh file-file pribadi di sistem operasi Windows. Sebagai contoh,folder di Windows 7, lokasi sebenarnya dari folder Documents adalah C:\Users\\Documentssecara standar, di mana C adalah drive tempat Windows diinstal, dan adalah user yang sedang login di Windows tersebut.
Jika Anda lebih memilih untuk bekerja dengan template yang sudah diekstrak (unzipped template) tapi Anda belum men-generate file apapun, maka lakukanlah pen- generate-an file script dari PHPMaker sekali saja dulu. Setelah itu, barulah Anda disarankan memodifikasi filefile yang sudah diekstrak (unzipped files) tadi dari sub-folder yang bernama Script. Sebagai contoh, jika arsip template bernama default.zip, maka dia akan dieksrak (unzip) ke folder \PHPMaker\Templates\default.zip\ . Anda dapat memodifikasi file-file di bawah sub-folder Script yang berada di bawah sub-folder default.zip tersebut. Perlu diingat bahwa file-file yang sudah Anda kostumais tidak akan otomatis dikompres (zip) ke File Template. Jika Anda ingin berbagi template, maka Anda harus mengkompres (zip) file-file template tersebut kembali. Ketika Anda mengkompres (zip) file-file template tersebut, pastikan Anda mengkompres file-file dan sub-folder – sub-folder dari dalam folder tempat file dan folder tadi berada, dan bukan dari folder luarnya. Jika tidak, maka akan ada satu level folder yang berbeda, dan ini bisa menimbulkan hasil yang tidak diharapkan. Dengan menggunakan contoh di atas tadi, maka Anda seharusnya menambahkan file-file dan sub-folder – sub-folder di dalam folder \PHPMaker\Templates\default.zip\ke arsip template, BUKAN folder keseluruhan.
Ketika perubahan di dalam template yang dikompres tadi terdeteksi, maka PHPMaker akan menanyakan kepada Anda untuk mengkonfirmasikan apakah ingin menimpa versi lama dari template yang sudah diekstrak, atau tidak. Anda harus berhati-hati untuk menentukannya, apalagi jika Anda telah melakukan kostumisasi sebelumnya. Oleh karena itu, selalulah untuk menyalin (backup) File Template yang sudah Anda kostumais tadi terlebih dulu!
Extensions: Alternatif Mengkostumais File Template di PHPMaker April 15, 2014 oleh Masino Sinaga 3 Komentar Pada artikel sebelumnya kita sudah membahas mengenai File Template di PHPMaker. Kita sudah mengetahui bagaimana cara kerja File Template, mulai dari bentuk file yang masih dikompres (ZIP), sampai dalam bentuk file Template Cache (UNZIP), yang siap untuk digunakan oleh PHPMaker dalam mempercepat proses pen- generate-an file skrip aplikasi web. File Template tersebut pun bisa dikostumais secara penuh, supaya sesuai dengan kebutuhan di aplikasi web yang akan kita buat. Hal ini membuktikan bahwa betapa powerful sekaligus fleksibelnya PHPMaker sebagai tools bagi Web Developer untuk membangun aplikasi web dengan cepat, mudah, sekaligus menyenangkan. Tapi tahukah Anda, bahwa di samping melakukan kostumisasi secara langsung keharus File Template di PHPMaker, kita juga dapat melakukan perubahan File Template tersebut tanpa sama sekali menyentuh File Template tadi? Pertanyaannya adalah, apakah bisa? Lalu, bagaimana caranya? Penasaran? Untuk menjawab rasa penasaran tersebut, maka di artikel ini kita akan membahas mengenai Extensions di PHPMaker. Apa itu Extensions? Mengapa perlu ada Extensions? Lalu apa hubungan antara Extensions dengan mengkostumais File Template seperti yang sudah saya uraikan di atas tadi? Seperti yang kita ketahui bersama, bahwa secanggih apapun sebuah code generator seperti PHPMaker, tidak semua Web Developer ingin menggunakan File Template standar yang sudah disediakan oleh PHPMaker. Umumnya mereka ingin mengubah File Template tersebut supaya aplikasi web yang dihasilkan olehnya sesuai dengan kebutuhan. Nah, di PHPMaker, ada sebuah fitur yang berfungsi untuk memudahkan Web Developer menambahkan fungsi-fungsi tertentu ke dalam aplikasi web yang akan di-generate oleh PHPMaker, sehingga aplikasi web tersebut menjadi sesuai dengan kebutuhan. Lagi-lagi, dalam hal ini kita sama sekali tidak menyentuh File Template, tapi hasil akhirnya bisa mengubah (baca: meng-override) kode yang terdapat di dalam File Template. Fitur itu disebut dengan Extensions. Cara kerja Extensions sangatlah sederhana, tapi benar-benar powerful. Anda cukup mengaktifkan Extension tersebut dari menu [Tools] -> [Extensions], lalu generate ulang semua skrip aplikasi web Anda menggunakan PHPMaker. Ya, semudah dan sesimpel itu… dan be tapa menyenangkannya!
Beberapa fakta menarik lainnya mengenai Extensions di PHPMaker adalah, bahwa Extension sebenarnya merupakan hasil akhir dari modifikasi yang dilakukan terhadap File Template, tapi kita sama sekali tidak menyentuh File Template. Karena kita tidak mengubah atau menyentuh langsung File Template, maka semua perubahan terhadap File Template dapat dilakukan dari sisi Extensions. Artinya, bisa disimpulkan bahwa struktur sebuah file Extension persis sama dengan struktur File Template. Artinya lagi, Anda dapat membuat sendiri Extensions yang Anda inginkan, karena ketika Anda menulis kode di sebuah Extension, maka Anda melakukan cara yang sama seperti Anda sedang memodifikasi File Template yang digunakan oleh PHPMaker. File Extensions memiliki ekstensi yang sama dengan File Template, yaitu ZIP file. Setiap file Extension harus memiliki sebuah file XML yang berada di luar file ZIP tadi. File XML ini berisi deskripsi dari Extension, sehingga PHPMaker dapat membacanya dan Pengguna PHPMaker dapat memilih/mengaktifkannya dari menu [Tools] -> [Extensions]. Anda dapat membuka file XML yang terdapat di dalam sub-folder extensions untuk melihat isinya. File Extension yang sudah diekstrak (sama seperti File Template yang sudah diekstrak) bisa Anda lihat pada level folder yang sama dengan folder tempat File Template yang sudah diekstrak berada. Baca juga artikel: Mengenal Lebih Jauh File Template di PHPMaker. Perbedaan utama antara Extensions dan File Template adalah hanya pada lokasi penyimpanannya di dalam folder instalasi PHPMaker. Kalau file Extensions ditempatkan di bawah sub-folder extensions, sedangkan File Template ditempatkan di bawah sub-folder template. Perlu diingat, bahwa meskipun banyak persamaan antara Extension dengan File Template, sebuah Extension BUKANLAH sebuah File Template. Jadi, jangan sekali-sekali memilih Extension sebagai Template untuk men-generate skrip aplikasi web Anda, karena jika hal ini terjadi, maka PHPMaker akan menimbulkan error saat proses generate berlangsung. Beberapa file Extensions yang sudah saya buat dapat Anda lihat dari link ini. File-file Extensions ini sangat berguna untuk membuat aplikasi web yang dibangkitkan oleh PHPMaker menjadi lebih powerful dan profesional bagi Pengguna. Bahkan file-file Extensions tersebut dapat digunakan ulang untuk project PHPMaker lainnya, sehingga dapat menghemat waktu dalam proses development, yang pada akhirnya akan membuat hidup Web Developer semakin menyenangkan. Beberapa fungsi tambahan penting yang bisa kita tambahkan ke dalam aplikasi web yang digenerate oleh PHPMaker melalui fitur Extensions ini adalah: Password Strength Meter dan Strong Password Policydi halaman Registrasi dan halaman Ganti Kata Sandi. Betapa mudahnya juga kita memungkinkan Pengguna aplikasi web kita mengganti/berpindah ( switch) dari layout menu Vertical ke Horizontal, maupun sebaliknya. Sebagai informasi, aplikasi web yang digenerate oleh PHPMaker secara standar hanya menggunakan layout menu Vertical. Anda bisa mengubah ke layout menu Horizontal setelah men- generate ulang skrip aplikasi menggunakan PHPMaker. Dengan Extensions, kita tidak perlu men-generate ulang setiap kali menggantinya dari satu layout ke layout yang lain. Contoh yang lainnya, betapa mudahnya kita menambahkan informasi Syarat dan Ketentuan sebelum Pengguna mendaftarkan akunnya pada halaman Registrasi.
Masih banyak contoh-contoh penambahan fungsi baru lainnya yang selayaknya terdapat di sebuah aplikasi berbasis web. Fungsi-fungsi tambahan itu bisa Anda lihat selengkapnya melalui halaman depan website Demo I Love PHPMaker 10 Demo I Love PHPMaker 11 Demo of I Love PHPMaker 2017. Selain file Extensions yang sudah saya buat di atas, ada beberapa file Extensions yang disediakan oleh PHPMaker. File-file Extensions ini pun hanya tersedia untuk Pengguna PHPMaker yang sudah resmi membeli PHPMaker dan terdaftar di website mereka. Sebagian besar Extension tersebut oleh menyertakan file-file skrip dari pihakmereka ketiga. bukanlah Skrip pihak ketiga tersebut bukanlah dikembangkan Developer PHPMaker. Artinya, bagian langsung dari PHPMaker, sehingga tidak ada dukungan teknis yang diberikan oleh Developer PHPMaker. Untuk informasi lebih lanjut mengenai hal ini, baca topik Third-party Tools di file bantuan yang terdapat di aplikasi PHPMaker.
Database Apa Saja yang Didukung oleh PHPMaker? April 16, 2014 oleh Masino Sinaga 14 Komentar Sampai pada saat artikel ini saya tulis, yaitu pada hari Rabu, 16 April 2014, tools PHP code
generator generate-an atau pembangkitan file skrip yang berasal PHPMaker mendukung dari lima database terkenal saat ini,penyaitu: 1. 2. 3. 4. 5.
MySQL PostgreSQL Microsoft Access Microsoft SQL Server Oracle
Khusus database Microsoft Access dan Microsoft SQL Server hanya bisa dijalankan di sistem operasi Windows. Jika Anda menggunakan Microsoft SQL Server 2000/2005/2008/2012 dan telah menginstal SQL Server 2012 Native Clientdi komputer Anda, maka pilihan Microsoft SQL Server dan Microsoft SQL Server 2005/2008/2012akan tersedia pada pilihan Database Type di menu tab [Database] pada aplikasi PHPMaker. Anda dapat menggunakan tipe database ini untuk koneksi ke SQL Server 2000, 2005, 2008 atau 2012. Anda dapat mengunduh file SQL Server 2012 Native Clientdari situs Microsoft. Lihat bagian System Requirements pada file Bantuan yang disertakan di aplikasi PHPMaker. File native client harus diinstal juga di web server. Penting untuk diketahui, bahwa koneksi ke database via ODBC ( Open DataBase Connectivity) tidak didukung oleh PHPMaker. Jadi, PHPMaker harus langsung menghubungi database tanpa melalui ODBC. Alasan utama mengapa PHPMaker tidak mendukung pemakaian ODBC (berdasarkan informasi yang pernah saya ketahui langsung dari author PHPMaker) adalah karena
PHPMaker harus mengidentifikasi informasi yang sangat spesifik dari object-object di suatu database, seperti Schema, Tables, dan Fields. Setiap database memiliki karakteristik yang berbeda antara yang satu dengan yang lainnya. Ketika PHPMaker berhasil menghubungi database, maka semua informasi yang dibutuhkan dari masing-masing database harus ditangani juga secara spesifik oleh PHPMaker. Sementara di sisi yang lain, jika menggunakan ODBC, informasi seperti object Schema tidak bisa dideteksi dari ODBC. ODBC hanya bisa mendeteksi informasi Tables dan Fields, karena bersifat umum (tidak spesifik kepada database Akibatnya, informasi jika PHPMaker ODBC, makadidia akan mengalami kesulitantertentu). untuk mengekstrak lainnyamenggunakan yang seharusnya spesifik masing-masing database. Hal ini memang berbeda dengan tools PHP code generatorpesaingnya seperti ScriptCase. ScriptCase mendukung koneksi ke database melalui ODBC. Tapi, akibatnya ScriptCase menjadi tidak optimal ketika mengambil informasi yang spesifik dari suatu database. Sementara di sisi yang lain, meskipun terkesan PHPMaker (baru) hanya tergantung kepada lima database di atas tadi, tapi PHPMaker terlihat jauh lebih serius dan sungguh-sungguh dalam mengenali dan mengekstrak informasi detail dari setiap database yang dihubunginya. Sekarang mari kita bandingkan antara PHPMaker dengan ScriptCase dengan sama-sama menggunakan contoh database Microsoft SQL Server. Ketika PHPMaker memuat file project (.pmp), dia akan mengekstrak informasi dari database SQL Server tadi. Katakanlah kita menggunakan database Schema Microsoft SQLPHPMaker Server yang dalam hal ini bisa membagi-bagi databasenye ke dalam beberapa . Nah, memiliki kemampuan untuk mendeteksi level Schema di SQL Server tadi. PHPMaker memungkinkan Penggunanya untuk memilih Schema tertentu pada menu tab [Database]. Sementara ScriptCase tidak memiliki kemampuan ini, sehingga tidak optimal menggunakan informasi dari database yang digunakannya. Jadi, jangan senang dulu jika tools PHP code generatoryang Anda gunakan bisa menghubungi database melalui koneksi ODBC. Karena konsekuensinya pasti ada. Biasanya, ada fitur yang tidak bisa dioptimalkan dari database tersebut. Salah satunya ya seperti contoh Schema di atas tadi. Dan pasti ada pertimbangan lainnya yang sudah dipikirkan dengan matang oleh author/developer PHPMaker, mengapa akhirnya mereka tidak mendukung ODBC. Untuk melihat bagaimana cara menghubungi setiap database menggunakan PHPMaker, silahkan baca topik Database Setup dari file Bantuan yang disediakan oleh aplikasi PHPMaker. Ada dua informasi penting lainnya yang perlu kita ketahui seputar pengaturan koneksi Database dari PHPMaker. Mereka adalah SQL Identifier Quote Characterdan Load tables dynamically. Pilihan ini ada di dalam menu tab [Database] aplikasi PHPMaker. Hampir semua database mendukung quoting of identifiers (database, table, and field names) dengan sebuah karakter. Jika identifier merupakan kata yang sifatnya terbatas atau mengandung karakter khusus atau mengandung spasi, maka Anda harus mengapitnya ( quote) dengan karakter tertentu. Dalam banyak kasus, Anda tidak perlu mengganti pengaturan [SQL Identifier Quote Character] ini. PHPMaker akan menggunakan standar karakter pengapit untuk database Anda.
Meskipun demikian, jika untuk beberapa alasan tertentu Anda perlu menentukan secara eksplisit karakter tersebut, pilih [SQL Identifier Quote Character] yang sesuai dengan kasus Anda. Secara standar, semua tabel di database akan dimuat. Hal ini memang nyaman, tapi ketika memuat dan melakukan proses sinkronisasi antara database dengan project PHPMaker, maka akan mengakibatkan lamanya waktu yang dibutuhkan jika database Anda memiliki jumlah Table dan Field yang banyak. Jika pilihan ini diaktifkan, maka sebuah tabel hanya akan dimuat ketika Anda memilihnya dari pane Database di sebelah kiri aplikasi PHPMaker. Jika Anda hanya menggunakan sedikitAnda Table sajacepat. dari banyaknya Table yangfitur ada di maka inicentang dapat membuat pekerjaan lebih Untuk mengaktifkan ini,sana, cukup berifitur tanda [Load tables dynamically]SEBELUM Anda menekan tombol [Connect] di menu tab [Database].
Menerapkan Regional Setting di Aplikasi Web yang Dibangkitkan oleh PHPMaker April 17, 2014 oleh Masino Sinaga 6 Komentar Dalam sebuah aplikasi berbasis web, kita harus bisa menentukan Regional Settings atau pengaturan yang terkait dengan lokal/daerah di mana aplikasi tersebut dijalankan. Hal ini bergunaangka untukatau menentukan style atau tampilan data yanginimerupakan nilai numerik, seperti nominal besar uang.format Pengaturan-pengaturan bisa berupa tanda pemisah ribuan, tanda pemisah desimal, simbol mata uang, tanda untuk nilai positif, tanda untuk nilai negatif, dan lain sebagainya. Ada dua kemungkinan yang bisa diterapkan. Pertama, bagaimana jika aplikasi web yang kita buat menerapkan pengaturan yang sama untuk semua bahasa, atau yang Kedua, bagaimana jika aplikasi web tersebut menggunakan pengaturan yang berbeda untuk setiap bahasa.
Tools PHP Code GeneratorPHPMaker sudah mengantisipasi mengenai hal ini. PHPMaker menggunakan localeconv() yang mengembalikan data berdasarkan data locale yang ditentukan oleh setlocale(). Sistem yang berbeda memiliki skema penamaan yang berbeda untuk data locale. Jika Anda tidak tahu teks yang tepat untuk data locale di server Anda, atau Anda ingin menimpa system locale dan menggunakan pengaturan locale Anda sendiri, cukup klik menu tab PHP, lalu di sub-tab General Options, beri tanda centang di sebelah kiri tulisan Set locale, lalu klik tombol […], dan terakhir masukkan pengaturan locale yang Anda inginkan. Disarankan agar Anda selalu mengacu ke website PHP mengenai fungsi localeconv() untuk informasi lebih lanjut cara mengisi nilai dari pengaturan ini. Perlu diingat, bahwa jika Anda mengaktifkan Multi-Language, JANGAN SEKALI-SEKALI menggunakan pengaturan ini kecuali semua bahasa berbagi pengaturan locale yang sama. Setiap bahasa memiliki pengaturan locale masing-masing, dan Anda harus menentukan pengaturan
locale untuk setiap bahasa dari dalam file XML Language yang terdapat di sub-folder languages dari instalasi PHPMaker. Contoh, jika Anda membuka file english.xml, maka cukup fokus kepada blok kode berikut:
Sedangkan contoh untuk file indonesian.xml, bisa Anda lihat seperti di bawah ini:
Seperti yang dijelaskan oleh komentar pada frase use_system_locale di atas, Anda harus mengeset nilainya menjadi nol (0) untuk menonaktifkan system locale dan menggunakan pengaturan yang berada di baris bawahnya.
Mudahnya Menerapkan Master/Detail di Aplikasi Web yang Dibangkitkan oleh PHPMaker April 18, 2014 oleh Masino Sinaga 15 Komentar Ketika Anda membuat relasi Master/Detail, Anda menghubungkan dua buah Tables sehingga semua record dari salah satu tabel (tabel Detail) selalu terkait dengan satu record di tabel lainnya (tabel Master). Setiap Table dapat memiliki beberapa table Master dan juga beberapa table Detail. PHPMaker sebagai tools PHP Code Generatorsudah menyediakan fitur Master/Detail yang memungkinkan Web Developer dapat membuat halaman yang terdiri dari beberapa tabel yang memiliki relasi Master/Detail dengan mudah, cepat, dan menyenangkan. Fitur Master/Detail berada di bawah menu tab Table. Supaya Anda dapat menampilkan menu tab Table, maka pastikan Anda sudah memilih (klik) salah satu object Table dari panel Database. Anda dapat membuat relasi Master/Detail (One-To-Many) di antara dua buah tabel dengan cara sebagai berikut: 1. Pilih sebuah Table di grid table, 2. Di panel [Master/Detail] pada bagian paling bawah sebelah kanan, klik [Modify…] untuk menampilkan editor visual relasi Master/Detail. 3. Klik [Add table] untuk menambahkan table Master dan Detail ke dalam diagram. 4. Buat relasi di antara mereka dengan cara menyeret (drag) field di table Master (field kunci di table Master) ke field Detail (field foreign key di table Detail). Jika ada lebih dari satu field yang ingin direlasikan, ulangi langkah tadi sampai semua relasi berhasil dibentuk. Jika Anda ingin menghapus relasi suatu Master/Detail, pilih link pada diagram, lalu klik [Delete]. Setelah itu, klik tombol [OK] untuk mengkonfirmasikan. Sejak versi 10, PHPMaker menambahkan tiga buah fitur baru di Master/Detail yang memungkinkan Web Developer menentukan apakah dalam relasi Master/Detail tersebut diterapkan beberapa aturan untuk menjaga integritas data antara table Master dan Detail. Kalau dulu Anda pernah mencoba Referential Integrity, Cascade Delete, dan Cascade Update di database Microsoft Access, maka seperti itu jugalah fitur yang akan kita bahas berikut.
Referential Integrity
Fitur ini memaksa Pengguna tidak dapat menambah/mengubah sebuah record di table Detail kecuali foreign key mengacu ke sebuah record yang valid di table Master. Pengguna aplikasi web Anda akan melihat pesan bahwa foreign key dari record yang akan ditambah/diubah tidak mengacu ke record yang valid di table Master.
Cascade Delete Fitur ini mengatur jika sebuah record di table Master dihapus, maka semua record yang terkait di table Detail akan dihapus juga. Sebelum fitur ini ditambahkan di PHPMaker, maka Anda harus menangani kemungkinan tersebut dengan menggunakan Server Events di PHPMaker. Perlu diingat bahwa jika Anda sudah menggunakan ON DELETE CASCADE pada Table di database, maka Anda tidak perlu mengaktifkan fitur ini. Hanya gunakan fitur ini jika database Anda tidak mendukung ON DELETE CASCADE.
Cascade Update Fitur ini akan mengatur jika kunci utama primary key untuk sebuah record yang berada di table Master diubah/diperbarui, maka semua record yang terkait di table Detail akan diperbarui. Sebelum fitur ini ditambahkan di PHPMaker, maka Anda harus menangani kemungkinan tersebut dengan menggunakan Server Events di PHPMaker. Perlu diingat bahwa jika Anda sudah menggunakan ON UPDATE CASCADE pada Table di database, tidak perlu mengaktifkan pengaturanCASCADE. ini. Hanya gunakan fitur ini jika database yang Anda gunakan tidak mendukung ON UPDATE Tidak berhenti di situ saja. Sejak PHPMaker versi 10, Anda sebagai Web Developer dapat mengoptimalkan fitur Master/Detail Add untuk membuat form untuk menginput data yang melibatkan satu table Master dengan beberapa table Detail. Hal yang sama juga dengan fitur Master/Detail Edit untuk mengubah data yang melibatkan satu table Master dengan beberapa table Detail, dan Master/Detail View untuk menampilkan data yang melibatkan satu table Master dengan beberapa table Detail. Bahkan, PHPMaker juga memungkinkan Pengguna aplikasi web Anda nantinya menambahkan, mengubah, dan menghapus beberapa record di bagian Detail dalam format grid table (Grid-Add dan Grid-Edit), sebelum akhirnya menyimpan semua perubahan tadi ke database cukup dengan sekali klik saja.
Custom View Tags: Cara Mudah Mengkostumais Nilai Field dari PHPMaker April 19, 2014 oleh Masino Sinaga 6 Komentar Sejak versi 10, PHPMaker memperkenalkan sebuah fitur baru bernama Custom View Tags. Fitur ini pun semakin membuktikan lagi bahwa PHPMaker adalah tools PHP code generator
yang benar-benar powerful dan fleksibel. Custom View Tags pada prinsipnya sama dengan Extensions, kecuali fungsinya yang digunakan untuk menampilkan nilai dari sebuah Field di halaman List dan View, menggunakan kode Anda sendiri. Ada lima buah Custom View Tags yang disediakan oleh aplikasi PHPMaker: 1. Flash Files 2. Google Maps 3. 4. Barcode QR Code 5. YouTube Videos Sama seperti Extensions yang memiliki struktur yang sama dengan File Template, Custom View Tags memiliki struktur yang sama dengan Extensions. Anda pun dapat memodifikasi mereka dengan cara yang sama. File Custom View Tags yang sudah diekstrak ditempatkan pada subfolder yang sama dengan lokasi file Extensions diletakkan, yaitu sub-folder extensions. Subfolder ini ditempatkan di bawah folder tempat File Template diekstrak di folder Documents. Folder Documents adalah folder tempat Anda menaruh file-file pribadi di sistem operasi Windows. Sebagai contoh, di Windows 7, lokasi standar folder Documents adalah C:\Users\\Documents, di mana C adalah drive tempat Windows diinstal, dan adalah user yang sedang login di Windows tersebut. Format awal dari file Customdari View Taginstalasi adalah ZIP file. FileSetiap ini harus ditempatkan di bawah sub-folder customviewtags folder PHPMaker. Custom View Tag harus memiliki sebuah file XML yang diletakkan di luar dari file ZIP tadi. File XML ini berisi deskripsi atau penjelasan mengenai Custom View Tag tersebut, sehingga PHPMaker dapat mengenali dan memuatnya melalui jendela pengaturan Fields. Anda dapat membuka file XML dari sub-folder customviewtags untuk melihat isinya. Anda disarankan untuk membaca topik Field Setup dari file Bantuan yang disediakan oleh aplikasi PHPMaker, untuk mempelajari bagaimana cara memilih Custom View Tag untuk sebuah Field. Perlu diingat juga bahwa semua Custom View Tags disediakan sebagai contoh untuk menunjukkan kepada Anda bagaimana mengkostumais dan mengembangkan Template saja. Tools pihak ketiga yang digunakan di dalamnya tidak dibuat oleh Developer PHPMaker, dan mereka bukanlah bagian dari aplikasi PHPMaker, sehingga tidak ada dukungan teknis yang tersedia untuk Custom View Tag.
Custom Templates: Cara Mudah Mengubah Layout Field di Aplikasi Web yang Dibuat dengan PHPMaker
April 20, 2014 oleh Masino Sinaga 3 Komentar Di sebuah aplikasi yang berbasis web, adalah hal yang wajar jika Fields ditampilkan dalam bentuk tabular. Artinya, Label yang berisi penjelasan dari suatu field akan ditempatkan pada posisi sebelah kiri, sedangkan Data atau Elemen yang terdapat di sebuah form (seperti TextBox, ComboBox, Radio Button, dan sebagainya) untuk menginput data ke field tersebut berada di sebelah kanannya. Nah, kadang-kadang kita ingin mengubah layout field yang standar tadi dan biasa ditampilkan pada halaman View, Add, dan Edit agar sesuai dengan kebutuhan kita. Katakanlah kita ingin agar adalah, posisi Label berada dibisa atas diterapkan dari posisi di Data atau Elemen di sebuah form. Nah, pertanyaannya apakah hal ini aplikasi web yang dibangkitkan oleh PHPMaker? Sejak versi 9, PHPMaker memperkenalkan sebuah fitur baru bernama Custom Templates. Fitur ini memungkinkan Web Developer untuk mengubah layout tampilan field di ketiga halaman tadi dengan cepat. Web Developer tidak perlu melakukan kostumisasi file Template. Web Developer juga tidak perlu mengubah kode di file skrip yang sudah dibangkitkan oleh PHPMaker. Semuanya dapat dilakukan dengan sangat mudah dari dalam project PHPMaker. Artinya, kode yang digunakan di Custom Templates akan disimpan ke dalam file PHPMaker project (.pmp), dan dapat dimuat kembali ketika Anda menjalankan file project tadi jika ingin mengubahnya lagi di waktu mendatang. Penting untuk diingat, bahwa istilah Custom Templates yang kita gunakan di artikel ini berbeda Customizing Templates dengan istilah . Istilah yang kedua mengacu kepada kegiatan untuk melakukan kostumisasi file Template yang digunakan oleh PHPMaker. Sedangkan istilah pertama mengacu kepada Template yang bisa dikostumisasi, tanpa harus menyentuh atau mengubah file Template. Bisa dikatakan, bahwa Custom Templates mirip sekali dengan salah satu fitur utama di sebuah PHP Framework, yaitu: View dari konsep MVC ( Model-ViewController). Jadi, dengan menaruh kode Anda di bagian Custom Templates dari PHPMaker, Anda bisa mengubah tampilan (View) dari layout Field dan Data yang berada di suatu form atau halaman.
Jika Anda mendefiniskan kode di bagian Custom Template di file project Anda, maka PHPMaker akan memisahkan kode asli dalam banyak Template kecil di sisi klien. Template yang berada di sisi klien adalah kode HTML yang diapit dengan tag <script type=”text/html”> dan . Karena browser tidak tahu bagaimana mengeksekusi skrip “text/html”, maka browser akan mengabaikannya. Jadi hal ini memungkinkan untuk menyusun kembali HTML dari Template-template kecil di sisi klien menggunakan JavaScript berdasarkan Custom Template yang Anda sediakan. Dengan kata lain, dia cukup mengatur ulang bagian HTML yang sudah ada di browser. Selama proses pembangkitan skrip berlangsung, PHPMaker mengkonversi Custom Template Anda ke Template yang berada di sisi klien dan menggunakan JavaScript untuk melakukan render pada Template. Template yang berada di sisi klien di- rendered oleh JsRender (lihat topik Third-Party Tools dari file Bantuan di PHPMaker) yang merupakan mesin template JavaScript pihak ketiga yang dioptimasi untuk melakukan proses render string dengan performansi tinggi. Skrip yang dibangkitkan hanya menggunakan fitur Template Composition untuk me-render
HTML dari Template eksternal lainnya. Custom Template Anda meskipun demikian dapat membuat penggunaan fitur JsRender lainnya jika Anda membutuhkannya. (Catatan: JsRender saat ini masih dalam status Beta, jika Anda menggunakan fitur-fiturnya secara langsung, Anda harus memperhatikan adanya beberapa perubahan yang terjadi di waktu mendatang.). Custom Templates mengijinkan Web Developer untuk mengkostumisasi layout Fields yang awalnya ditempatkan di kode HTML tabel utama dari sebuah halaman. Custom Templates tidak dapat mengkostumisasi HTML yang berada di luar area tersebut. Adapun area-area yang dapat dikostumisasi dengan menggunakan Custom Templates adalah sebagai berikut: 1. CustomTemplateSearch, area panel Cari yang berada di bagian atas dari halaman List 2. CustomTemplateHeader, area header atau judul kolom dari tabel utama yang berada di halaman List. Area ini juga termasuk yang terdapat di halaman konfirmasi sebelum melakukan penghapusan record ( Delete). 3. CustomTemplateBody, area badan (Body) dari tabel utama yang berada di halaman List. Area ini juga termasuk yang terdapat di halaman konfirmasi sebelum melakukan penghapusan record (Delete). 4. CustomTemplateFooter, area kaki (Footer) dari tabel utama yang berada di halaman List. Area ini biasanya berisi nilai jumlah (SUM) dari data angka di suatu kolom. Area ini juga termasuk yang terdapat di halaman konfirmasi sebelum melakukan penghapusan record (Delete). 5. CustomTemplate, area utama yang berada di halaman Add, Copy, Edit, Search, dan View
Supaya kode yang terdapat di dalam Custom Templates bisa dikenali oleh PHPMaker sebagai kode yang berasal dari Custom Templates, maka harus ada penanda atau Tag khusus yang digunakan. PHPMaker mendukung Tag khusus yang dibuat untuk kode di Custom Template. Karena JsRender menggunakan Tag yang diapit dengan {{ dan }} (kurung kurawal ganda), supaya Anda dapat menggunakannya juga di Custom Templates, maka Tag di Custom Template menggunakan {{{ dan }}} (tiga buah kurung kurawal) untuk membedakannya. Tag Custom Template akan dikonversi menjadi tag JsRender selama proses pembangkitan skrip, dan mereka hanya dapat digunakan di antarmuka PHPMaker. Mereka tidak dapat digunakan di tempat lainnya seperti di file Template (ZIP) atau di file skrip yang sudah dibangkitkan oleh PHPMaker.
Mudahnya Menimpa Global Setting dengan Table Setting di PHPMaker April 21, 2014 oleh Masino Sinaga 3 Komentar Satu lagi fakta dari sekian banyaknya fakta di PHPMaker, yang semakin membuktikan bahwa betapa mudahnya menggunakan PHPMaker untuk membangun aplikasi berbasis web. PHPMaker mengelompokkan pengaturan-pengaturan yang sering digunakan di aplikasi web ke dalam dua bagian besar. Bagian pertama adalah Global Settings, dan bagian kedua adalah Table
Settings. Enaknya, pengaturan di level Table dapat menimpa pengaturan di level Global, apalagi tidak semua Table harus menggunakan pengaturan dari level Global.
Beberapa pengaturan yang paling sering digunakan di aplikasi web di antaranya adalah: Records per page atau Jumlah Record per halaman yang secara standar akan ditampilkan pada halaman List, Selectable page sizes atau Pilihan nilai yang digunakan untuk menentukan jumlah record per halaman, Paging section style atau Gaya tampilan Paging atau pengaturan halaman, Paging section at top atau Posisi halaman di atas tabel, Paging section at bottomatau Posisi halaman di bawah tabel, dan masih banyak pengaturan-pengaturan lainnya. Semua pengaturan-pengaturan tersebut bisa Anda tentukan dengan mudah dan cepat dari bagian Global Settings. Cukup buka menu tab PHP, lalu klik tab Page Options (Global), lalu silahkan ubah pengaturan yang Anda inginkan. Manfaat dari menggunakan pengaturan yang bersifat global adalah: Anda tidak perlu mengatur pengaturan yang sama dari level Table di PHPMaker. Hal ini sangat terasa jika Anda memiliki banyak object Table atau View di PHPMaker. Meskipun demikian, ada kalanya Anda ingin mengatur pengaturan tertentu hanya untuk tabel tertentu pula. Jika ini yang Anda inginkan, maka cukup timpa pengaturan yang sudah ditentukan dari level Global tadi melalui pengaturan di level Table. Caranya, pilih salah satu Table yang Anda inginkan dari panel Database, lalu klik tab Table di panel sebelah kanan, lalu dari bagian Table-specific Optionshapus tanda centang di bagian Use global settings, dan setelah itu silahkan sesuaikan pengaturan yang Anda inginkan di bagian bawahnya. Terakhir, jangan lupa untuk men-generate ulang semua file skrip seperti biasa dari PHPMaker. Semua pengaturan yang Anda tentukan baik melalui level Global maupun level Table akan disimpan di file project PHPMaker. Artinya, Anda tidak perlu mengingat-ingat atau mencatat di file tertentu mengenai pengaturan-pengaturan apa saja yang sudah Anda tentukan untuk sebuah project. Biarkan PHPMaker yang mengingat lalu menyimpannya di file project, dan ketika Anda ingin bekerja lagi di project tersebut di waktu mendatang, maka Anda cukup memuat file project ini dari PHPMaker, dan PHPMaker akan menampilkan kembali pengaturan-pengaturan tadi ke aplikasi PHPMaker persis seperti kondisi terakhir Anda bekerja di project tadi. Kabar baik lainnya lagi adalah, logic dari pengaturan ini pun berlaku di Masino Extensions, extensions yang saya buat untuk PHPMaker.
Betapa Mudah dan Lengkapnya Pengaturan Field di PHPMaker April 22, 2014 oleh Masino Sinaga 9 Komentar Di artikel sebelumnya kita sudah membahas mengenai betapa mudahnya menentukan pengaturan-pengaturan yang tersedia di level Global maupun level Tables untuk mengkostumais aplikasi web sebelum di- generate oleh tools PHP code generatorPHPMaker. Bahkan, melalui
pengaturan level Tables tersebut, kita sebagai Web Developer dapat dengan mudah menimpa pengaturan yang sudah ditentukan di level Global, khususnya pada beberapa tabel yang tidak ingin menggunakan pengaturan dari level Global. Setelah kita membahas level Tables, maka mari kita turun ke level yang lebih detail, yaitu level Fields. PHPMaker telah menyediakan pengaturan yang sangat lengkap di level ini. Beberapa pengaturan yang bisa ditentukan dari level ini, seperti: apakah Anda ingin men-generate fieldfield tertentu di halaman List, Add, Copy, Delete, Edit, Multi-Update, Search. Anda juga bisa Audit Trail, dipun menentukan,Audit apakah field-field tertentu akan ke dalam mana pengaturan Trail ini bisa ditentukan daridisertakan level Tables . Bahkan, PHPMaker sudah menyediakan fitur yang memungkinkan Anda untuk menentukan nilai yang akan otomatis memperbarui suatu field jika Pengguna aplikasi web nantinya tidak mengisi data saat menambah atau mengubah record.
Salah satu fitur di level Fields yang saya rasakan sangat membantu Web Developer dalam mempercepat pengembangan sebuah aplikasi berbasis web adalah fitur Lookup. Anda sebagai Web Developer dapat menentukan dan mengatur dengan mudah pada field-field mana saja yang bertindak sebagai Lookup Field; ke tabel mana field-field tersebut melakukan lookup, field-field apa saja yang berperan sebagai Link field dari Lookup Table, dan field-field mana saja yang berperan sebagai Display Fields. Bahkan, PHPMaker sudah menyediakan sampai empat buah field yang bisa ditentukan sebagai Display Fields. Hal ini sangat berguna jika Anda ingin menampilkan lebih dari satu field pada elemen Combobox di antar-muka aplikasi web yang akan Anda bangun nantinya. Tidak hanya berhenti di situ saja, PHPMaker juga menyediakan kemudahan bagi Web Developer untuk menentukan field-field Lookup mana saja yang akan dihubungkan untuk menampilkan data yang saling terkait antara satu dengan lainnya. Fitur ini terkenal di PHPMaker dengan istilah Dynamic Selection List. Contoh yang paling sering kita temui di suatu aplikasi adalah, seperti ketika Pengguna memilih data suatu wilayah tertentu, maka harus dimulai dengan memilih data dari level tertinggi sampai ke level terendah. Pengguna harus memulai memilih dari level Propinsi, Kabupaten/Kota, Kecamatan, sampai dengan level terendah: Keluarahan/Desa. Data Keluarahan/Desa tidak bisa dipilih sebelum Pengguna memilih data Kecamatan, dan data Kecamatan tidak bisa dipilih sebelum Pengguna memilih data Kabupaten/Kota, dan data Kabupaten/Kota tidak bisa dipilih sebelum Pengguna memilih data Propinsinya. Semuanya itu bisa dilakukan dengan sangat mudah cukup dengan hanya mengatur beberapa property milik field-field terkait. Masih banyak pengaturan-pengaturan level Fields lainnya yang tidak bisa diuraikan di sini sampai Anda mencobanya sendiri. Dan yang pasti, semua pengaturan di level Fields yang sudah kita tentukan tadi, akan disimpan ke dalam file project PHPMaker. Anda dapat memuat file project ini kembali di waktu yang akan datang, tanpa harus mengingat-ingat kembali di file skrip mana Anda sudah menulis kode yang terkait dengan pengaturan di level Fields untuk tabel-tabel tertentu. Serahkan semuanya urusan ini kepada PHPMaker. Biarkan PHPMaker yang menyimpan dan memuatnya kembali ketika Anda ingin bekerja dengan file project tersebut di waktu mendatang.
Wouw! Sungguh, betapa nikmatnya bekerja dengan PHPMaker.
Nikmatnya Mengimplementasikan Business Logic Sendiri di PHPMaker April 23, 2014 oleh Masino Sinaga Tinggalkan Komentar Tiba saatnya kita membahas fitur yang paling populer dan memanjakan hidup Web Developer dalam membangun aplikasi berbasis web. Fitur itu dikenal dengan istilah Server Events and Client Scripts. Sebagai Web Developer, Anda dapat mengimplementasikan business logic sendiri dengan menulis kode PHP di bagian Server Events dan menulis kode Javascript atau jQuery di bagian Client Scipts dari dalam PHPMaker. Anda tidak perlu sama sekali menyentuh file skrip yang nantinya akan dibangkitkan oleh PHPMaker. Semuanya cukup Anda lakukan dari bagian ini. Beberapa Server Events yang terkenal di PHPMaker, di antaranya: 1. Row_Rendered Untuk mengkostumais tampilan record di setiap baris pada warna halaman List, Add, Edit, Delete, View, dan Search. Misalnya, Anda bisa mengubah suatu pada tabel, cell warna baris, warna kolom, format huruf di record berdasarkan kriteria tertentu, dan masih banyak lagi… 2. Row_Inserting Untuk menambahkan business-logic Anda sendiri ketika sebuah atau beberapa record sedang ditambahkan ke suatu tabel di database. Anda bisa menulis kode PHP di sini untuk menambah, mengubah, menghapus data di satu tabel atau beberapa tabel lain berdasarkan record yang sedang dimasukkan tadi. 3. Row_Updating Untuk menambahkan business-logic Anda sendiri ketika sebuah atau beberapa record sedang diperbarui pada suatu tabel di database. Anda bisa menulis kode PHP di sini untuk menambah, mengubah, menghapus data di satu tabel atau beberapa tabel lain berdasarkan record yang sedang diubah tadi. Terlalu banyak Server Events maupun Client Scripts jika dibahas satu per satu di artikel ini. Meskipun demikian, jangan khawatir, karena di beberapa artikel mendatang, saya akan mengupas tuntas setiap Server Events dan Client Scripts disertai dengan contoh-contoh kode yang bisa Anda terapkan di project PHPMaker Anda. Sama seperti ketika Anda melakukan pengaturan di level Global, Tables, maupun Fields, maka kode yang Anda tulis di bagian Server Events maupun Client Scripts akan disimpan di file project PHPMaker Anda, sehingga Anda dapat memigrasikan project Anda ke Template atau versi yang akan datang dengan sangat mudah. Fitur ini dapat mengurangi kebutuhan
mengkostumisasi file Template. Selain itu, fitur ini juga memungkinkan untuk membuat kemungkinan maksimum bagi Anda untuk mengkostumisasi dan menciptakan fitur-fitur Advanced di project PHPMaker Anda. Setelah Anda memuat database, maka object-object database (seperti Tables, Views, Custom Views, dan Reports) akan ditampilkan di panel sebelah kiri dari aplikasi PHPMaker. Panel ini dikenal dengan panel Database. Cukup klik pada salah satu table untuk membuka halaman Field Setup lalu pilih tab Code (yang mengandung teks Server Events, Client Scripts and Custom Templates).
Catatan: Untuk penyederhanaan istilah, kita menggunakan table pada artikel ini untuk mengacu kepada object apapun yang terdapat di database dan digunakan di project PHPMaker. Sebuah object database di PHPMaker dapat berupa sebuah Table, View, Custom View, atau Report. Secara umum, baik Server Events maupun Client Scripts masing-masing dibagi ke dalam tiga kelompok, yaitu sebagai berikut:
Server Events 1. Global Berisi event yang dapat diaplikasikan untuk semua halaman PHP 2. Table-Specific Kumpulan dari event untuk table tertentu, event dapat diaplikasikan hanya untuk
table yang sedang dipilih dari panel Database 3. Other Berisi event yang hanya dapat diaplikasikan untuk beberapa halaman yang sering digunakan, seperti Login, Logout, Registrasi, dsb.
Client Scripts 1. Global Tempat Anda menyertakan file Javascript yang akan muncul di semua halaman yang memiliki header dan footer. 2. Table-Specific Tempat Anda menulis kode Javascript untuk table tertentu, mereka akan disertakan hanya untuk table yang sedang dipilih dari panel Database 3. Other Berisi kode Javascript yang hanya dapat diaplikasikan untuk beberapa halaman yang sering digunakan, seperti Login, Logout, Registrasi, dsb.
Untuk mulai menambahkan kode Anda ke bagian Server Events atau Client Scripts, pastikan Anda sudah memilih salah satu item dari jendela treeview, lalu masukkan kode Anda dari editor kode yang tersedia di sebelah kanannya. Editor kode ini mendukung Find and Replace. Tekan Ctrl-F untuk membuka jendela dialog to Find, dan tekan Ctrl-H untuk membuka jendela dialog Replace.
Anda dapat mengklik tombol [Clear] untuk membatalkan kode yang baru saja Anda masukkan dan mereset kode Template untuk Server Event atau Client Script tersebut. Hal ini berguna jika Anda ingin mengembalikan posisi kode di suatu Server Event atau Client Script seperti semula.
Custom View, Apa Bedanya dengan Database View, dan Kapan Harus Menggunakannya di PHPMaker? April 24, 2014 oleh Masino Sinaga 8 Komentar Berbicara tentang PHPMaker memang tidak akan ada habis-habisnya. Ada saja bahan yang bisa di-share dan layak untuk diketahui oleh seluruh Web Developer. Sekalipun bagi mereka yang sudah mengetahui PHPMaker, apalagi yang belum mengetahui sama sekali, sayang untuk dilewatkan. Dan yang uniknya, topik yang dibahas itu selalu menyenangkan. Terbukti bisa membuat pekerjaan di bidang Web Development menjadi jauh lebih mudah dan cepat. Bahkan bisa membuat hidup Web Developer menjadi sangat menyenangkan. Sebelum mengenal PHPMaker, rasanya dulu tidak semangat jika ingin membuat sebuahberulangaplikasi web. Terbayang betapa banyak dan rumitnya hal-hal yang serupa yang harus dilakukan ulang, apalagi harus dikerjakan secara manual. Wuiiiih! Pokoknya, gak jaman lagi deh pakai cara-cara konvensional seperti itu! Sudah hampir dua bulan terakhir saya selalu menyempatkan diri untuk menulis artikel mengenai PHPMaker di situs ini. Sekalipun di kantor disibukkan dengan pekerjaan rutin, waktu untuk mengulas tentang PHPMaker selalu saya alokasikan secara khusus. Entah itu sore menjelang pulang, atau malam hari sebelum tidur. Minimal satu artikel dalam satu hari. Semakin lama saya mengenal PHPMaker, semakin ada saja hal-hal baru yang sering kali tidak saya duga sudah tersedia di PHPMaker. Dari sini saja sudah dapat membuktikan bahwa tools PHP code generator seperti PHPMaker memang sangat cocok dan layak digunakan oleh para Web Developer. Kadang-kadang, artikel yang saya tulis tidak mengenal tempat. Seperti contohnya artikel ini, saya tulis di atas sebuah bus yang membawa saya dari Bandung ke Bekasi (memang siapa yang nanya, ya? hehehe…). Baiklah kalau begitu. Kali ini saya akan membahas dan mengulas mengenai Custom View di PHPMaker. Apa itu Custom View? Kapan sebaiknya kita menggunakan Custom View? Apakah Custom View sama dengan View yang terdapat di database ( Database View)?
Custom View, seperti namanya, merupakan View yang bisa dikostumais dari dalam project PHPMaker. Custom View berisi sebuah pernyataan ( statemen) SQL yang paling sederhana, yaitu SELECT. Dia tidak dirancang untuk menggantikan View di dalam Database. Artinya, PHPMaker memiliki kemampuan untuk membuat View yang tidak disimpan di dalam database, tetapi disimpan di dalam file project PHPMaker. Artinya lagi, Custom View cocok digunakan jika database yang digunakan oleh project PHPMaker tidak mendukung View (memang masih ada, gitu? hehehe…). Meskipun PHPMaker pemakaian Custom View, View). PHPMaker juga mendukung penggunaan View yangmendukung dibuat di dalam Database (Database Seperti yang sudah saya sebutkan sekilas di atas, bahwa Custom View hanya bisa mengandung sebuah pernyataan SELECT yang sederhana saja. Jika Anda membuat Custom View yang mengandung pernyataan SELECT yang memiliki klausa yang lebih kompleks, atau yang memiliki pernyataan UNION daripada sebuah pernyataan SELECT saja, maka fungsi pengurutan sorting atau pencarian tidak akan berfungsi. Untuk kasus seperti itu, maka Anda sebaiknya mengganti Custom View menjadi View yang dibuat di database. Enaknya, PHPMaker memiliki kemampuan untuk mengkonversi Custom View menjadi View di database, selama Anda diberikan hak akses untuk membuat View di database menggunakan statement CREATE VIEW. Setelah memuat database dari file project PHPMaker, maka object-object terdapat di dalam PHPMaker (Tables, Views, Custom Views, dan Reports) akan ditampilkanyang di panel sebelah kiri (panel Database). Untuk mengkonversi sebuah Custom View menjadi View di dalam database, cukup klik kanan pada Custom View yang Anda inginkan di panel Database tadi, lalu pilih [Convert Custom View to View]. Sebagai alternatif, Anda juga dapat memilih Custom View, lalu klik [Edit] di menu utama, kemudian pilih [Convert Custom View to View]. Setelah membuat View, pengaturan Fields dan Custom View yang ada akan dipindahkan ke View yang baru tersebut. Jika project PHPMaker Anda terhubung ke database development, ekspor View yang baru tersebut lalu buat ulang mereka pada database production selama proses pengembangan berlangsung. Untuk membuat sebuah Custom View dari PHPMaker, cukup klik kanan di area panel Database lalu pilih [Add Custom View]. Jika database yang Anda gunakan mendukung Database View (View yang bisa dibuat dari dalam Database), maka PHPMaker akan menampilkan sebuah pesan yang berisi saran untuk membuat View dari dalam Database (PHPMaker sangat tidak menyarankan Custom View). Jika Database yang kita gunakan memang mendukung Database View, maka sebaiknya menggunakan Database View, dan tidak menggunakan Custom View. Anda harus mengkonfirmasikan apakah ingin membuat Database View atau tetap ingin membuat Custom View melalui pesan yang muncul tadi. Cara alternatif untuk membuat sebuah Custom View adalah dengan mengklik [Edit] di menu utama, lalu pilih [Add Custom View]. Selanjutnya jendela pengaturan Custom View akan muncul. PHPMaker akan otomatis memberikan nama Custom View yang baru dengan nama
sementara; dengan format: CustomView, di mana n adalah nilai angka/integer. Jika Anda ingin mengganti namanya, cukup masukkan nama baru dari bagian [Custom View name] pada toolbar utama jendela tadi. Sangat disarankan agar Anda menggunakan Pembangun Kueri secara Visual yang sudah disediakan oleh PHPMaker (Built-in Visual Query Builder) untuk membuat SQL, untuk menghindari adanya salah sintaks. Dengan cara ini, maka Anda dapat memilih field-field mana saja yang akan Anda ikutkan di dalam Custom View tersebut. Antarmuka Query Builder bersifat
intuitive drag-n-drop. Anda bahkan tidak perlu sama sekali dan mendukung mengetikkan nama Table pemakaian atau nama Field. Di bagian sebelah kanan dari jendela Query Builder, Tabel yang tersedia ditampilkan dalam panel Table. Sedangkan di sebelah kirinya, terdapat tiga tab, yaitu: [Builder], [SQL], dan [Result]. Tab [Result] hanya akan terlihat setelah Anda mengeksekusi SQL. Tab [Builder] memungkinkan Anda membangun pernyataan SQL secara visual, tanpa harus mengetik pernyataan SQL. Tab [SQL] menampilkan pernyataan SQL yang dihasilkan setelah Anda membangun pernyataan SQL dari tab [Builder] tadi.
Mengenal Fitur Keamanan Aplikasi Web yang Disediakan oleh PHPMaker April 25, 2014 oleh Masino Sinaga 1 Komentar Sering kali Web Developer mengalami kesulitan ketika akan menerapkan kebijakan keamanan (Security Policy) di dalam aplikasi web yang mereka buat. Di samping karena banyaknya faktor keamanan yang harus diterapkan dengan baik dan benar untuk mencegah orang yang tidak berhak mengakses sebuah aplikasi web, juga karena kurangnya pengetahuan mengenai fitur keamanan apa saja yang harus diterapkan di seluruh bagian dari aplikasi web tersebut. Apalagi jika harus menerapkannya secara komprehensif (tidak boleh sebagian saja). Katakanlah jika terjadi penambahan menu atau halaman baru yang harus diintegrasikan ke dalam aplikasi tadi, maka harus selalu dipastikan faktor keamanan aplikasi sudah diimplementasikan. PHPMaker menyediakan pengaturan keamanan (Security Settings) yang sangat lengkap untuk diterapkan di aplikasi web yang di-generate olehnya. Mulai dari disediakannya login khusus untuk Pengguna dengan level yang paling tinggi ( Administrator), sampai kepada metode untuk mengamankan dan membatasi akses data untuk Pengguna dengan level tertentu. Hampir semua aspek keamanan yang wajib ada di sebuah aplikasi berbasis web sudah disediakan oleh PHPMaker, sehingga aplikasi web yang kita bangkitkan dengannya sudah dilengkapi dengan fitur-fitur keamanan tersebut. Anda dapat menentukan pengaturan keamanan di Aplikasi Web Anda melalui menu tab Security. Anda bisa menambahkan fitur Login untuk Pengguna level Administrator sebagai super-user dengan mengaktifkan pengaturan Administrator Login (Hard-coded). Selain itu, Anda juga bisa mengaktifkan Login untuk Pengguna yang datanya disimpan di tabel tertentu
melalui pengaturan Use Existing Table, kemudian menentukan nama tabel yang bertalian, beserta nama field Username dan Password yang digunakan di form Login. PHPMaker bahkan menyediakan pengaturan lanjutan. Cukup dengan mengklik tombol Advanced di dalam pengaturan Use Existing Table tadi. PHPMaker mendukung dua tipe keamanan, yaitu User ID dan User Level. Kedua istilah ini sudah sejak lama digunakan oleh PHPMaker untuk memisahkan pengaturan keamanan aplikasi pada dua level. User ID mengamankan data pada level Record, sedangkan User Level
Table mengamankan data pada levelatau . Keduanya bisa bersifat melengkapi dapat bekerja masing-masing bersamaan. Pengguna akansaling mendapatkan Userdan ID mereka dan User Level mereka setelah berhasil login ke dalam aplikasi web. Sebelum Pengguna login, identitas mereka akan dikenali sebagai Anonymous User atau dulu sering disebut dengan Pengguna yang memiliki level Guest atau tamu. Enaknya lagi, PHPMaker menyediakan kemudahan bagi Web Developer untuk mendefinisikan hak akses (Permissions) bagi Anonymous User. Misalnya, aksi-aksi apa saja yang bisa dilakukan oleh Pengguna terhadap tabel-tabel tertentu. Seperti yang sudah disebutkan di atas, bahwa User ID mengamankan data pada level Record. Tabel yang dilindungi harus memiliki field User ID yang menandakan record-record tersebut milik Pengguna tertentu. Nama field User ID dapat berbeda di tabel-tabel yang dilindungi tersebut. Artinya, field ini tidak selalu harus diberi nama dengan User ID. Untuk menyederhanakan pengertian, kita menggunakan istilah User ID. Ketika fitur User ID di PHPMaker diaktifkan, maka Pengguna hanya dapat mengakses data milik mereka sendiri saja. Tidak sampai di situ saja, PHPMaker pun menyediakan fitur Parent User ID yang memungkinkan seorang Pengguna aplikasi web dapat mengakses record-record milik beberapa Pengguna lainnya yang menjadi bawahannya. Parent User ID bersifat hirarki. Artinya, Penguna yang diset menggunakan Parent User ID tersebut dapat mengakses recordrecord yang dimiliki oleh Pengguna yang berada di bawahnya. Hal ini sangat cocok bagi aplikasi web yang membutuhkan fitur pengawasan record-record milik beberapa Pengguna oleh Pengguna yang bertindak sebagai Manajer. Sedangkan User Level seperti yang sudah kita ketahui sekilas di atas, akan mengamankan data pada level Table. Setiap Pengguna diberikan hak akses tertentu ke tabel-tabel tertentu yang terdapat di dalam Database. Ada dua jenis keamanan User Level:
1. Static User Level User Level dan hak akses didefinisikan dari dalam aplikasi PHPMaker, dan User Level tidak diganti setelah proses pembangkitan file skrip selesai dilakukan.
2. Dynamic User Level
User Level dan hak akses didefinisikan dalam dua tabel khusus di dalam Database. User Level dapat diganti melalui file skrip yang sudah dibangkitkan oleh PHPMaker. Enaknya, PHPMaker juga menyediakan kemudahan bagi Web Developer untuk membuat kedua tabel ini dengan cepat. Kedua tabel ini dikenal dengan tabel User Level dan User Level Permissions. Jika Anda memiliki project PHPMaker yang sebelumnya menggunakan Static User Level dan ingin diubah menjadi menggunakan Dynamic User Level, maka Anda dapat memigrasikannya dengantadi sangat mudah dandibuat, cepat. Pastikan tabel. yang digunakan oleh Dynamic Level sudah berhasil lalu klik bahwa tombolkedua Selanjutnya PHPMaker akan User [Migrate] memigrasikan semua hak akses atau permission milik User Level yang bersifat statik tadi ke dalam tabel User Level Permissions. Ada dua User Level yang sudah disediakan oleh PHPMaker, dan oleh karenanya tidak dapat diubah atau dihapus, yaitu: Administrator dan Default. Anda dapat menambahkan User Level lainnya selain yang sudah disediakan oleh PHPMaker tersebut. Penting untuk diketahui, bahwa sekalipun Anda telah mengaktifkan semua hak akses untuk User Level selain dua yang sudah disebutkan di atas tadi, User Level tersebut tidak akan menjadi sama dengan User Level Administrator. User Level yang didefinisikan kemudian oleh Pengguna tidak memiliki hak akses untuk mengelola data Pengguna (sekalipun Pengguna induk-nya memiliki pengawasan pada beberapa Pengguna yang berada di bawahnya).
Mengenal User Login Options di PHPMaker April 26, 2014 oleh Masino Sinaga 8 Komentar PHPMaker menyediakan fitur berupa User Login Options yang memungkinkan Web Developer membuat aplikasi berbasis web yang dilengkapi dengan sistem pendaftaran Pengguna (user registration system) yang sangat lengkap. Ada empat fitur utama lainnya yang disediakan dari User Login Options, yaitu: Pendaftaran Pengguna, Login, Ganti Kata Sandi, dan Reset Kata Sandi. Semuanya itu bisa dihasilkan oleh PHPMaker dengan sangat mudah, cepat, dan lagilagi… menyenangkan!
Untuk halaman Login, tersedia beberapa pilihan yang bisa diaktifkan untuk di-generate dari aplikasi web oleh PHPMaker. Pilihan Track failed attempts memungkinkan aplikasi web mendeteksi atau merekam usaha-usaha kegagalan yang terjadi saat Pengguna berusaha login. Jumlah maksimum kegagalan saat berusaha Login tersebut pun bisa dibatasi melalui pilihan Maximum failed attempts. Contoh, jika Anda ingin agar aplikasi web otomatis mengunci akun Pengguna jika gagal login sebanyak tiga kali, maka Anda cukup menentukan nilai tersebut pada pilihan ini. Selanjutnya, PHPMaker juga menyediakan pengaturan Failed attempts window (minutes) untuk menentukan waktu dalam satuan menit yang digunakan untuk mendeteksi terjadinya usaha login
yang gagal tadi. Contoh, jika Anda menentukan nilai pada pengaturan ini sebesar 5, maka itu artinya aplikasi web yang Anda buat nantinya akan mendeteksi usaha-usaha login yang dilakukan oleh seorang Pengguna dalam kurun waktu 5 menit. Jika selama kurun waktu 5 menit itu terjadi kegagalan sebanyak tiga kali, maka akun Pengguna akan otomatis dikunci oleh sistem. Ada lagi pilihan Disallow concurrent login yang jika diaktifkan maka di aplikasi web Anda hanya akan mengijinkan satu session untuk setiap satu Pengguna (tidak berlaku untuk login Administrator melalui fitur Administrator Login (Hard-coded)). Artinya, jika Pengguna sudah berhasil login, maka Pengguna lainnyaoleh yang berusaha login Pengguna sudah berhasil login tadi akan ditolak sistem. Dalam halmenggunakan ini, Penggunaakun dibedakan olehyang Session ID oleh web server. Jika Pengguna login lagi di jendela atau tab lain dari browser Pengguna, maka Pengguna tersebut masih tetap dalam posisi login. Jika Pengguna login kembali dengan menggunakan browser lainnya atau dari komputer yang lain, maka Session ID menjadi berbeda, dan sistem akan menolak login tersebut jika pilihan Disallow concurrent login tadi diaktifkan. PHPMaker menyediakan pengaturan Login status timeout (minutes) berupa lamanya waktu idle (dalam satuan menit) status login akan dipertimbangkan sebagai status logout, sehingga login akan diijinkan kembali. Artinya, jika seorang Pengguna yang statusnya sedang login tidak melakukan logout secara eksplisit (misalnya, dia menutup jendela browser secara langsung), maka dalam hal ini session Pengguna belum dibersihkan, dan dalam hal ini status login Pengguna masih dalam posisi sedang login di sistem. Jika Pengguna tersebut berusaha untuk
status login lagi, maka sistem akan menolak. Nah, pengaturan nilai di Login ini akan memastikan login akan diijinkan kembali setelah periode waktu idletimeout tadi. (minutes) Di halaman Login dari aplikasi web yang dibangkitkan oleh PHPMaker juga tersedia pilihan untuk menampilkan CAPTCHA (kode keamanan yang ditampilkan berupa image). CAPTCHA tersedia dalam bentuk extensions di PHPMaker. Artinya, Anda dapat mengaktifkan fitur ini setelah Anda memastikan sudah mengaktifkan extension CAPTCHA yang disediakan oleh PHPMaker hanya untuk mereka yang sudah membeli PHPMaker dan terdaftar sebagai registered users di website mereka. Pilihan lainnya di sistem Login pada aplikasi web adalah MD5 password. Anda dapat menentukan apakah password atau kata sandi yang tersimpan di database nantinya dalam format hash MD5 atau tidak. Ada juga pilihan apakah ingin mengaktifkan penggunaan Case-sensitive password. Lalu ada pilihan apakah password memiliki umur atau masa berlaku melalui pengaturan Enable password expiry. Jika masa berlaku password sudah habis, maka sistem akan memaksa Pengguna untuk mengganti password-nya. Jika password tidak diganti, maka Pengguna tidak akan pernah bisa melanjutkan pekerjaan di aplikasi web tersebut. Lamanya password expired dalam satuan hari bisa ditentukan melalui pengaturan Password expiry time (days).
Mengenal Report di PHPMaker April 27, 2014 oleh Masino Sinaga 8 Komentar
PHPMaker menyediakan fitur Report untuk menampilkan informasi dalam format laporan. Halaman Report yang dibangkitkan oleh PHPMaker berupa skrip PHP murni. Artinya, tidak ada komponen server-side yang dibutuhkan untuk menghasilkannya. Sebuah Report dibuat dari satu Table, View atau Custom View. Jika Anda perlu menampilkan data dari lebih satu Table atau View, maka Anda harus menggabungkannya terlebih dulu dengan menggunakan sebuah Database View (disarankan) atau dengan menggunakan Custom View dari dalam PHPMaker. Setelah memuat database dari project PHPMaker Anda, maka object-object database seperti Tables, Views, Custom Views, dan Reports akan ditampilkan di sebelah kiri (panel Database). Untuk membuat sebuah Report dari PHPMaker, cukup klik kanan pada panel database tadi lalu pilih [Add Report]. Alternatif lainnya, Anda dapat mengklik [Edit] dari menu utama lalu pilih [Add Report]. Selanjutnya akan muncul jendela dialog Report. Jendela pengaturan Report memiliki 4 tab. Silahkan klik satu per satu tab tersebut untuk mengatur Report Anda. PHPMaker akan memberikan nama sementara untuk Report yang baru, yaitu dengan format Report, di mana n adalah nilai angka/Integer. Jika Anda ingin mengganti nama Report, cukup masukkan nama yang baru dari kotak teks [Report name]. Selanjutnya Anda dapat memilih Table, View, atau Custom View dari combobox [Table or View]. Field-field di table akan ditampilkan di listbox [Available fields]. Pilih field-field yang ingin fields].akan Anda tampilkan cara memindahkan mereka ke bagiansaja listbox Disarankan agar dengan Anda memilih hanya field yang dibutuhkan atau [Selected halaman Report menjadi terlalu lebar tanpa menggunakan efek menggulung ke kanan ( scrolling). Pengaturanpengaturan ini bersifat wajib atau mandatory.
Anda dapat menambahkan sampai 6 level pengelompokan ( grouping levels) apakah dalam urutan Ascending atau Descending lalu pilih untuk menampilkan setiap level. Pilih field grouping untuk setiap level dari comboboxe, lalu klik tombol di sebelahnya untuk memilih urutan Sorting. Untuk mengaktifkan Summary, beri tanda centang pada bagian [Show Summary] di sebelah field grouping tadi. Ketika field [Show Summary] dipilih, maka tab [Summary Values] akan kelihatan bagi Anda untuk mengatur nilai Summary nanti. Secara opisonal (tidak wajib), Anda juga dapat mengurutkan record-record yang ditampilkan di Report sammpai dengan 6 field, apakah menggunakan urutan Ascending atau Descending. Pilih field pengurutan dari combobox. Tekan tombol di sebelahnya untuk mengganti urutan Sorting. Jika checkbox [Show Summary] dipilih di tab [Grouping Levels], maka tab ini akan menjadi kelihatan. Anda dapat memilih nilai Aggregate untuk setiap field numerik. Nilai Summary yang tersedia adalah [Sum], [Avg], [Min], dan [Max]. Nilai-nilai Summary ini akan ditampilkan di akhir dari level Grouping jika [Show Summary] diaktifkan. Di tab ini, Anda juga dapat memilih untuk menampilkan [Detail and Summary] atau [Summary only] untuk Report Anda. Jika [Detail and Summary] dipilih, record-record milik
untuk setiap level Grouping akan ditampilkan di bawah Judul level Grouping, kemudian diikuti dengan Summary-nya. [Detail and Summary] merupakan pilihan standar. Akhirnya, Anda dapat memilih [Show grand summary] untuk semua record di akhir dari Report. Pilihan ini diaktifkan secara standar. Tekan tombol [OK] untuk mengakhiri pengaturan Report. Ketika sebuah Report dibuat, pengaturan field akan disalin dari Source Table. Tapi selanjutnya, Report memiliki pengaturan field sendiri yang mirip dengan tabel lain di PHPMaker. Untuk mengubah sebuah Report, klik kanan Report di panel Database lalu pilih [Edit Report]. Alternatif lainnya, Anda dapat memilih Report pertama sekali, klik [Edit] di menu utama lalu pilih [Edit Report]. Perlu diingat bahwa Source Table dari sebuah Report tidak dapat diganti. Sayangnya, Report di PHPMaker tidak mendukung fitur Filter seperti fitur Search untuk halaman Non-Report; yang dibangkitkan oleh PHPMaker. Jika Anda menginginkan fitur Report atau Search di halaman Report yang dibangkitkan oleh PHPMaker, maka disarankan agar Anda menggunakan PHP Report Maker. Kita akan membahas mengenai PHP Report Maker di artikelartikel mendatang. Sabar, ya!
Mengenal File Upload di PHPMaker April 28, 2014 oleh Masino Sinaga 36 Komentar
Tools PHP Code GeneratorPHPMaker menyediakan fitur yang memungkinkan Web Developer dapat membuat aplikasi web yang dilengkapi dengan fitur File Upload dengan cepat, mudah, dan menyenangkan! Kita sebagai Web Developer tidak perlu pusing-pusing lagi mencari referensi ke Internet mengenai hal-hal apa saja yang harus diperhatikan untuk membuat fitur ini. Apalagi dengan source-code-nya, biarkan PHPMaker yang membantu untuk menyelesaikannya! Dengan adanya fitur File Upload ini, maka Pengguna akhir Aplikasi Web yang Anda buat dapat meng-upload atau mengunggah file dengan sangat mudah. File yang diupload bisa satu atau bahkan beberapa file sekaligus untuk satu Record. Media penyimpanan file yang diunggah tadi juga disediakan ke dalam dua pilihan, apakah ingin diunggah ke web server ( File Upload to Folder), atau diunggah dan disimpan di database ( File Upload to Database). Untuk menambahkan fitur File Upload ini ke dalam aplikasi web yang Anda buat, maka pastikan Anda sudah menentukan nilai pada pengaturan-pengaturan berikut: 1. Upload folder Folder tempat file akan disimpan di web server. Folder ini harus merupakan sebuah subfolder yang lokasinya relatif ke direktori root dari aplikasi web Anda. Sebagai contoh,
Anda memasukkan uploads/ (menggunakan karakter slash “/” sebagai pemisah di bagian akhir). Jika root dari aplikasi web Anda adalah D:\wamp\www\namaproject\, maka lokasi dari Upload Folder tersebut adalah: D:\wamp\www\namaproject\uploads\. 2. Max file size (bytes) Ukuran maksimal dari file yang diupload (dalam satuan byte). 3. Allowed file type Tipe atau ekstensi file yang diijinkan untuk diupload. Upload Pengaturan ini dapatweb diakses melalui menu tab PHP -> General -> File . Jika Anda ingin aplikasi Anda nantinya otomatis menghapus file Options yang sudah diupload saat data diubah atau dihapus, maka beri tanda centang pada item Delete file on update/deletedari lokasi pengaturan tadi.
Khusus untuk File Upload to Folder, maka pastikan Anda sudah memberikan hak akses menulisi folder pada sub-folder tempat file nanti akan disimpan. Jika Pengguna aplikasi web Anda menggunakan fitur File Upload to Folder dan ternyata file tersebut sudah ada di folder tujuan, maka nama file akan disesuaikan secara otomatis. Secara standar, sebuah indeks dalam format “(n)” akan ditambahkan di bagian akhir dari nama file; di mana n bernilai angka/Integer. Jika Anda ingin mengubah nama file dengan nama yang lain, maka Anda dapat menggunakan server event Row_Updating dan/atau Row_Inserting dengan mengganti nilai field dari nama file. Baca topik Server Events and Client Scriptsdi file
Bantuan untuk informasi lebih lanjut. Baca juga topik Tutorial – File Upload to Database dan Tutorial – File Upload to Folderdari file Bantuan yang sudah disediakan oleh PHPMaker, mengenai teknis cara menentukan pengaturan dari sisi PHPMaker.
Mudahnya Membuat Aplikasi Web dengan Multi-Theme di PHPMaker April 29, 2014 oleh Masino Sinaga 2 Komentar PHPMaker menyediakan fitur yang memungkinkan Web Developer membuat aplikasi web yang dilengkapi dengan beberapa pilihan Theme atau tema. Tema di aplikasi web biasanya secara sederhana diartikan dengan warna, tanpa membutuhkan file Image tertentu. Tersedia 12 (Dua belas) tema yang bisa Anda pilih salah satu dari menu tab HTML -> Theme -> Theme aplikasi PHPMaker sebelum Anda men-generate skrip aplikasi web Anda. Sejak versi 10, PHPMaker menggunakan Twitter Bootstrap; sebuah framework web yang sangat terkenal yang memungkinkan Web Developer dapat membuat aplikasi web dengan menggunakan teknologi web yang terbaru dengan sangat mudah dan cepat. Tema yang digunakan oleh aplikasi web yang dibangkitkan dengan PHPMaker menggunakan framework ini.
Anda sebagai Web Developer dapat menambahkan tema buatan Anda sendiri dengan cara menduplikasi file XML yang berisi pengaturan untuk men-generate file CSS. File XML ini terdapat di sub-folder themes di bawah folder instalasi PHPMaker. Pastikan Anda memberi nama tema yang unik untuk tema yang Anda buat, dengan mengubah baris kedua dari file XML tadi, seperti contoh berikut:
Misalkan Anda ingin memberi nama tema Anda dengan “Bright”, maka ubah kode di atas menjadi:
Setelah itu, pastikan juga Anda sudah menyimpan file XML tadi dengan nama lain yang unik, supaya tidak bentrok dengan file-file XML yang sudah ada sebelumnya. Selain Tema, PHPMaker juga telah menyediakan fitur yang memungkinkan Web Developer dapat menimpa (override) kode style yang terdapat di file CSS yang akan di- generate oleh PHPMaker dengan sangat mudah. Masih dari menu tab HTML tadi, klik sub-tab Styles, lalu klik tombol Edit styles, dan pada jendela CSS Editor yang muncul berikutnya, scroll ke bagian paling bawah, Anda akan melihat kode berikut pada lima baris terakhir dari bawah: /*BEGIN_USER_STYLES*/
/* your CSS styles here */
/*END_USER_STYLES*/
Di bagian bawah dari baris /* your CSS styles here */itu, masukkan kode CSS yang Anda inginkan untuk menimpa kode CSS yang nantinya akan di- generate oleh PHPMaker. Dengan cara ini, maka Anda tidak perlu mengubah file CSS yang di- generate oleh PHPMaker. Secara standar, hanya satu tema yang disertakan oleh PHPMaker saat membangkitkan file-file skrip untuk aplikasi web Anda. Sampai PHPMaker versi 10, belum disediakan kemampuan di aplikasi web yang dibangkitkan olehnya untuk memungkinkan Pengguna memilih tema dari beberapa pilihan tema. Untuk menambahkan fitur Multi-Theme ini di aplikasi web yang dibangkitkan oleh PHPMaker, Anda bisa menggunakan Masino Extensions yang bisa Anda download dari website I Love PHPMaker. Tersedia enam belas pilihan tema yang bisa dipilih oleh Pengguna aplikasi web Anda.
Mudahnya Menambah, Mengubah, dan Menghapus Beberapa Record di Aplikasi Web yang Dibuat oleh PHPMaker April 30, 2014 oleh Masino Sinaga Tinggalkan Komentar Apakah Anda pernah mengalami kesulitan ketika ingin menambahkan fitur di aplikasi web yang Anda buat, yang memungkinkan Pengguna dapat menambah, mengubah, dan menghapus beberapa record sekaligus? Katakanlah di salah satu halaman aplikasi web Anda, terdapat sebuah tabel atau semacam Grid yang memiliki kemampuan untuk menambah beberapa baris/record kosong. Pengguna dapat mengisi data pada satu atau beberapa baris/record kosong tadi. Tentu saja, Pengguna dapat mengubah satu atau beberapa record yang sudah ada sebelumnya. Selain itu, Pengguna juga dapat menghapus satu atau beberapa baris/record yang diinginkannya. Terakhir, Pengguna cukup hanya mengklik sebuah tombol untuk menyimpan semua perubahan yang telah dilakukannya tadi. Dengan kata lain, semua kegiatan itu cukup dilakukan dari satu halaman saja! Jangan khawatir, karena PHPMaker dapat mengatasinya dengan sangat mudah! PHPMaker dapat men-generate halaman yang berisi Grid yang dilengkapi dengan semua kemampuan di atas tadi. Grid-Edit Di PHPMaker, kitayang mengenal istilah Grid-Add danuntuk . Seperti Grid-Add berarti berisi Grid memungkinkan Pengguna menambah satunamanya, atau beberapa baris/record baru, sedangkan Grid-Edit memungkinkan Pengguna selain untuk menambah satu atau beberapa baris/record baru, juga dapat mengubah satu atau beberapa record yang diambil dari database. Keduanya sama-sama memiliki kemampuan untuk menyimpan semua perubahan yang terjadi di Grid tadi. Perbedaan utama antara Grid-Add dan Grid-Edit hanya pada saat halaman pertama ditampilkan. Grid-Edit menampilkan data yang sudah ada, sementara Grid-Add menampilkan Grid kosong tanpa ada satu record pun di dalamnya.
Anda cukup mengaktifkan fitur Grid-Add dan Grid-Edit dari pengaturan Table -> List Page pada Table yang Anda inginkan, lalu generate ulang semua file skrip dari PHPMaker, dan jadilah fitur ini di aplikasi web Anda. Sekedar untuk mengingatkan, istilah Table di sini bisa meliputi object Table, Custom View, ataupun Database View yang terdapat di panel Database project PHPMaker Anda. Hanya begitu saja? Ya, begitu saja! Itulah mengapa PHPMaker dapat menghemat waktu Anda sebagai Web Developer dalam membangun sebuah aplikasi berbasis web? Dengan kata lain, Anda tidak perlu pusing-pusing lagi memikirkan hal-hal teknis yang bisa diatasi oleh PHPMaker. Bahkan, sebenarnya Anda banyak juga dibantu oleh PHPMaker supaya berkonsentrasi dalam mengimplementasikan business-logic dan business-process di aplikasi web yang Anda buat. Sekarang coba Anda bayangkan, jika fitur Grid-Add dan Grid-Edit ini harus Anda buat sendiri dari awal, berapa lama waktu yang akan Anda butuhkan untuk menyelesaikannya? Lalu, mengapa tidak Anda serahkan saja kepada ahlinya, PHPMaker?
Sekarang Anda sudah semakin tahu kemampuan ini sudah tersedia di PHPMaker. Lalu, apakah Anda sebagai Web Developer masih juga bertahan menggunakan cara-cara konvensional untuk membuat aplikasi web? Keputusan ada di tangan Anda!
Mudahnya Menambahkan Audit Trail untuk Aplikasi Web dari PHPMaker Mei 1, 2014 oleh Masino Sinaga 8 Komentar Untuk memantau aktivitas Pengguna di sebuah aplikasi berbasis web, maka dibutuhkan fitur Audit Trail. Fitur ini dapat merekam kegiatan Pengguna ketika bekerja menggunakan aplikasi web. Selain dapat mencatat tanggal dan jam si Pengguna login dan logout, Audit Trail juga dapat mencatat tanggal dan jam saat dia menambahkan data, mengubah data, dan menghapus data, termasuk dengan datanya itu sendiri. Fitur ini sangat bermanfaat untuk melacak kembali siapa yang melakukan apa di aplikasi web Anda. PHPMaker sudah menyediakan fitur Audit Trail. Anda sebagai Web Developer dapat menambahkan fitur ini ke aplikasi web yang dibangkitkan olehnya. Cukup klik menu tab PHP -> General Options -> Audit Trail, lalu Anda dapat menentukan apakah ingin menyimpan Audit Trail ke dalam file log atau ke Database. Jika Anda ingin menyimpannya ke file log, cukup masukkan nama sub-folder tempat file log ini akan disimpan pada kotak isian Log file folder. Sedangkan jika Anda ingin menyimpannya ke Database, beri tanda centang pada Use database table, lalu pilih tabel di sebelah kanannya. Jika tabel ini belum ada di Database Anda, maka Anda dapat membuatnya dari dalam PHPMaker. Klik tombol Create Table di sebelah kanan pilihan tabel tadi. Jika Anda ingin memantau catatan histori kegiatan Login dan Logout Pengguna, maka beri tanda centang pada Track login/logout activities. Sampai di sini Anda sudah berhasil mendefinisikan pengaturan Audit Trail secara umum. Selanjutnya masih ada langkah berikutnya yang harus Anda lakukan jika aplikasi web Anda ingin merekam kegiatan Pengguna pada saat menambah, mengubah, atau menghapus record di Table tertentu. Pilih salah satu Table dari panel Database di sebelah kiri, lalu klik tab Table di panel sebelah kanan dari PHPMaker, dan beri tanda centang pada bagian Audit Trail. Lakukan hal yang sama dari awal dengan memilih Table lainnya jika Anda ingin menerapkan Audit Trail pada tabel yang Anda inginkan. Terakhir, generate ulang seluruh file skrip aplikasi web Anda menggunakan PHPMaker. Mudah sekali bukan?
Bagaimana PHPMaker Menangani Validasi Data di Aplikasi Web? Mei 2, 2014 oleh Masino Sinaga 1 Komentar Yang namanya aplikasi berbasis web pasti tidak akan bisa lepas dari pengolahan data. Baik melalui penginputan atau penambahan recorddata barudisimpan (Add), maupun melalui pengubahan record yang sudah ada di Database (Edit). Sebelum ke Database, pasti harus dilakukan proses validasi terlebih dulu. Validasi akan memastikan data yang akan disimpan ke Database sudah valid. Misalnya, apakah data yang seharusnya wajib diisi oleh Pengguna sudah diisi atau belum. Atau, apakah data yang tipenya tanggal ( Date/Time) formatnya sudah sesuai dengan yang seharusnya diinginkan, dan sebagainya.
Tools PHP Code GeneratorPHPMaker sudah menangani proses validasi data dengan dua cara. Pertama dari sisi klien (Client-Side), dan yang kedua dari sisi server (Server-Side). Keduanya bisa digunakan bersama-sama, atau hanya salah satunya saja. Artinya, Anda dapat menerapkan proses validasi ini sesuai kebutuhan di aplikasi web yang Anda bangun. Validasi di sisi server sangat berguna jika seandainya Anda ingin melakukan validasi ulang atau validasi akhir di samping validasi yang sudah dilakukan di sisi klien. Atau bahkan jika validasi di sisi klien tidak dilakukan, maka satu-satunya validasi yang harus dilakukan adalah dari sisi server. Untuk mengaktifkan fitur validasi tersebut, maka cukup klik menu tab PHP -> General Options -> Validation, lalu beri tanda centang pada Server-side dan atau Client-side (Javascript)dari aplikasi PHPMaker. Seperti yang sudah disebutkan tadi, Anda dapat mengaktifkan salah satu, atau bahkan keduanya. Secara standar, PHPMaker hanya mengaktifkan validasi di sisi klien. Hal ini wajar, karena dapat menghemat waktu, di mana aplikasi web Anda tidak perlu menghubungi server setiap kali akan melakukan validasi data yang diinput atau diubah oleh Pengguna. Validasi cukup dilakukan di sisi browser klien. Jika Anda memilih validasi di sisi klien, PHPMaker akan men- generate kode Javascript di halaman Add dan Edit. PHPMaker akan otomatis mendeteksi dari informasi Field yang diekstrak dari Database. Contoh, jika ada field yang memiliki property Not Null, maka PHPMaker akan men-generate kode Javascript yang akan mencegah Pengguna menyimpan data sebelum field tersebut diisi. Artinya, Anda tidak perlu pusing-pusing lagi memikirkan untuk menulis kode Javascript untuk memvalidasi setiap field di form untuk menginput atau mengubah data. Sedikit berbeda dengan validasi di sisi klien, jika Anda mengaktifkan validasi di sisi Server, maka kode yang akan di- generate oleh PHPMaker adalah kode PHP. PHPMaker akan otomatis men-generate kode PHP yang akan mencegah Pengguna menyimpan data sebelum semua field berisi data yang valid. Tidak hanya berhenti di situ saja, PHPMaker juga masih memberikan kesempatan kepada Anda sebagai Web Developer untuk menambahkan kode tambahan milik Anda (jika diperlukan), baik dari sisi klien maupun dari sisi server (tergantung dengan pengaturan validasi yang aktifkan di
atas tadi). Untuk menambahkan kode dari sisi server, Anda cukup menulis kode PHP Anda menggunakan Form_CustomValidate yang terdapat di bawah Add/Copy Page atau Edit Page dari bagian Server Events. Hal yang sama juga untuk validasi di sisi klien, menggunakan nama yang sama Form_CustomValidate, tapi berada di bawah bagian Client Scripts dari aplikasi PHPMaker.
Wouw! Betapa nikmatnya bekerja dengan PHPMaker, bukan?
Mengenal Inline Add, Inline Copy, dan Inline Edit di PHPMaker Mei 3, 2014 oleh Masino Sinaga 4 Komentar Satu lagi fitur yang disediakan oleh PHPMaker untuk memudahkan Pengguna mengelola data langsung di Grid atau tabel di aplikasi web yang Anda buat dengannya, yaitu Inline . Tersedia tiga aksi, yaitu Add (tambah), Copy (salin), dan Edit (ubah). Jadi, ketiga fungsi itu adalah: Inline Add, Inline Copy, dan Inline Edit. Fitur ini memungkinkan Pengguna untuk menambah, menyalin, atau mengubah satu buah record pada baris di mana record tersebut berada di Grid atau tabel. Untuk menambahkan fitur ini di aplikasi web yang Anda buat dengan PHPMaker, cukup klik salah satu tabel dari panel Database, kemudian klik tab Table di panel sebelah kanan, lalu beri tanda centang pada item yang Anda inginkan, apakah Inline Add, Inline Copy, atau Inline Edit di bagian List Page pada pengaturan Table tadi. Terakhir, jangan lupa generate file skrip aplikasi Anda. Fitur ini biasanya bermanfaat bagi Pengguna yang membutuhkan fitur pengolahan data tanpa harus meninggalkan halaman List. Biasanya, Pengguna mengelola data melalui sebuah halaman yang hanya menampilkan satu buah form untuk mengelola satu record saja. Dengan menggunakan fitur Inline tadi, maka Pengguna tetap dapat melihat record lainnya yang terdapat pada halaman List saat menambah, menyalin, atau mengubah record tertentu. Tujuannya supaya Pengguna tetap dapat mengelola data berdasarkan record-record lainnya yang sudah ada di Grid tersebut. Keuntungan lainnya, dengan menggunakan fitur ini, halaman dari setiap fungsi Inline tadi bisa langsung dipanggil. Alasannya, karena URL dari setiap aksi berbeda antara satu dengan lainya. Demikian juga untuk setiap record, akan dibedakan dari nilai kunci field pada tabel tersebut. Anda bisa memperhatikan URL ketika halaman untuk setiap aksi sedang terbuka. Artinya, URL dari halaman tersebut bermanfaat untuk langsung menuju ke halaman yang Anda inginkan untuk mengubah satu buah record tertentu, di manapun posisi record tersebut berada pada tabel di halaman List yang bertalian.
Betapa Lengkapnya Pengaturan Halaman di PHPMaker Mei 4, 2014 oleh Masino Sinaga 4 Komentar Sebuah halaman di aplikasi berbasis web biasanya menyediakan beberapa fungsi yang dibutuhkan oleh Pengguna. Beberapa fungsi yang ke paling sering digunakan olehNavigasi Penggunahalaman di halaman adalah navigasi record yang terbagi dalam beberapa halaman. List dapat dilakukan melalui tombol atau link First, Prev, Next, dan Last. Selain itu, fungsi pengurutan (Sort) record berdasarkan kolom tertentu di tabel, kemudian fungsi-fungsi shortcut untuk menambah, mengubah, atau menghapus record. Ada lagi fungsi untuk mengekspor data ke media file. Semuanya ini biasanya tersedia di halaman List. Selain di halaman List, sebagian besar dari fungsi-fungsi tadi terdapat juga di halaman View (halaman yang menampilkan satu record per satu halaman). Pertanyaannya adalah, bagaimana mungkin Anda sebagai Web Developer dapat mengimplementasikan semua fungsi-fungsi itu dengan cepat, mudah, dan menyenangkan? Apakah selama ini Anda sering mengalami kesulitan atau bahkan tidak mempunyai ide sama sekali bahwa semua fungsi-fungsi di atas wajib tersedia di sebuah aplikasi berbasis web? Jangan khawatir! PHPMaker menyediakan hampir semua fungsi-fungsi tersebut. Bahkan beberapa Karena fungsi lainnya yangtelah belum Anda pikirkan sudah disediakan juga oleh PHPMaker, seperti fungsi pengelompokan link atau tombol tertentu untuk menghemat pemakaian space atau ruang di aplikasi web yang Anda buat. Anda cukup membuka menu tab PHP -> Page Options (Global), lalu silahkan Anda tentukan pengaturan yang Anda inginkan. Pengaturan-pengaturan ini bersifat global. Artinya, jika Anda tidak mendefinisikan pengaturan di level Table, maka pengaturan di bagian Page Options (Global) inilah yang akan digunakan. Beberapa fungsi yang disediakan dari PHPMaker untuk men- generate halaman List dan View adalah sebagai berikut (berdasarkan fitur-fitur yang tersedia di PHPMaker versi 10.0.5):
Records per page, untuk menentukan jumlah record per halaman di halaman List. Jika tidak ditentukan atau diset dengan nilai 0, maka secara standar PHPMaker akan menggunakan nilai 20. Selectable page sizes, untuk menentukan pilihan jumlah record yang dapat dipilih oleh Pengguna pada halaman yang menampilkan paging. Pisahkan dengan karakter koma jika terdapat lebih dari satu pilihan. Contoh: 10, 20, 50, ALL. Perlu diingat, bahwa PHPMaker mendukung pilihan ALL untuk menampilkan semua record dalam satu halaman (tidak disarankan jika jumlah record di tabel tersebut sudah sangat banyak). Paging section style, hanya dua pilihan, yaitu NumericPages atau NextPrev. Pilihan NumericPages akan menampilkan paging dengan menggunakan link ke nomor halamannya. Sedangkan NextPrev akan menampilkan paging dengan menggunakan tombol navigasi disertai dengan textbox yang memungkinkan Pengguna melompat langsung ke nomor halaman yang diinginkan.
Sort type, berisi tiga pilihan, yaitu: None, Single column, dan Multiple column. Jika Multiple column dipilih, maka Pengguna harus mengklik Ctrl dan judul tabelnya. Multiple column, untuk menampilkan beberapa record dalam satu baris. Nilai standar adalah 0. Jika nilainya lebih dari satu barulah fitur ini berfungsi sebagaimana mestinya. Multi-Page type, berisi tiga pilihan, yaitu: Tabs, Pills, dan Accordion. Secara standar, PHPMaker menggunakan Tab untuk menampilkan Multi-Page. Paging section at top, untuk menampilkan Paging di bagian atas dari tabel atau konten record. Pagingrecord section at bottom, untuk menampilkan Paging di bagian bawah dari tabel atau konten Paging section in View page, untuk menampilkan Paging di halaman View. Paging section in Edit page, untuk menampilkan Paging di halaman Edit. Multiple delete, jika pilihan ini diaktifkan, maka akan menampilkan Checkbox di dalam tabel pada halaman List untuk memungkinkan Pengguna memilih lebih dari satu record yang akan dihapus. Inline delete, untuk menghapus record tanpa menampilkan halaman konfirmasi penghapusan. Sebagai gantinya, sistem akan menampilkan pesan yang berisi pertanyaan apakah ingin menghapus record atau tidak. Links on left side, untuk menampilkan link atau shortcut terhadap fungsi-fungsi yang ada di setiap baris record pada tabel di halaman List, dengan posisi di sebelah paling kiri di dalam tabel. Jika pilihan ini tidak dicentang, maka link tersebut akan berada di sebelah paling kanan di dalam tabel. Use buttons as links, untuk menampilkan link di baris record (menggantikan link atau icon yang ditampilkan secara individu/terpisah). Fitur ini tersedia mulai PHPMaker versi 10. Use button dropdown for links, untuk menampilkan link di baris record menggunakan menu dropdown (menggantikan link atau icon yang ditampilkan secara individu/terpisah). Fitur ini tersedia mulai PHPMaker versi 10. Use button dropdown in paging section, untuk menampilkan link di bagian Paging menggunakan menu dropdown (menggantikan link yang ditampilkan secara individu/terpisah). Fitur ini tersedia mulai PHPMaker versi 10. Enable export in List page, untuk mengaktifkan fitur Export di halaman List. Enable export in View page, untuk mengaktifkan fitur Export di halaman View. Export – Use button dropdown, untuk menampilkan link Export sebagai tombol dengan menu dropdown. Secara standar, link Export ditampilkan sebagai icon secara individu/terpisah dalam satu baris. Export – Print, untuk menampilkan link Export ke printer atau ramah cetakan. Export – CSV, untuk menampilkan link Export ke file CSV. Export – HTML, untuk menampilkan link Export ke file HTML. Export – Excel, untuk menampilkan link Export ke file Excel. Export – Word, untuk menampilkan link Export ke file Word. Export – XML, untuk menampilkan link Export ke file XML. Export – PDF, untuk menampilkan link Export ke file PDF. Export – Email, untuk menampilkan link Export ke Email atau kirim data via Email. Export – Export type, berisi tiga pilihan, yaitu All Pages untuk mengekspor record yang terdapat di semua halaman, Current Page untuk mengekspor record yang terdapat di
halaman yang sedang aktif/terbuka saja, dan Selected Record untuk mengekspor record yang terpilih saja. Beberapa hal yang perlu diketahui mengenai fitur Export Data di Aplikasi Web yang dibangun oleh PHPMaker adalah: 1. Field yang memiliki tipe Data Binary (BLOB) tidak dapat diekspor. 2. Ekspor ke HTML/CSV/XML/PDF tidak dapat diterapkan untuk Reports di PHPMaker. 3. Images tidak dapat diekspor ke object file Word/Excel/CSV/XML. 4. Export ke XML membutuhkan PHP DOM (bagian dari PHP 5 core). 5. Ekspor ke Word/Excel bekerja dengan cara mengekspor data dalam format HTML untuk Word/Excel untuk mengkonversi/mengimpor, file yang diekspor bukan merupakan format file native .doc/.xls. (Pengguna Terdaftar atau yang resmi membeli PHPMaker dapat menggunakan extension PHPExcel yang akan menghasilkan format file native Excel). 6. Untuk Ekspor ke Email ( Send to Email), maka Pengguna dapat memilih untuk mengirim record sebagai URL atau dalam format HTML. Jika hanya mengirim URL saja, Penerima Email harus mengklik URL yang akan membuka Aplikasi Web Anda untuk menampilkan record di sana. Semua pengaturan Keamanan Aplikasi akan berlaku, dan Penerima butuh akses untuk login. Jika Penerima bukan merupakan Pengguna yang terdaftar di Aplikasi Web Anda, dan halaman Anda diproteksi, maka Pengguna seharusnya mengirim data menggunakan pilihan format HTML saja.
Penamaan Field yang Disarankan untuk Aplikasi Web di PHPMaker Mei 6, 2014 oleh Masino Sinaga Tinggalkan Komentar Seperti yang sudah kita ketahui, PHPMaker akan mengekstrak object dan informasi yang terkait dari Database lalu menggunakannya di pengaturan level Table dan level Field. Khusus untuk level Field, maka informasi yang akan digunakan oleh PHPMaker adalah nama field itu sendiri. PHPMaker memiliki pola tersendiri untuk menggunakan nama field menjadi Caption di Aplikasi Web yang Anda buat. Berikut ini trik sederhana untuk penamaan field yang disarankan, sehingga dapat membantu Anda meningkatkan produktivitas kerja di PHPMaker. PHPMaker akan otomatis mengkonversi karakter garis bawah (_) menjadi karakter spasi di bagian Caption setiap field. Sementara karakter huruf dan angka yang terdapat di nama field akan digunakan apa adanya. Karakter huruf dan angka tidak diubah ke karakter lainnya. Karena pola ini digunakan oleh PHPMaker dari versi-versi terdahulu sampai versi yang terakhir sekarang, maka Anda sebagai Web Developer sebaiknya memperhatikan pola penamaan field di Table ataupun nama alias di Database View ataupun di Custom View. Saya menyarankan agar Anda menggunakan penamaan field dengan pola Propercase. Artinya, gunakanlah huruf besar atau huruf kapital di setiap awal kata. Jika nama field Anda mengandung
dua kata, maka setiap awal kata sebaiknya tetap menggunakan huruf kapital. Contoh yang disarankan: Nama_Mahasiswa, Alamat_Rumah, Tanggal_Lahir, dan seterusnya. Hindari menggunakan huruf kecil semua. Hindari juga menyambung semua kata tanpa karakter pemisah garis bawah. Seperti yang Anda lihat dari contoh tersebut, setiap awal kata diawali dengan huruf kapital, dan di antara kata dipisahkan dengan karakter garis bawah. PHPMaker akan mengkonversi nama field tersebut menjadi Caption di antar muka Aplikasi Web yang Anda generate dengan menggunakan PHPMaker. Dari contoh di atas tadi, maka masingNama Mahasiswa Lahir masing akan menjadi: , Alamat dan Tanggal . Dengan menggunakan pola Propercase tersebut, maka AndaRumah sebagai, Web Developer tidak perlu mengubah property Caption di setiap field pada pengaturan Field di PHPMaker.
Trik ini memang kelihatan sepele, tapi sangat membantu Anda untuk meningkatkan produktivitas kerja saat menggunakan PHPMaker. Tidak percaya? Sekarang begini saja. Coba bayangkan Anda memiliki banyak Table dan di sebagian besar tabel tersebut memiliki banyak field. Jika Anda tidak mengikuti saran di atas (misalnya Anda menggunakan huruf kecil semua untuk penamaan field di tabel-tabel tersebut), maka Anda sebagai Web Developer harus mengubah satu per satu Caption dari field di semua tabel tadi.
Mengenal Pengaturan Email di PHPMaker Mei 7, 2014 oleh Masino Sinaga 12 Komentar Setiap Aplikasi Web sejatinya harus bisa mengirim Email untuk beberapa event yang terjadi di dalamnya. Di antaranya: untuk mengirimkan informasi hasil pendaftaran (registrasi) akun Pengguna, maupun untuk mengirimkan hasil reset password (kata sandi) dari akun Pengguna. Di samping itu, fitur pengiriman Email juga bermanfaat untuk mengirimkan alert atau notifikasi kepada Pengguna berdasarkan event tertentu yang terjadi di Aplikasi Web. Untuk itu, setiap Aplikasi Web memerlukan pengaturan Email yang biasanya menggunakan protokol SMTP (Simple Mail Transfer Protocol). PHPMaker sudah menyediakan pengaturan Email yang akan digunakan oleh Aplikasi Web yang di-generate olehnya. Anda cukup membuka menu tab PHP -> Email Settings lalu mengisi beberapa pengaturan yang terkait dengan Server SMTP Email. Beberapa pengaturan Server SMTP Email yang perlu Anda tentukan dari project PHPMaker sebelum Anda men-generate Aplikasi Web Anda adalah sebagai berikut:
SMTP server, Nama host atau IP Address dari server SMTP. Pengaturan standar menggunakan “localhost”, tapi di beberapa jaringan ada yang tidak mendukung pemakaian “localhost”. SMTP server port, Port untuk server SMTP. Pengaturan standar menggunakan nilai: 25. SMTP server username, Username untuk otentifikasi server SMTP. Biasanya menggunakan akun Email yang sudah terdaftar di server SMTP tadi.
SMTP server password, Password untuk otentifikasi server SMTP. Password akun Email. Sender (email address), Email address dari pengirim untuk semua Email. Email ini akan kelihatan di bagian Pengirim ketika Penerima membaca Email tersebut. Recipient (email address), yaitu Email address penerima, untuk email notifikasi ketika sebuah record ditambah/diubah/dihapus jika pengaturan yang terkait untuk pengiriman Email di level Table diaktifkan. Security, Protokol yang digunakan oleh server SMTP. Tersedia dua pilihan, apakah ingin
menggunakan SSL protokol atau TLS.tadi. Kosongkan pilihan ini jika server SMTP tidak mendukung penggunaan kedua Perlu untuk diketahui bahwa PHPMaker memakai PHP library yang bernama PHPMailer pada framework yang digunakan untuk men-generate Aplikasi Web Anda. Enaknya, setiap kali aplikasi PHPMaker diupdate ke versi yang lebih tinggi, maka library PHPMailer pun akan ikut diupdate oleh author PHPMaker (jika tersedia versi update-nya). Artinya, Anda sebagai Web Developer tidak perlu pusing-pusing lagi memikirkan update terhadap library ini. Pengaturan Email ini dapat Anda lihat di file yang di-generate oleh PHPMaker, bernama: ewcfg10.php (asumsi: menggunakan PHPMaker versi 10). Anda bisa melihat kode yang terkait dengan pengaturan server SMTP di atas tadi, seperti berikut ini (data disamarkan dengan nilai xxxxx): // Email define("EW_SMTP_SERVER", "xxxxx", TRUE); // SMTP server define("EW_SMTP_SERVER_PORT", 25, TRUE); // SMTP server port define("EW_SMTP_SECURE_OPTION", "", TRUE); define("EW_SMTP_SERVER_USERNAME", "xxxxx", TRUE); // SMTP server user name define("EW_SMTP_SERVER_PASSWORD", "", TRUE); // SMTP server password define("EW_SENDER_EMAIL", "xxxxx", TRUE); // Sender email address define("EW_RECIPIENT_EMAIL", "xxxxx", TRUE); // Recipient email address
Ditempatkan di bawah: PHPMaker Ditag dengan:Email, PHPMaker Indonesia, SMTP, SMTP Server, SSL, TLS
Mudahnya Mempelajari PHPMaker Mei 8, 2014 oleh Masino Sinaga 3 Komentar Sudah kurang lebih tiga bulan saya rutin menulis mengenai Tools PHP Code Generator PHPMaker di situs ini. Beberapa feedback pun mulai berdatangan, baik melalui Facebook maupun melalui Email saya. Beberapa di antaranya ada yang senang dengan tulisan-tulisan saya di situs ini, karena membahas PHPMaker dalam bahasa Indonesia. Beberapa lainnya lagi ada yang belum mengetahui situs ini, tapi terdampar di Internet melalui situs saya lainnya yang membahas PHPMaker: ILovePHPMaker. Ternyata alasan mengapa sebagian besar lebih senang mengunjungi situs ini karena mereka lebih mudah memahami PHPMaker dalam bahasa Indonesia. Saya sih senyum-senyum saja, sekaligus
bertanya dalam hati: Memangnya jika memahami PHPMaker dengan membaca menu Help yang kontennya dalam bahasa Inggris itu susah, ya? Bukankah semua yang diuraikan di menu Help PHPMaker sudah sangat lengkap dan jelas? Apa sih, susahnya membaca Help dalam bahasa Inggris? Itulah beberapa pertanyaan yang menggelitik hati saya untuk menulis artikel ini. Sering saya heran melihat mereka yang terkesan ingin menghindari segala sesuatu yang disampaikan dalam tulisan berbahasa Inggris. Padahal seperti yang kita ketahui bersama, banyak informasi mengenai IT dan Pemrograman sumbernya berasal dari tulisan atau artikel dalam bahasa Inggris kitajauh peroleh Bukankah kalimatpula bahasa Inggris itu tidakyang terlalu bedamelalui dengan Internet. pola kalimat bahasasebenarnya Indonesia?pola Bukankah bahwa jika semakin sering kita membiasakan membaca tulisan dalam bahasa Inggris, maka semakin terbiasa pulalah kita menguasai bahasa Inggris? Buat Anda yang selalu ingin menghindari bahasa Inggris, sebaiknya pikir-pikir lagilah dulu jika ingin melakukan hal itu. Percayalah! Tidak sulit untuk belajar bahasa Inggris. Tidak ada yang perlu ditakuti dengan bahasa Inggris. Jangan khawatir jika nilai pelajaran bahasa Inggris Anda tidak terlalu bagus waktu sekolah dulu, karena sekalipun English Grammar Anda tidak bagus, minimal seharusnya Anda bisa menguasai bahasa Inggris secara pasif. Lagi pula, tidak ada ruginya Anda bisa menguasai bahasa Inggris di jaman canggih sekarang ini! Jadi, biasakanlah untuk membaca menu Help atau Bantuan dari aplikasi PHPMaker. Apalagi jika Anda baru mengenal PHPMaker, dan mengalami kesulitan menggunakannya. Semakin sering Anda membaca-baca tulisan dalam bahasaJustru Inggris, maka semakin akanproses terbiasa pulalah Anda memahami tulisan dalam bahasa Inggris. di situlah akan terjadi pembelajaran yang sesungguhnya. Lama-kelamaan Anda bahkan akan mengerti bahasa Inggris. Selain belajar melalui menu Help PHPMaker, maka Anda perlu juga rutin mengunjungi forum diskusi yang disediakan oleh PHPMaker. Hampir setiap hari saya selalu menyempatkan singgah di Forum Diskusi PHPMaker. Dari sana awalnya saya hanya sebagai pengunjung atau pembaca saja. Saya banyak belajar dari sana. Sekalipun kontennya dalam bahasa Inggris, dan dulu bahasa Inggris saya masih tergolong paspasan, tapi karena hampir setiap hari saya membaca-baca tulisan sekaligus mendapatkan pengetahuan lebih dalam lagi mengenai PHPMaker, maka saya menjadi terbiasa menggunakan PHPMaker. Sekaligus bisa memahami bahasa Inggris. Buktinya, sekarang saya aktif nimbrung, dengan ikut menjawab pertanyaan-pertanyaan dari member yang terdaftar di sana. Jadi, jika Anda menemukan postingan yang menggunakan account mobhar, maka itulah saya! Jika Anda tetap merasa mengalami kesulitan dalam mempelajari PHPMaker, sekalipun sudah membaca menu Help-nya, maka sering-seringlah mampir ke sana setiap hari. Banyak ilmu maupun tips dan trik yang akan Anda dapatkan di sana. Bahkan, Anda bisa mengirimkan pertanyaan di sana. Semua pertanyaan langsung akan cepat dibalas, sepanjang Anda bisa memberikan informasi yang selengkap dan sejelas-jelasnya. Setelah itu, Anda akan merasakan bahwa belajar PHPMaker itu memang mudah, meskipun melalui forum berbahasa Inggris. Yakinlah, Anda pasti bisa menguasai PHPMaker dengan mudah dan cepat. Dan maaf, Anda pasti akan menyesal jika dulu pernah berusaha untuk menghindari bahasa Inggris, hehehe…
66--------66-----66
Masino Extensions, Mengapa Perlu untuk Project PHPMaker Anda? Mei 10, 2014 oleh Masino Sinaga 1 Komentar Seperti yang kita ketahui melalui tulisan saya berjudul Extensions: Alternatif Mengkostumais File Template di PHPMaker, PHPMaker memberikan fleksibilitas yang sangat besar kepada Web Developer untuk mengkostumais templatenya. Template di PHPMaker digunakan sebagai dasar untuk men-generate Aplikasi Web. Anda sebagai Web Developer tidak harus selalu menyentuh Template PHPMaker jika ingin mengubahnya. Itu artinya, Anda bisa menambahkan fungsi-fungsi maupun fitur-fitur baru tanpa harus memodifikasi Template PHPMaker. Anda sebagai Web Developer memiliki kesempatan yang sangat besar juga untuk dapat membuat Extensions sendiri (selain menggunakan beberapa Extensions yang sudah dibuat oleh PHPMaker). Extensions yang Anda buat itu bisa digunakan ulang untuk project-project PHPMaker Anda. Bahkan, Anda pun bisa men- share Extensions tersebut kepada Web Developer lain yang sama-sama menggunakan PHPMaker. Tentu saja ini semakin dapat menghemat waktu Anda dalam membangun Aplikasi Web. Waktu pertama sekali mengetahui kemampuan sekaligus fleksibilitas PHPMaker yang mendukung pemakaian Extensions, saya memutuskan untuk mengoptimalkan Extensions di setiap project PHPMaker saya. Hal ini sekaligus menjadi daya tarik tersendiri di PHPMaker. Saya pun semakin bersemangat saja untuk selalu menggunakan PHPMaker setiap kali membangun Aplikasi Web. Sekaligus menjadi tantangan khusus bagi Web Developer untuk dapat membuat Extensions sendiri. PHPMaker benar-benar memberikan kemudahan Web Developer yang membutuhkan fungsifungsi dan fitur-fitur tambahan yang perlu ditambahkan ke dalam sebuah Aplikasi Web, hanya melalui penggunaan Extensions. Tidak perlu mengkostumisasi Template, tidak perlu memodifikasi file script yang sudah di-generate oleh PHPMaker. Mereka cukup mengaktifkan Extensions ini dari project PHPMaker-nya, lalu men- generate ulang semua file-file script-nya. Begitulah cara kerja Extensions ini di project PHPMaker Anda. Sangat sederhana, sangat mudah, dan hasilnya benar-benar dahsyat dan hebat! Sepertinya, si pembuat PHPMaker mengetahui betul bahwa tools ini tidak berarti sama sekali jika tidak memiliki fleksibilitas yang tinggi. Karena jika Web Developer “dipaksa” untuk selalu menggunakan Template bawaan PHPMaker saja, maka saya yakin tools generator ini bakalan tidak dilirik sama sekali oleh Web Developer. Itu sama artinya dengan membatasi kreativitas si Web Developer. Tapi kenyataannya tidak. PHPMaker sudah duluan memikirkan hal tersebut. PHPMaker memberikan solusi nyata melalui pemakaian Extensions. Hal ini sekaligus menjawab
salah satu mitos yang menyebutkan bahwa tools code generatordapat membatasi kreativitas Web Developer. Waktu pertama menggunakan PHPMaker, saya menggunakan pendekatan dengan cara mengkostumais file Template PHPMaker jika ingin menambahkan fungsi atau fitur baru ke Aplikasi Web saya. Ternyata, lama-kelamaan, saya kerepotan sendiri untuk melakukan pekerjaan ini jika setiap kali author PHPMaker merilis update ke versi yang lebih tinggi. Setiap update dirilis, maka Template PHPMaker pun diupdate. Itu artinya, Template PHPMaker yang saya kostumisasi tadi jugadengan harus ikut disesuaikan. tidak, Aplikasi WebTemplate yang dihasilkan menjadi tidak sesuai yang seharusnya.Jika Selain itu,maka mengkostumisasi PHPMaker secara langsung sebenarnya tidak disarankan. Alasannya, karena kadang-kadang kita membutuhkan Template PHPMaker yang asli untuk men- generate beberapa Aplikasi Web yang tidak membutuhkan kostumisasi dari kita. Akhirnya, saya mengubah pendekatan dari yang tadinya mengkostumisai Template PHPMaker secara langsung, sekarang menjadi membuat Extensions yang secara fungsi akan “menimpa” (override) beberapa fitur/fungsi tertentu yang terdapat di Template asli PHPMaker. Dengan menggunakan Extensions, maka perubahan di sisi Template PHPMaker bisa dilakukan dengan mudah (sekali lagi) tanpa harus menyentuh sama sekali file Template PHPMaker. Selain itu, perubahan di sisi Extensions dapat disesuaikan dengan lebih mudah dan sangat cepat, karena sudah dipisahkan ke dalam beberapa Extensions yang ukurannya lebih kecil. Sampai saatyang sayasudah menulis artikelsaya ini, ada (Dua belas)di14 (Empatproject belas)PHPMaker 15 (Lima belas) Extensions berhasil buat12 dan gunakan seluruh versi 10 versi 11 versi 12 saya. Selengkapnya silahkan baca artikel: My Extensions for PHPMaker Version 10 Masino Extensions for PHPMaker version 11Masino Extensions for PHPMaker version 12 Masino Extensions for PHPMaker version 2017(Catatan: Jika Anda mulai mengeluh atau ingin komplain ke saya mengapa artikel itu dalam bahasa Inggris, sebaiknya baca juga: Mudahnya Mempelajari PHPMaker). Terlalu banyak fungsi dan fitur yang sudah saya tambahkan melalui Extensions buatan saya tersebut. Silahkan Anda eksplorasi setiap Extensions melalui link yang sudah saya berikan tadi. Atau Anda bisa melihat sekaligus mencoba fitur-fitur baru apa saja yang saya tambahkan melalui link Demo I Love PHPMaker 10Demo I Love PHPMaker 11 Demo I Love PHPMaker 12 Demo I Love PHPMaker 2017. Dengan menggunakan Extensions yang saya buat ( Masino Extensions) untuk PHPMaker, maka saya tidak perlu lagi melakukan kostumisasi secara langsung ke dalam file Template PHPMaker. Saya cukup hanya mengaktifkan Extensions yang saya butuhkan dari project PHPMaker saya, lalu men-generate ulang semua file script yang digunakan untuk Aplikasi Web saya, dan… SELESAI! Begitu sajakah? Yep, begitu saja! Sangat mudah dan cepat sekali bukan? Bayangkanlah, jika Anda pun menggunakan Masino Extensions ini di project PHPMaker Anda, maka waktu development Anda bisa menjadi semakin lebih cepat lagi. Anda langsung akan mendapatkan fitur-fitur hebat ini ke dalam Aplikasi Web Anda. Anda tidak perlu bersusah payah dan pusing-pusing lagi memikirkan bagaimana caranya untuk membuat fitur-fitur tambahan
tersebut. Lagi-lagi, Anda sebagai Web Developer cukup hanya fokus untuk mengimplementasikan business-logic maupun business-process di Aplikasi Web yang Anda bangun. Selain itu, Masino Extensions akan tetap terus diperbarui mengikuti perkembangan versi yang dilakukan oleh PHPMaker. Setiap kali PHPMaker diupdate ke versi yang lebih tinggi, maka Masino Extensions akan tetap selalu diperbarui. Sekecil apapun itu! Mengapa? Karena Masino Extensions selalu saya gunakan di seluruh project PHPMaker saya, untuk semua Aplikasi Web yang saya kembangkan dan di-generate oleh PHPMaker. Wouw… betapa semakin nikmatnya hidup Anda sebagai Web Developer jika menggunakan PHPMaker beserta Masino Extensions!
Itulah alasan mengapa Masino Extensions ini sebaiknya wajib digunakan oleh Web Developer yang membangun Aplikasi Web-nya dengan menggunakan PHPMaker.
PHPMaker sebagai Solusi untuk Membangun Aplikasi Web yang Komplit Mei 11, 2014 oleh Masino Sinaga Tinggalkan Komentar Judul di atas memang benar. Tidak dibuat-buat. Bukan bahasa iklan juga. Judul itu untuk membantu Anda untuk memilih metode yang lebih tepat dalam membangun sebuah Aplikasi Web. Sudah banyak artikel yang saya tulis di situs ini membahas kehebatan sekaligus fleksibilitas PHPMaker dalam menghasilkan Aplikasi Web. Saya yakin Anda pun sudah tidak meragukan lagi kemampuan PHPMaker. Buat Anda yang baru mengenal PHPMaker, saya sarankan untuk membaca semua tulisan saya di situs ini. Tak kenal maka tak sayang, hehehe… Cukup klik menu Sitemap (Peta Situs) untuk melihat daftar semua artikel saya. Jadi, saya pastikan Anda sedang datang ke situs yang benar, pada waktu yang benar, dan Anda tidak akan membuang waktu Anda dengan sia-sia. PHPMaker merupakan solusi untuk membangun Aplikasi Web yang komplit bukanlah tanpa alasan. PHPMaker benar-benar serius mengenai hal ada ini, dengan menyediakan demo aplikasi benar-benar lengkap dengan segala fitur yang harus di sebuah Aplikasi Web. Mulai dari yang Login/Logout, Forgot Password, Registrasi Akun Pengguna, Ganti Password, Menu Akses, Session, Panel Admin, Pengaturan Pengguna, Hak Akses, RBAC, Paging, CRUD, List Page, Add Page, Copy, Edit Page, Delete Page, Search Page, Master/Detail Page, Master/Multi-Detail Add, Master/Multi-Detail Edit, Master/Multi-Detail Copy, Export Data, dan masih banyak lagi. Bahkan fitur-fitur yang belum Anda pikirkan selama ini sudah disediakan juga oleh PHPMaker! Salah satu contoh demo untuk PHPMaker versi 10 dapat Anda lihat dengan mengklik di sini. Sebagai panduan sebelum mengetes web demo tersebut, Anda dapat melihat sekilas informasi
yang terkait dengan demo tadi melalui link ini. PHPMaker bahkan menyediakan file project yang bisa Anda download dan coba sendiri di komputer Anda. Semua ini untuk membuktikan bahwa PHPMaker merupakan solusi untuk membangun Aplikasi Web yang komplit. Tidak berhenti di situ saja. Saya sebagai Web Developer; yang sama juga dengan Anda, entah itu Anda level pemula atau mahir sekalipun, dapat membuat Aplikasi Web dengan fitur-fitur yang lebih advanced lagi. Fitur-fitur itu seperti Password Strong Policy, Password Strength Meter, Table Width Style, Font Size and Font Type, Horizontal and Vertical Menu, Multiple Theme,
Export Data Privilleges Message Box and Footer Customization , jQuery , Header dan masih banyak lagi. Cukup denganAlert mengaktifkan beberapa Extensions yang saya buat di, project PHPMaker Anda. Itu artinya, Anda tidak perlu menulis kode apapun untuk menghasilkan fiturfitur yang advanced tersebut ke Aplikasi Web yang Anda buat dengan PHPMaker. Menyenangkan, bukan? Demo Aplikasi Web yang dihasilkan dengan menggunakan Extensions tadi dapat Anda lihat dengan mengklik link ini. Anda dapat melihat fitur-fitur baru apa saja yang saya tambahkan ke sebuah Aplikasi Web yang dapat dihasilkan melalui PHPMaker pada halaman home.php demo tersebut. Semoga bermanfaat, ya.
Pilihan untuk Menampilkan Pesan di Aplikasi Web melalui PHPMaker Mei 12, 2014 oleh Masino Sinaga Tinggalkan Komentar Setiap Aplikasi Web harus bisa menampilkan Pesan yang berisi informasi mengenai respon sistem terhadap kegiatan yang dilakukan oleh Pengguna. Misalnya, setelah Pengguna mengisi Username dan Password lalu mengklik tombol di bawahnya pada halaman Login, maka sistem harus memberikan pesan balikan kepada Pengguna apakah proses Login tadi berhasil atau gagal. Contoh lainnya, setelah Pengguna mengklik tombol Simpan di sebuah form entri data, maka sistem harus mengembalikan respon kepada Pengguna apakah data yang disimpan berhasil masuk ke database atau tidak. Dan masih banyak lagi event-event lainnya. Aplikasi Web yang di-generate oleh PHPMaker dapat menampilkan Pesan tersebut dengan dua cara. Anda sebagai Web Developer dapat menentukan apakah ingin menampilkan Pesan dalam bentuk kotak pesan (Message Box) yang muncul sebagai popup-message, ataukah hanya dalam bentuk Pesan yang langsung lengket di halaman (tanpa menggunakan popup-message). Jika Anda menggunakan pilihan pertama, maka cukup aktifkan pengaturan Use JavaScript popup message yang terdapat dari menu Tools -> Advanced Settings dari aplikasi PHPMaker. Sebaliknya, jika Anda ingin menggunakan pilihan kedua, maka hapus tanda centang di pengaturan tadi. Sayangnya, PHPMaker belum sepenuhnya menggunakan kotak pesan yang tampilannya mirip dengan style Twitter Bootstrap. Artinya, masih ada Pesan yang ditampilkan dengan menggunakan kotak pesan bawaan asli Javascript yang menggunakan sintaks atau function
alert(), dan sebagian lainnya memang sudah menggunakan Pesan dengan style Twitter Bootsrap. Sekali lagi, sayangnya belum semuanya.
Jangan khawatir! Jika Anda menggunakan Masino Extensions, maka Anda dapat menggunakan kotak pesan yang tampilannya sama dengan tampilan Modal Dialog di Twitter Bootstrap. Selain itu, jika Anda menggunakan pilihan untuk menampilkan Pesan tanpa popup-message, maka Anda pun dapat menentukan apakah untuk Pesan Berhasil dapat otomatis disembunyikan setelah 3 detik. Semua itu bisa Anda dapatkan hasilnya dengan cukup mengaktifkan Extension yang saya buat untuk PHPMaker. Setelah itu, pastikan jangan lupa untuk men-generate ulang seluruh file script melalui aplikasi PHPMaker. Biarkan aplikasi PHPMaker yang akan menangani secara teknis dengan mengenerate kode yang sesuai dengan pilihan Anda tadi.
Alangkah mudah dan menyenangkan sekali, bukan?
Jangan Pernah Memodifikasi File yang Sudah Digenerate oleh PHPMaker! Mei 13, 2014 oleh Masino Sinaga Tinggalkan Komentar Salah satu alasan yang paling kuat mengapa saya menggunakan PHPMaker untuk membangun Aplikasi Web adalah karena di samping tools ini dapat mempercepat proses pembuatan Aplikasi Web, juga akan membuat Web Developer disiplin bekerja. Pengertian disiplin ini adalah bahwa Web Developer dilatih untuk mengasah logikanya agar selalu bekerja dengan efektif dan efisien, yang pada akhirnya mendidik Web Developer untuk disiplin mengikuti sebuah aturan dengan pola tertentu. Sampai di sini, Anda dapat melihat lagi ‘kan, bahwa selalu saja ada sisi positif yang bisa diambil dari PHPMaker? Seperti yang sudah kita ketahui, bahwa setiap kali PHPMaker men-generate file-file script, maka itu artinya file yang lama (jika sebelumnya sudah pernah di-generate) akan ditimpa dengan filefile hasil generate yang baru. Semua modifikasi yang dilakukan oleh Web Developer (jika ada) langsung pada file-file script hasil generate tadi tentu saja akan hilang. Ditimpa dengan file-file script yang baru. Pola ini akhirnya mengasah logika yang paling sederhana, bahwa sangat sangat tidak disarankan untuk memodifikasi file script yang dihasilkan oleh PHPMaker! Artinya apa? Anda sebagai Web Developer dituntut untuk selalu bekerja dari sisi PHPMaker. Setiap perubahan yang Anda lakukan pada Aplikasi Web, maka lakukanlah selalu dari dalam aplikasi PHPMaker. Jadi, bukan dengan memodifikasi file script hasil generate. Bahkan, untuk mengubah pengaturan Aplikasi Web yang disimpan di file konfigurasi, seperti ewcfg*.php, sangat disarankan untuk melakukannya sebisa mungkin dari sisi PHPMaker, dan setelah itu mengenerate ulang file tersebut kembali.
Jadi, pantang hukumnya memodifikasi file-file script yang sudah di-generate oleh PHPMaker. Aturan ini harus Anda ingat mulai sekarang, karena jika tidak Anda ikuti, itu sama artinya Anda menyusahkan hidup Anda sendiri. Bayangkan jika modifikasi yang sudah Anda lakukan di filefile script hasil generate tadi dengan sekejap akan ditimpa oleh PHPMaker ketika Anda mengenerate kemudian dari PHPMaker. Sementara PHPMaker sudah memberi kesempatan kepada Web Developer untuk selalu bekerja di sisi PHPMaker. Semua perubahan yang Anda lakukan di sisi PHPMaker tentu saja akan disimpan di file project PHPMaker. Anda tidak usah pusing-pusing lagi apa mengingat-ingat atau mungkin mencatatWeb di file atau lokasi lain mengenai perubahan-perubahan saja yang Anda lakukan di Aplikasi Anda. Semuanya sudah terintegrasi di project PHPMaker Anda, sehingga ketika Anda ingin mengupdate Aplikasi Web Anda di waktu mendatang, cukup jalankan file project ini menggunakan PHPMaker. Sebagai Web Developer, sebenarnya Anda sudah diberikan kemudahan oleh PHPMaker dengan bekerja mengikuti pola yang sangat sederhana ini. Lama-kelamaan Anda akan menjadi terbiasa mengikuti pola ini, dan melatih Anda agar disiplin bekerja menggunakan PHPMaker. Kurang kerjaan namanya jika Anda tidak mengikuti pola ini di PHPMaker, hehehe…
Jadi, sudah saatnya Anda meninggalkan pola kerja dan pola hidup yang tidak disiplin. Tinggalkan pola kerja yang menyusahkan hidup Anda sekarang juga. Pola kerja yang mengandalkan pekerjaan dengan menulis kode langsung ke file-file script di sisi Aplikasi Web Anda, sudah bukan jamannya lagi sekarang ini!
Urutan Server Event pada Aplikasi Web yang Dibuat oleh PHPMaker Mei 14, 2014 oleh Masino Sinaga 1 Komentar Secara umum, Server Events dijalankan pada Aplikasi Web yang di-generate oleh PHPMaker dengan urutan sebagai berikut: 1. 2. 3. 4. 5. 6. 7. 8. 9.
Page_Loading (Global function) Page_Load (Page class method) Page_Rendering (Global function) Page_Render Page_DataRendering .RecordSet_* / Row_* (Page/Table class method) Page_DataRendered Page_Unload (Page class method) Page_Unloaded (Global function)
Sekedar mengingatkan kembali, bahwa kode yang dihasilkan oleh PHPMaker menggunakan OOP (Object Oriented Programming). Sejak versi 9, class Page diwariskan dari class Table, sehingga Anda dapat menggunakan $this di dalam method-method class Page untuk mengakses member-member dari class Table. Untuk mendukung versi PHPMaker yang sebelumnya, object Table masih dipertahankan dan dia menjadi sebuah alias dari object Page, sehingga Anda juga dapat menggunakan $this di dalam method-method class Table untuk mengakses membermember dari class Page. Contoh: $sNilaiField = $this->NamaFieldAnda->CurrentValue;
Ini pun semakin membuktikan bahwa betapa mudahnya Anda jika ingin menambahkan kode sendiri melalui bagian Server Events di PHPMaker. Anda tidak perlu menulis kode langsung ke dalam file script yang sudah di- generate oleh PHPMaker. Anda juga tidak perlu memodifikasi Template PHPMaker untuk menambahkan kode Anda sendiri. Cukup tulis kode Anda melalui kerangka kerja yang sudah disediakan dari dalam aplikasi PHPMaker. Semua kode Anda yang ditulis di Server Events akan disimpan di file project PHPMaker Anda. Page_Unload dan Page_Unloaded merupakan event-event yang terjadi di sisi server yang dipanggil setiap kali halaman diakses dan sebelum HTML ditampilkan ke browser di sisi client. Mereka bukanlah event-event yang dipanggil sebelum Anda meninggalkan sebuah halaman dan memuat kembali halaman tersebut atau pergi ke halaman lainnya. Sebagai contoh, jika Anda men-submit sebuah form di dalam sebuah halaman, biasanya dia men-submit ke halaman itu sendiri, maka itu artinya Anda sebenarnya sedang memuat ulang halaman tersebut, sehingga semua server events akan dipanggil kembali. Contoh lainnya, jika Anda mengklik sebuah hyperlink yang akan membuka halaman lain, maka halaman di sisi server bahkan tidak diakses lagi dan tidak ada server event untuk halaman semula yang akan dipanggil.
Jika sebuah server event adalah sebuah function yang bersifat global, maka tidak ada $this di dalam konteks function tadi. Jika Anda ingin mengacu ke object Page tersebut, maka Anda harus menggunakan function global CurrentPage(). Contoh: $sNilaiField = CurrentPage()->NamaFieldAnda->CurrentValue;
Server Event sebenarnya merupakan Function atau Method Class. Jika Anda ingin menggunakan variabel global di suatu event, perlu diingat mengenai ruang lingkup variabel PHP, Anda harus menggunakan kata kunci global atau $GLOBALS. Contoh: global $conn; $rsData = $conn->Execute("SELECT NamaField FROM NamaTable WHERE blablabla");
atau bisa juga seperti ini:
$rsData = $GLOBALS["conn"]->Execute("SELECT NamaField FROM NamaTable WHERE blablabla");
Ditempatkan di bawah: PHPMaker Ditag dengan:Page, Page_DataRendering, Page_Load, Page_Loading, Page_Render, Page_Rendering, Page_Unload, Page_Unloaded, PHPMaker Indonesia, Recordset, Row, Server Events, Table
Membuat Koneksi Database yang Fleksibel di PHPMaker Mei 15, 2014 oleh Masino Sinaga 44 Komentar Ketika membangun sebuah Aplikasi Web, umumnya Web Developer melakukannya di komputer lokal (localhost). Mulai dari web server, database, dan file-file script yang digunakan untuk Aplikasi Web, semuanya dikerjakan dan ditempatkan di komputer localhost. Bukan di komputer server. Hal ini wajar, karena di samping untuk mempercepat waktu proses pengembangan, waktu akses ke Aplikasi Web di komputer localhost jauh lebih mudah dan cepat. Apalagi jika Web Developer tidak selalu terhubung ke komputer server, maka satu-satunya komputer yang bisa diandalkan adalah komputer localhost. Dengan bekerja di localhost maka Web Developer menjadi selalu memiliki backup di komputernya sendiri sebelum file-file script tadi diunggah ke komputer server (web server) yang sebenarnya. Dalam proses pengembangan, sering kali Web Developer harus melakukan rangkaian pekerjaan mulai dari menulis/mengubah kode di file script, mengetesnya kembali, sampai akhirnya memutuskan bahwa semuanya berjalan dengan baik. Jika semua file-file script sudah selesai dibuat dan Aplikasi Web sudah ditest di komputer localhost dan dipastikan Aplikasi Web berjalan dengan baik, barulah Web Developer akan mengunggah file-file script tadi ke komputer server. Ketika file-file script tadi sudah berhasil diunggah ke komputer server, maka Aplikasi Web tadi tidak bisa langsung dijalankan sebagaimana mestinya. Mengapa? Karena setting database yang digunakan di komputer localhost biasanya berbeda dengan setting koneksi database di komputer server. Artinya? Web Developer harus mengubah setting koneksi database di file script yang sudah diunggah ke komputer server tadi. Jika tidak, maka Aplikasi Web tersebut tidak bisa dijalankan dengan baik. Tahukah Anda, bahwa mengganti setting koneksi database di file script setiap kali setelah diunggah ke web server adalah pekerjaan yang sepele tapi juga cukup menjengkelkan? Bagaimana tidak? Karena jika Anda lupa menyesuaikannya, maka Aplikasi Web Anda akan menimbulkan error tidak dapat menghubungi database. Akhirnya Aplikasi Web Anda tidak dapat digunakan sama sekali oleh Pengguna. Menyesuaikan setting koneksi database di file script yang sudah diunggah ke komputer server jelas sangat penting dilakukan. Tapi sayangnya, karena selalu akan ada jedah waktu yang terjadi mulai dari ketika file script yang berisi koneksi database tadi berhasil diupload sampai saat Web
Developer selesai menggantinya, maka itu artinya selalu ada kemungkinan terjadi error di Aplikasi Web tadi. Tentu saja hal ini sebaiknya harus dihindari, bukan? Seharusnya, Web Developer tidak perlu lagi menyesuaikan setting koneksi database setiap kali file-file yang sudah di-generate oleh PHPMaker tadi diunggah ke komputer server. PHPMaker dapat mengatasi semua permasalahan di atas dengan sangat mudah. PHPMaker menyediakan sebuah server event yang bernama Database_Connecting. Web Developer dapat menggunakan dua koneksi database yang berbeda di event ini. Koneksi ke database untuk komputer localhost, dan yang koneksi PHPMaker database untuk komputer di digunakan server. Ini untuk satu lagi bukti dari di sekian banyaknya fiturlainnya yang membuat sangat fleksibel membangun Aplikasi Web Anda. Berikut ini contoh kode yang bisa Anda gunakan di server event Database_Connecting pada Aplikasi Web yang di-generate oleh PHPMaker. Anda bisa menambahkannya dari lokasi: Server Events -> Global -> All Pages dalam aplikasi PHPMaker: function Database_Connecting(&$info) { if (ew_CurrentUserIP() == "127.0.0.1") { // setting koneksi database di komputer localhost $info["host"] = "localhost"; $info["user"] = "aaa"; // sesuaikan dengan username database di komputer localhost $info["pass"] = "bbb"; // sesuaikan dengan password database di komputer localhost $info["db"] = "ccc"; // sesuaikan dengan nama database di komputer localhost } else { // setting koneksi database untuk komputer server $info["host"] = "www"; komputer server
// sesuaikan dengan ip address atau hostname
$info["user"] = "xxx"; // sesuaikan dengan username database di komputer server $info["pass"] = "yyy"; // sesuaikan deengan password database di komputer server $info["db"] = "zzz"; // sesuaikan dengan nama database di komputer server } }
Contoh kode di atas menggunakan database MySQL. Untuk database lainnya seperti Microsoft SQL Server, tentu saja ada perbedaan. Anda bisa menggunakan Connection String yang dihasilkan oleh PHPMaker ketika Anda menentukan setting koneksi database ke SQL Server.
Jangan lupa, setelah Anda menentukan setting koneksi database yang fleksibel tadi, generate ulang semua file script dengan menggunakan PHPMaker seperti biasa. Dengan mengoptimalkan server event Database_Connecting ini, maka Anda sebagai Web Developer tidak perlu lagi repot-repot mengganti setting koneksi database setiap kali file-file script yang sudah di- generate oleh PHPMaker diunggah ke komputer server.
Mudahnya Menyembunyikan Aplikasi Web dari PHPMakerItem Menu Mei 16, 2014 oleh Masino Sinaga 3 Komentar Bukan PHPMaker namanya jika lagi-lagi tidak memberikan kemudahan dan fleksibilitas yang sangat tinggi kepada Web Developer. Tidak ada habis-habisnya keuntungan yang bisa kita dapatkan dengan menggunakan PHPMaker sebagai tools untuk membangun Aplikasi Web. Setiap hari ada saja fitur-fitur yang bisa kita eksplorasi darinya, sama dengan artikel mengenai PHPMaker yang setiap hari saya tulis dan publikasikan di situs ini. Salah satu fitur hebat lainnya di PHPMaker adalah kemampuan untuk menyembunyikan item menu pada saat Aplikasi Web dijalankan. Kali ini mari kita membahas dapat membantu Web Developer menyembunyikan item menubagaimana tertentu di PHPMaker Aplikasi Web yang di-generate olehnya. Fitur ini sering sekali diimplementasikan di sebuah Aplikasi Web, karena tidak semua item menu bisa dilihat/diakses oleh semua Pengguna. Sering kali item menu tertentu harus disembunyikan untuk Pengguna dengan level akses tertentu. Tidak ada jalan lain kecuali dengan menerapkan businesslogic yang dinamis mengikuti kebutuhan di Aplikasi Web tersebut. PHPMaker telah menyediakan server event yang bernama MenuItem_Adding untuk menyembunyikan item menu tertentu dengan sangat mudah. Event ini dijalankan setiap kali sebuah item menu sedang ditambahkan ke bagian Menu pada Aplikasi Web yang dihasilkan oleh PHPMaker. Informasi item menu dilewatkan ke event ini sebagai sebuah instansiasi dari object cMenuItem. Perlu diingat juga bahwa event ini sifatnya global. Artinya, dia akan selalu dipanggil setiap kali Aplikasi Web Anda ditampilkan ke browser. Anda sebagai Web Developer cukup hanya mengembalikan nilai FALSE jika ingin menyembunyikan item menu tertentu. Sedangkan jika Anda mengembalikan nilai TRUE (nilai default), maka item menu akan ditambahkan langsung ke bagian Menu di Aplikasi Web Anda. Tapi, itu artinya tidak selalu item menu itu dapat dilihat oleh semua Pengguna. Tergantung kepada hak akses Pengguna juga. Sebuah item menu akan ditampilkan hanya jika property Allowed bernilai TRUE. Ketika item menu dilewatkan ke event ini, property Allowed diset berdasarkan fitur User Level Security dari project PHPMaker Anda. Meskipun demikian, Anda dapat mengubahnya dengan mengeset $Item->Allowed menjadi TRUE atau FALSE; tergantung kebutuhan Anda.
Berikut ini beberapa contoh penggunaan kode pada server event MenuItem_Adding. Anda dapat menambahkan kode Anda dengan sangat mudah melalui lokasi: Server Events -> Global -> All Pages dari dalam aplikasi PHPMaker. Sebagai Web Developer, sebelum menulis kode Anda di server event ini, saya sarankan Anda agar mengeksplorasi property apa saja yang dimiliki oleh setiap object $Item. Caranya cukup dengan menambahkan kode berikut: var_dump($Item); // untuk melihat property yang dimiliki oleh $Item ...
ke dalam server event tadi, lalu generate ulang seluruh file script, dan jalankan ulang Aplikasi Web Anda dari browser. Selengkapnya kode tadi di dalam server event MenuItem_Adding menjadi seperti ini: function MenuItem_Adding(&$Item) { var_dump($Item); // untuk melihat property yang dimiliki oleh $Item ... }
Setelah Anda mengetahui property apa saja yang terdapat di dalam object $Item tadi, maka mari kita mencoba mengimplementasikannya. Berikut ini contoh kasus untuk menampilkan item menu “Download” hanya kepada Pengguna yang sudah berhasil login: function MenuItem_Adding(&$Item) { //var_dump($Item); // Return False if menu item not allowed if ($Item->Text == "Download") { return IsLoggedIn(); } else { return TRUE; } }
Sedangkan kode di bawah ini adalah contoh kasus untuk menampilkan item menu yang memiliki URL “usersmanagement.php” hanya dapat diakses oleh Pengguna yang memiliki userlevel Admin. function MenuItem_Adding(&$Item) { //var_dump($Item); // Return False if menu item not allowed
if ($Item->Url == 'usersmanagement.php') { return IsAdmin(); } else { return TRUE; } }
Jangan lupa, setelah Anda menulis kode Anda di server event tersebut, generate ulang semua file script dengan menggunakan PHPMaker seperti biasa. Dengan menggunakan server event MenuItem_Adding, maka Anda sebagai Web Developer dapat mengendalikan/menyembunyikan item menu tertentu berdasarkan business-logic yang Anda terapkan di Aplikasi Web yang dibangun oleh PHPMaker. Betapa mudah dan nikmatnya Anda membangun Aplikasi Web dengan menggunakan PHPMaker, bukan?
Betapa Mudahnya Memanipulasi Menu Aplikasi Web dari PHPMaker Mei 17, 2014 oleh Masino Sinaga Tinggalkan Komentar Di artikel saya sebelumnya, kita sudah mengetahui bahwa betapa mudahnya menyembunyikan Item Menu di Aplikasi Web yang dibuat dengan PHPMaker. Kita cukup hanya menulis sedikit kode saja dari dalam aplikasi PHPMaker pada bagian server event MenuItem_Adding. Artinya, kita tidak perlu menulis kode di file script yang sudah di- generate oleh PHPMaker. Kita juga tidak perlu bersusah payah mengkostumais file Template PHPMaker. Semuanya dapat dilakukan dengan sangat mudah dan cepat hanya dari dalam project PHPMaker. Kemampuan untuk menyembunyikan Item Menu tadi tentu saja belum lengkap jika tidak disertai dengan kemampuan tambahan lainnya yang terkait dengan pemanipulasian Menu di Aplikasi Web. Di antaranya, bagaimana cara menambahkan Item Menu baru sesuai keinginan kita saat Aplikasi Web dimuat ke browser, bagaimana cara memindahkan Item Menu tertentu ke posisi yang diinginkan, bagaimana cara menghilangkan semua Item Menu, dan lain sebagainya. Semua kemampuan tambahan itu bisa diatasi dengan sangat mudah oleh PHPMaker. Penasaran bagaimana caranya? PHPMaker sudah menyediakan server event yang bernama Menu_Rendering untuk memanipulasi Menu di Aplikasi Web yang dihasilkan olehnya. Lokasi server event ini berada di level yang sama dengan lokasi server event MenuItem_Adding yang sebelumnya sudah kita bahas, yaitu dari: Server Events -> Global -> All Pages pada project PHPMaker. Sesuai dengan
namanya, server event Menu_Rendering akan dieksekusi saat Menu sedang di-render atau ditampilkan output-nya ke browser Pengguna. Server event Menu_Rendering dijalankan setelah server event MenuItem_Adding selesai dijalankan. Anda bisa membuktikan hal ini dengan cara menambahkan kode berikut ke dalam server event Menu_Rendering: var_dump($Menu); // untuk mengetahui property yang dimiliki object $Menu
kemudian tambahkan juga kode berikut ke dalam server event MenuItem_Adding: var_dump($Item); // untuk mengetahui property yang dimiliki object $Item
lalu generate ulang file script dengan PHPMaker, dan terakhir jalankan Aplikasi Web Anda di browser. Sekedar untuk menyegarkan ingatan kembali, server event di PHPMaker sebenarnya adalah function dalam bahasa PHP yang dijalankan di sisi server. Itulah sebabnya disebut dengan server event, yaitu event yang dijalankan di sisi server. Server event Menu_Rendering sama artinya $Menudari dengan function Menu_Rendering. inike memiliki satu parameter, yaitu . Artinya, informasi Menu secara keseluruhanFunction dilewatkan event ini sebagai sebuah instansiasi object (class) cMenu. Anda dapat mengetahui property apa saja yang dimiliki oleh object Menu tadi dari kode var_dump($Menu); di atas tadi.
Sama seperti server event MenuItem_Adding, server event Menu_Rendering juga merupakan function atau event yang sifatnya global. Artinya, dia akan selalu dipanggil setiap kali Aplikasi Web ditampilkan ke browser Pengguna. Berikut ini beberapa contoh penggunaan kode pada server event Menu_Rendering. Ini adalah contoh kode untuk menambahkan Item Menu baru, lalu menaruh Item Menu tersebut pada posisi ketiga di menu induk/root, dan hanya berlaku untuk Pengguna yang sudah berhasil login ke Aplikasi Web: function Menu_Rendering(&$Menu) { if ($Menu->IsRoot) { // pastikan ini hanya untuk menu induk/root $Menu->AddMenuItem(10000, "MyMenuText", "mypage.php", -1, "", IsLoggedIn()); // tambahkan Item Menu baru $Menu->MoveItem("MyMenuText", 2); // pindahkan ke posisi ketiga (indeks ke-2 dalam array berbasis 0) }
}
Dalam contoh tersebut, dilakukan pemeriksaan kondisi terlebih dulu apakah status menu tersebut adalah Root atau menu induk/utama dengan menggunakan property IsRoot, dan jika memenuhi syarat, maka tambahkan Item Menu yang baru menggunakan method AddMenuItem, kemudian memindahkan Item Menu yang baru tadi menggunakan method MoveItem. Method AddMenuItem memiliki enam parameter. Yang pertama adalah ID dari Item Menu yang ditambahkan, yaitu 10000 (harus unik, tidak boleh sama dengan ID milik Item Menu lainnya). Parameter kedua merupakan teks dari Item Menu tadi, yaitu MyMenuText. Parameter yang ketiga adalah URL dari Item Menu, yaitu mypage.php. Parameter yang keempat nilainya 1, yang artinya Item Menu tersebut merupakan parent menu atau menu induk. Selanjutnya parameter kelima string kosong “”, yaitu source dari Item Menu; yang dalam hal ini tidak terlalu berpengaruh untuk apa gunanya. Sedangkan parameter yang terakhir atau yang keenam bernilai IsLoggedIn(), yaitu function global di PHPMaker untuk memeriksa status Pengguna apakah benar sedang dalam posisi sudah berhasil login. Method MoveItem memiliki dua parameter. Parameter pertama adalah teks dari Item Menu yang akan dipindahkan, yaitu MyMenuText. Sedangkan parameter kedua adalah lokasi baru dari Item Menu yang dipindahkan, yaitu 2, yang artinya posisi menu yang baru tadi akan berada di urutan ketiga dari kiri (jika menu Horizontal) atau ketiga dari atas (jika menu Vertical). Mengapa kita menggunakan nilai 2 dan bukan 3? Karena kita menggunakan indeks array berbasis 0. Artinya, indeks 0 adalah element yang pertama. Berarti indeks yang ke-2 adalah elemen yang ketiga. Oke, sampai di sini saya yakin Anda sudah memahami fungsi dari server event Menu_Rendering. Sekarang mari kita melihat contoh yang lainnya supaya semakin lebih mengerti lagi, sekaligus memperkenalkan method lain untuk menghapus semua Item Menu. Di kode berikut ditunjukkan bahwa betapa mudahnya kita menghapus semua Item Menu lalu selanjutnya menambahkan dua Item Menu baru sesuai yang kita inginkan. Dengan kata lain, kode ini bermanfaat untuk menggunakan Menu buatan kita sendiri daripada menggunakan Menu yang sudah terdefinisi dari menu Tools -> Menu Editor dalam project PHPMaker Anda: function Menu_Rendering(&$Menu) { if ($Menu->IsRoot) { // cek apakah menu induk $Menu->Clear(); // hapus semua item menu, cukup dari induknya saja! $Menu->AddMenuItem(1, "MyMenuText1", "mypage1.php"); // tambahkan item menu baru pertama $Menu->AddMenuItem(2, "MyMenuText2", "mypage2.php"); // tambahkan item menu baru kedua } }
Dengan menggunakan Menu_Rendering, maka Anda sebagai Web Developer dapat memanipulasi Menu di Aplikasi Web yang Anda bangun dengan sangat mudah dan cepat menggunakan PHPMaker. Jika di Aplikasi Web Anda ada kebutuhan untuk mengubah Item Menu tertentu, maka Anda dapat menyembunyikan Item Menu tersebut lalu menambahkan Item Menu yang baru. Itu artinya Anda dapat menggunakan kombinasi dari kedua server event MenuItem_Adding dan Menu_Rendering. Atau bahkan jika Anda ingin menggunakan Item Menu Anda sendiri yang misalnya disimpan di suatu tabel di database Anda, maka Anda bisa menggunakan kode seperti yang terdapat di contoh yang kedua tadi. Luar biasa memang PHPMaker! Betapa semakin mudah dan nikmatnya Anda sekarang bekerja di bidang Web Development dengan menggunakan PHPMaker…
Alternatif Validasi Pengguna Aplikasi Web dari PHPMaker Mei 18, 2014 oleh Masino Sinaga 1 Komentar Jika Anda sudah membaca sebagian besar artikel yang saya tulis di situs ini, Anda pasti sering menemukan kalimat yang isinya kurang lebih menyatakan bahwa betapa mudah sekaligus fleksibelnya PHPMaker untuk membangun Aplikasi Web. Pernyataan tersebut memang beralasan, alias benar apa adanya. Fleksibilitas yang dimiliki oleh PHPMaker di antaranya memungkinkan Web Developer dapat menerapkan business-logic sendiri melalui penambahan sedikit kode dari bagian Server Events. Tidak terkecuali buat penanganan validasi Pengguna yang sedang Login ke Aplikasi Web. Anda sebagai Web Developer dapat menambahkan kode Anda sendiri untuk memvalidasi data Pengguna sesuai dengan kebutuhan tertentu. Katakanlah Anda ingin memvalidasi Pengguna di Aplikasi Web Anda menggunakan LDAP; selain hanya menggunakan validasi berdasarkan tabel users yang telah ditentukan dari pengaturan Security -> Use Existing Table aplikasi PHPMaker. Hal ini pun bisa diatasi oleh PHPMaker dengan sangat mudah. PHPMaker telah menyediakan server event yang bernama User_CustomValidate untuk memvalidasi Pengguna Aplikasi Web Anda dengan cara Anda sendiri. Seperti namanya, server event ini berisi kode yang sifatnya kostum untuk memvalidasi Pengguna sesuai dengan aturan tertentu. Server event ini dapat Anda akses dari lokasi: Server Events -> Global -> All Pages dalam project PHPMaker Anda. Perlu diingat, bahwa server event ini merupakan member dari class Security yang digunakan oleh PHPMaker. Artinya, Anda dapat mengacu langsung kepada member lainnya yang terdapat di class Security itu. Server event User_CustomValidate dieksekusi sebelum validasi Pengguna yang standar selama ini digunakan oleh PHPMaker untuk Aplikasi Web Anda. Argumen yang terdapat di server event ini ada dua, yaitu username dan password; yang dimasukkan oleh Pengguna melalui form Login. Cukup kembalikan nilai TRUE jika username dan password tersebut memenuhi validasi
yang Anda tentukan tadi. Nilai kembalian standar yang dikembalikan oleh server event ini adalah FALSE. Itu artinya, PHPMaker akan menggunakan kode validasi asli bawaan PHPMaker jika Anda tidak mengubahnya menjadi TRUE. Catatan: Sejak PHPMaker versi 9, standar validasi akan dijalankan setelah server event User_CustomValidate selesai dijalankan. Jika Anda mengembalikan nilai TRUE, maka Pengguna akan selalu memenuhi/melewati standar validasi yang digunakan oleh PHPMaker, dan akan mendapatkan User ID dan User Level, jika ada. Jika Anda mengembalikan nilai FALSE, maka standar validasi bawaan PHPMaker yang akan dijalankan secara normal. Jika Anda menggunakan fitur Advanced Security (Security -> Use Existing Table -> Advanced) di project PHPMaker Anda), maka Anda tetap memerlukan tabel users untuk menyimpan data Pengguna seperti User ID dan User Level, meskipun nilai field password dapat berupa string kosong atau nilai apapun jika Anda mengembalikan nilai TRUE. Supaya semakin lebih jelas, mari kita simak contoh berikut. Kode ini menunjukkan bagaimana validasi kostum dapat ditambahkan oleh Web Developer menggunakan Login ke server LDAP dengan sangat mudah. Contoh kode berikut juga dapat Anda lihat dengan mengklik tombol Code Repository dari bagian Server Events di dalam project PHPMaker Anda. Untuk mencoba kode ini, pastikan Anda sudah pernah (berpengalaman) menggunakan metode otentikasi menggunakan kode PHP ke server LDAP, dan sudah mengaktifkan extension php_ldapphp_ldap di web server yang Anda pakai. Contoh, Wampserver, maka extension sudah saya aktifkan dari menu saya PHPmenggunakan -> PHP Extensions pada aplikasi Wampserver saya (sesuaikan dengan web server yang Anda pakai). function User_CustomValidate(&$usr, &$pwd) { if (!function_exists("ldap_connect")) // cek apakah function ldap_connect terdeteksi dari web server die("LDAP belum terinstal atau diaktifkan."); // jika tidak, tampilkan pesan dan langsung exit $ldapconn = ldap_connect("ldap.example.com", 389) or die("Tidak terhubung ke server LDAP."); // jangan lupa untuk menyesuaikan nama host dan port server LDAP-nya if ($ldapconn && ldap_bind($ldapconn, $usr, $pwd)) { // jika koneksi ke LDAP valid $this->setCurrentUserName($usr); // set nama pengguna dari parameter username return TRUE; // pastikan TRUE supaya validasi standar tidak dilakukan lagi } }
Dengan menggunakan server event User_CustomValidate, maka Anda sebagai Web Developer dapat menambahkan kode Anda sendiri untuk memvalidasi Pengguna Aplikasi Web Anda dengan menggunakan metode lainnya selain contoh LDAP di atas.
Betapa nikmatnya menggunakan PHPMaker, bukan?
Mudahnya Mengambil Informasi Pengguna Setelah Login di Aplikasi Web dari PHPMaker Mei 19, 2014 oleh Masino Sinaga 14 Komentar Sebagai Web Developer, pernahkah Anda mengalami kesulitan ketika akan menampilkan informasi yang terkait Pengguna yang sudah berhasil login ke Aplikasi Web yang Anda bangun? Katakanlah di halaman yang pertama kali muncul setelah Pengguna berhasil login, Anda ingin menampilkan pesan selamat datang yang disertai dengan nama lengkap Pengguna tersebut. Biasanya, Web Developer melakukan query ulang ke database untuk mengambil data Pengguna berdasarkan ID Pengguna atau Username yang berhasil login tadi. Melakukan query ulang ke database adalah cara konvensional atau paling kuno yang paling sering dilakukan oleh Web Developer. Mengapa? Karena dengan melakukan query ulang, maka Anda membuka koneksi ke database lagi, sehingga melakukan satu proses tambahan ke database yang bisa menambah waktu. Seharusnya, pada saat Pengguna berhasil login, sistem harus bisa menyediakan informasi Pengguna, karena data Pengguna sudah berhasil divalidasi. Pertanyaannya adalah: Bagaimana caranya? Bagaimana menghindari melakukan koneksi dan query ulang ke database tadi? Apakah ada cara yang lebih efektif, sekaligus efisien untuk mendapatkan informasi Pengguna yang sudah berhasil login? Jawabannya: Tentu saja ada! PHPMaker dapat mengatasi hal ini dengan sangat mudah dan cepat. PHPMaker telah menyediakan sebuah server event yang bernama User_Validated, yang dapat Anda akses dari lokasi: Server Events -> Global -> All Pages di project PHPMaker Anda. Seperti namanya, server event ini dieksekusi setelah Pengguna berhasil Login ke Aplikasi Web. Artinya, data Pengguna tersebut telah berhasil divalidasi oleh sistem. Perlu diingat, bahwa server event ini merupakan member dari Class Security. Artinya, Anda dapat mengakses member lainnya secara langsung di class tersebut (jika dibutuhkan). Hal lain yang perlu diingat adalah, server event User_Validated tidak berlaku untuk Login yang dilakukan oleh Administrator menggunakan fitur Administrator Login (Hard-coded)yang terdapat di menu tab Security dari aplikasi PHPMaker. Anda sebagai Web Developer harus memastikan bahwa kode ini tidak diterapkan untuk Pengguna System Administrator.
Informasi Pengguna dilewatkan ke server event tersebut sebagai sebuah array. Argumen yang digunakan di server event ini adalah $rs. Anda bisa mendapatkan informasi Pengguna yang sedang login, lalu menggunakannya sesuai dengan kebutuhan di Aplikasi Web Anda. Contoh, di tabel users pada database yang Anda gunakan sebagai tabel untuk memverifikasi data Pengguna, terdapat field Nama_Lengkap. Anda bisa mendapatkan nilai dari field tersebut cukup dengan menggunakan $rs[“Nama_Lengkap”]. Berikut ini contoh kode yang dapat Anda gunakan untuk server event User_Validated: function User_Validated(&$rs) { if (IsLoggedIn() && !IsSysAdmin()) { $_SESSION['UserNamaLengkap'] = $rs['Nama_Lengkap']; } }
Seperti yang Anda lihat dari kode tersebut, kita harus menangani kode ini hanya untuk Pengguna yang bukan Administrator yang login menggunakan fitur Administrator Login (Hard-coded) yang dapat Anda tentukan dari PHPMaker. Itu artinya, kita mengecualikan kode ini hanya untuk Pengguna yang System Administrator (Sys Admin). PHPMaker telah menyediakan sebuah function untuk mendeteksi apakah Pengguna yang sedang login adalah Sys Admin atau bukan. Cukup dengan menggunakan !IsSysAdmin() untuk memastikan bahwa Pengguna bukan Sys Admin. Kita juga harus memastikan bahwa status Pengguna sudah login dengan menggunakan fungsi global di PHPMaker: IsLoggedIn(), karena jika tidak, maka akan menimbulkan error. Jika kedua kondisi di atas tadi dipenuhi, maka dalam contoh tersebut kita dapat memperoleh data Nama Lengkap Pengguna (yang diambil dari field yang bernama Nama_Lengkap). Tentu saja kita asumsikan nilai field tersebut bukanlah string kosong. Hasilnya lalu kita tampung ke dalam sebuah variabel session yang bernama UserNamaLengkap. Karena telah ditampung ke variabel session, maka data ini bisa langsung Anda gunakan dari halaman apapun di Aplikasi Web Anda. Dengan menggunakan server event User_Validated, maka Anda tidak perlu repot-repot melakukan query ulang ke database. Anda juga dapat memastikan bahwa data Pengguna yang diambil sudah valid, karena sudah divalidasi oleh sistem saat berhasil login ke Aplikasi Web. Wouw! Betapa mudahnya mengimplementasikan business-logic di Aplikasi Web yang dibangun oleh PHPMaker.
Mudahnya Menerapkan Hak Akses yang Dinamis di Aplikasi Web dari PHPMaker
Mei 20, 2014 oleh Masino Sinaga 3 Komentar PHPMaker sudah menyediakan fitur Security yang begitu lengkap dan demikian hebatnya di Aplikasi Web yang dibuat olehnya. Di antaranya menerapkan konsep RBAC (Role Based Access Control) untuk memudahkan Web Developer mengelola pembagian Hak Akses berdasarkan Peran yang dimiliki oleh setiap Pengguna. RBAC sudah sering digunakan di aplikasi untuk menangani hak akses Pengguna, entah itu yang berbasis web maupun desktop. Sekedar ingatan kembali, RBAC memisahkan konsep , Peran dan . Ketiganya didefinisikan secara terpisah; sebagai tiga buahPengguna entitas atau object, di Hakuntuk Aksesmenyegarkan dalam sistem aplikasi. Sekalipun dipisah, mereka memiliki kaitan yang sangat erat. Setiap Pengguna memiliki Peran tertentu. Kemudian setiap Peran memiliki kumpulan dari beberapa Hak Akses (seperti: Tambah, Ubah, Hapus, Cari, Export Data, Tampilan, dsb). Ketiganya bisa didefinisikan secara dinamis dari dalam Aplikasi Web, maupun secara statis dari dalam aplikasi PHPMaker. Sekedar informasi, istilah Peran di RBAC sama dengan istilah User Level di Aplikasi Web yang dibangkitkan oleh PHPMaker. Jadi, jika Anda menemukan istilah User Level di artikel ini, maka itu sama artinya dengan konsep Peran di RBAC. Karena adanya kebutuhan di Aplikasi Web yang cenderung relatif berubah, maka sangat disarankan untuk menggunakan pendefinisian RBAC secara dinamis. Pengertian dinamis di sini artinya bisacenderung ditentukanmemilih saat Aplikasi Web olehmetode Pengguna level Administrator. Web Developer metode ini dijalankan dibandingkan statis, karena sewaktu-waktu dapat diubah dan hasilnya tersimpan di database. Tapi, bukan berarti setelah menggunakan metode yang dinamis ini, kita hanya bisa menggunakan pendefinisian Hak Akses yang sudah tersimpan di database. Kadang-kadang, kita membutuhkan business-logic tertentu yang ingin menambahkan atau bahkan menghapus Hak Akses yang dimiliki oleh Pengguna melalui Peran tertentu. Misalnya, untuk Pengguna dengan Peran atau User Level tertentu yang sebelumnya sudah ditentukan secara dinamis, kita ingin menambahkan lagi Hak Akses lainnya sesuai dengan kebutuhan. Supaya lebih jelas, mari kita simak contoh berikut. Katakanlah Pengguna nancy memiliki User Level Sales di Aplikasi Web yang Anda bangun. Sebelumnya sudah didefinisikan dari dalam Aplikasi Web tersebut, bahwa Peran atau User Level Sales hanya diijinkan bisa melihat data di menu Categories. Artinya: Peran ini tidak dapat menambah, mengubah, bahkan menghapus data di menu Categories tadi. Belakangan, ada kebutuhan yang membolehkan semua Pengguna di peran Sales untuk menambah dan mengubah data. Pertanyaannya adalah: bagaimana cara menambahkan Hak Akses Tambah dan Edit data tersebut tanpa harus mengubah pendefinisian Hak Akses yang sudah disimpan di database dan terdapat di Peran tadi? PHPMaker dapat mengatasi hal ini dengan sangat mudah dan cepat. PHPMaker sudah menyediakan sebuah server event yang bernama UserLevel_Loaded, yang dapat Anda akses dari lokasi: Server Events -> Global -> All Pages di project PHPMaker Anda. Seperti namanya, server event ini dieksekusi setelah Pengguna berhasil Login ke Aplikasi Web dan setelah User
Level dimuat oleh sistem. Di server event ini Anda sebagai Web Developer dapat mengubah atau menambahkan Hak Akses untuk User Level tertentu. Perlu diingat, bahwa server event ini merupakan member dari Class Security. Artinya, Anda dapat mengakses member lainnya secara langsung di class tersebut (jika dibutuhkan).
Sekarang mari kita simak contoh kode di bawah ini supaya semakin jelas lagi. function UserLevel_Loaded() { $this->AddUserPermission("Sales", "categories", EW_ALLOW_ADD); // tambahkan Hak Akses Tambah (Add) $this->AddUserPermission("Sales", "categories", EW_ALLOW_EDIT); // tambahkan Hak Akses Ubah (Edit) }
Dari kode tersebut, kita sebagai Web Developer dapat menambahkan dua Hak Akses baru yaitu masing-masing Add dan Edit untuk menu/tabel categories dan hanya untuk Peran Sales, menggunakan method AddUserPermission yang merupakan member dari class Security di Aplikasi Web yang dibangkitkan oleh PHPMaker. Karena server event ini merupakan member dari class Security, Anda dapat menggunakan konteks $this di dalamnya. Method AddUserPermission berfungsi untuk menambahkan Hak Akses tertentu untuk User Level (Peran) tertentu dan pada menu/Table tertentu. Method ini memiliki 3 parameter. Yang pertama adalah nama Peran, yang kedua adalah nama Table, dan yang ketiga adalah konstanta dari Hak Akses-nya. Tentu Anda bertanya, bagaimana cara mengetahui konstanta Hak Akses tersebut? Jangan khawatir. Untuk mengetahui data konstanta Hak Akses selengkapnya, Anda cukup melihatnya dari file ewcfg10.php (untuk PHPMaker versi 10). Lihat kode seperti ini di file tersebut: // User level constants define("EW_ALLOW_ADD", 1, TRUE); // Add define("EW_ALLOW_DELETE", 2, TRUE); // Delete define("EW_ALLOW_EDIT", 4, TRUE); // Edit @define("EW_ALLOW_LIST", 8, TRUE); // List if (defined("EW_USER_LEVEL_COMPAT")) { define("EW_ALLOW_VIEW", 8, TRUE); // View define("EW_ALLOW_SEARCH", 8, TRUE); // Search } else { define("EW_ALLOW_VIEW", 32, TRUE); // View define("EW_ALLOW_SEARCH", 64, TRUE); // Search
} @define("EW_ALLOW_REPORT", 8, TRUE); // Report @define("EW_ALLOW_ADMIN", 16, TRUE); // Admin
Selain untuk menambahkan Hak Akses, server event UserLevel_Loaded juga dapat menghapus Hak Akses tertentu, menggunakan method yang bernama DeleteUserPermission. Parameter-nya sama dengan parameter yang terdapat di method AddUserPermission. Tapi perlu diingat juga, bahwa jika Hak Akses yang ingin Anda hapus menggunakan DeleteUserPermission tadi sudah didefinisikan secara statis sebelumnya dari dalam project PHPMaker melalui menu tab Security -> Use Existing Table -> Advanced -> User Levels -> Sales (dalam contoh di atas) -> Static User Levels, maka Hak Akses tersebut tidak bisa dihapus. Contoh, kode di bawah ini tidak akan berfungsi jika Hak Akses untuk menampilkan halaman List sudah didefinisikan sebelumnya dari dalam project PHPMaker secara statis: function UserLevel_Loaded() { $this->DeleteUserPermission("Sales", "categories", EW_ALLOW_LIST); // <-ini tidak berfungsi jika sudah pernah didefinisikan secara statis dari dalam project PHPMaker }
Oleh karena itu, pastikan sekali lagi Anda tidak mendefinisikan Hak Akses tersebut secara statis jika Anda memiliki kebutuhan untuk menghapusnya menggunakan server event UserLevel_Loaded saat Aplikasi Web dijalankan. Dengan menggunakan server event UserLevel_Loaded, maka Anda dapat memanipulasi (menambah dan menghapus) Hak Akses yang dimiliki oleh Peran (User Level di PHPMaker) tertentu. Itu artinya, Hak Akses yang ditambah atau dihapus melalui server event tadi akan secara otomatis berpengaruh langsung kepada semua Pengguna yang memiliki Peran tersebut. Lagi-lagi, betapa mudahnya PHPMaker dapat membantu Web Developer dalam mengelola Hak Akses untuk User Level tertentu secara dinamis sesuai dengan business-logic maupun business-
process di Aplikasi Web Anda.
Mudahnya Memberi Akses Melihat Record Lain di Aplikasi Web dari PHPMaker Mei 21, 2014 oleh Masino Sinaga Tinggalkan Komentar
Kadang-kadang, di Aplikasi Web yang kita bangun, dibutuhkan fitur atau kemampuan untuk memberikan akses kepada Pengguna tertentu supaya dapat melihat record yang bisa diakses oleh Pengguna lain. Hal ini bermanfaat jika Pengguna tersebut membutuhkannya, tanpa harus mengubah User Level atau Peran si Pengguna. Artinya, perubahan dinamis untuk menyesuaikan ID Pengguna kadang-kadang dibutuhkan berdasarkan kondisi khusus yang sifatnya tidak permanen. PHPMaker dapat mengatasi hal itu dengan sangat mudah dan cepat. PHPMaker telah menyediakan sebuah server event yang bernama UserID_Loading, yang Server Events All Pages berada di lokasi: -> Global . Server ini dijalankan Pengguna berhasil login dan sebelum sistem->memuat User ID (IDevent Pengguna) beserta setelah ID Pengguna anak dari Pengguna tersebut (jika tersedia).
ID Pengguna ini menentukan record-record yang mana saja yang dapat diakses oleh Pengguna. Artinya, server event ini memungkinkan untuk mengganti ID Pengguna dari Pengguna yang berhasil login tadi, sehingga dia dapat mengakses record lainnya dengan tetap menggunakan ID Pengguna-nya yang semula. Perlu diingat, bahwa server event ini merupakan member dari Class Security. Artinya, Anda dapat mengakses member lainnya secara langsung di class tersebut (jika dibutuhkan). Sekarang mari kita lihat contoh berikut ini. Anda sebagai Web Developer dapat mengganti ID Pengguna milik Pengguna ke ID Pengguna milik induknya sehingga Pengguna tersebut dapat mengakses record-record lainnya (record yang dapat diakses oleh Pengguna induknya). function UserID_Loading() { if (CurrentParentUserID() <> "") $this->CurrentUserID = CurrentParentUserID(); }
Seperti yang kita lihat dari kode tadi, sistem akan memeriksa terlebih dulu apakah Pengguna yang sudah berhasi Login memiliki ID Pengguna induk, dan jika iya, maka Pengguna tersebut dapat menggunakan ID Pengguna induknya, sehingga dapat mengakses record yang bisa diakses oleh induk Penggunanya. Betapa mudahnya, bukan?
Mudahnya Memanipulasi User ID di Aplikasi Web dari PHPMaker Mei 22, 2014 oleh Masino Sinaga Tinggalkan Komentar Di artikel yang sebelumnya kita sudah membahas bagaimana mudahnya Web Developer dapat mengijinkan Pengguna untuk melihat record milik Pengguna lain pada Aplikasi Web yang
dibangkitkan oleh PHPMaker. Di artikel yang ini kita akan melanjutkan mengenai teknis pemanipulasian User ID atau ID Pengguna yang bertujuan di samping untuk mengijinkan Pengguna mengakses record milik Pengguna lainnya, juga membatasi record-record tertentu yang dapat diakses oleh Pengguna. PHPMaker telah menyediakan sebuah server event yang bernama UserID_Loaded, yang berada di lokasi: Server Events -> Global -> All Pages. Seperti namanya, server event ini dijalankan setelah Pengguna berhasil login dan setelah sistem memuat User ID (ID Pengguna) beserta ID Pengguna anak dari Pengguna tersebut (jika tersedia). ID Pengguna ini menentukan record-record yang mana saja yang dapat diakses oleh Pengguna. Artinya, server event ini memungkinkan untuk memanipulasi ID Pengguna dari Pengguna yang berhasil login tadi (dengan cara menambahkan dan atau menghapus ID Pengguna tertentu), sehingga dia dapat mengakses record lainnya atau bahkan mengurangi akses terhadap record lain, dengan tetap menggunakan ID Pengguna-nya yang semula. Perlu diingat, bahwa server event ini merupakan member dari Class Security. Anda sebagai Web Developer dapat mengakses member lainnya secara langsung di class tersebut (jika dibutuhkan). Perbedaan antara server event UserID_Loading dan UserID_Loaded adalah bahwa yang terakhir memungkinkan Aplikasi Web untuk melakukan aksi seperti menambahkan atau menghapus ID Pengguna yang sudah dimuat oleh sistem untuk Pengguna yang sudah berhasil login, sehingga Pengguna tersebut dapat mengakses lebih banyak atau bahkan lebih sedikit recorddimuat. dari yang seharusnya dia bisa akses dengan menggunakan ID Penggunanya semula yang sudah Sekarang mari kita lihat contoh berikut ini. Anda sebagai Web Developer dapat menambahkan ID Pengguna milik Pengguna lain, sehingga Pengguna tersebut dapat mengakses lebih banyak record (record yang dapat diakses oleh Pengguna lain tadi). function UserID_Loaded() { if (CurrentUserName() == "nancy") $this->AddUserID($this->GetUserIDByUserName("janet")); }
Dalam contoh kode tersebut, sistem akan memeriksa apakah Pengguna yang sudah berhasi Login memiliki Username = nancy, dan jika iya, maka Pengguna tersebut dapat menggunakan ID Pengguna milik Pengguna lainnya yang memiliki Username janet. Artinya, Pengguna nancy dapat mengakses record yang bisa diakses oleh Pengguna janet. Untuk menambahkan ID Pengguna milik Pengguna lain, maka Anda sebagai Web Developer dapat menggunakan method AddUserID yang memiliki satu parameter yaitu User ID atau ID Pengguna. Hal yang sama juga berlaku untuk method DeleteUserID untuk menghapus ID Pengguna.
Enaknya lagi, PHPMaker pun sudah menyediakan method untuk mendapatkan ID Pengguna berdasarkan Username dari Pengguna tertentu. Method tersebut adalah GetUserIDByUserName dengan parameter berupa Username milik Pengguna. Hal ini sangat berguna jika Anda ingin mendapatkan ID Pengguna milik Pengguna tertentu berdasarkan data Username-nya.
Mudah dan cepat sekali, bukan?
Menambahkan Pesan Saat Password Kadaluarsa di Aplikasi Web dari PHPMaker Mei 23, 2014 oleh Masino Sinaga Tinggalkan Komentar PHPMaker memiliki kemampuan untuk menetapkan umur (dalam satuan hari) dari password atau kata sandi di Aplikasi Web yang dibangkitkan olehnya. Pengaturan ini dapat Anda aktifkan dengan sangat mudah melalui menu tab Security -> Advanced -> User Login Options -> Password expiry time (days). Pastikan juga Anda sudah mengaktifkan pengaturan Enable password expiry dari lokasi yang sama tadi di project PHPMaker Anda. Ketika kata sandi sudah habis masa berlakunya (expired), maka sistem akan memaksa Pengguna mengganti kata sandinya. Jika Pengguna berhasil login ke Aplikasi Web, maka sistem akan langsung menampilkan form Ganti Kata Sandi, dan memaksa Pengguna untuk mengganti kata sandinya saat itu juga. Jika kata sandi tidak diganti, maka Pengguna tidak dapat melanjutkan pekerjaannya di Aplikasi Web tersebut. Sayangnya, masih banyak Pengguna yang tidak paham dengan aturan ini. Mereka sering kali bingung, mengapa tiba-tiba disuruh mengganti kata sandi (meskipun ada pesan dari sistem yang menyatakan bahwa kata sandi sudah habis masa berlakunya). Parahnya, jika Pengguna lupa kata sandi yang lama, maka mereka akan semakin panik lagi, dan tidak tahu apa yang harus mereka lakukan. Aplikasi Web yang baik memang harus menampilkan pesan yang berisi penjelasan sekaligus instruksi apa yang harus dilakukan ketika sistem menyatakan bahwa kata sandi sudah expired. Anda sebagai Web Developer sebaiknya memberikan keterangan/penjelasan tambahan seperlunya, sehingga Pengguna diharapkan tidak bingung atau panik jika menghadapi kondisi tersebut. PHPMaker memungkinkan Anda sebagai Web Developer dapat menambahkan pesan tambahan ketika kata sandi expired di Aplikasi Web. PHPMaker telah menyediakan sebuah server event yang bernama User_PasswordExpired yang dapat Anda akses dari lokasi: Server Events -> Global -> All Pages dari dalam project PHPMaker Anda. Server event ini dijalankan setelah Pengguna berhasil login dan ketika kata sandi sudah expired.
Perlu diingat bahwa server event ini merupakan member dari Class Security, sehingga Anda dapat menggunakan member lainnya di class tersebut (jika diperlukan). Berikut ini contoh kode untuk menampilkan pesan yang disertai informasi Nama Lengkap Pengguna yang diambil dari field Nama_Lengkap: function User_PasswordExpired(&$rs) { CurrentPage()->setWarningMessage("Halo ".$rs["Nama_Lengkap"].", kata sandi Anda sudah expired. Silahkan ganti kata sandi Anda melalui form berikut.
Jika Anda lupa dengan kata sandi yang lama, silahkan reset dengan mengklik link Lupa Kata Sandi di bawah form Login."); }
Seperti yang kita lihat pada kode tersebut, server event ini memiliki satu parameter berupa recordset yang merupakan array dan berisi data Pengguna yang sudah berhasil login. Anda dapat menyertakan informasi yang dimiliki Pengguna dari tabel users yang digunakan untuk memvalidasi data Pengguna saat Login. Cukup dengan menggunakan $rs[“Nama_Lengkap”] untuk mengambil nilai di field Nama_Lengkap pada tabel users. Kita juga menggunakan Global Function CurrentPage() untuk mengakses method setWarningMessage milik object Page pada halaman Login. Kemudian, kita menampilkan pesan dengan tipe Warning atau Peringatan dengan menggunakan method setWarningMessage yang memiliki satu parameter berupa String. Pesan tersebut berisi peringatan kepada Pengguna bahwa kata sandinya sudah expired, disertai instruksi apa saja yang harus mereka lakukan. Dengan menggunakan server event User_PasswordExpired, maka Anda sebagai Web Developer dapat menambahkan pesan yang Anda tentukan sendiri dari dalam project PHPMaker Anda dengan mudah dan cepat. Artinya, Anda tidak perlu mengkostumais file yang sudah digenerate oleh PHPMaker. Anda juga tidak perlu mengubah file Template PHPMaker.
Betapa nikmatnya bekerja dengan PHPMaker.
Mengubah Hak Akses untuk Tabel Tertentu di Aplikasi Web dari PHPMaker Mei 24, 2014 oleh Masino Sinaga Tinggalkan Komentar PHPMaker adalah tools PHP Code Generatoryang dapat membangkitkan kode PHP untuk Aplikasi Web Anda dengan sangat cepat berdasarkan object-object yang terdapat di database, seperti Table dan View. PHPMaker menggunakan istilah Table untuk lebih menyederhanakan
object-object database tersebut, sehingga object View sering kali disamakan dengan istilah Table. Untuk setiap Table, maka PHPMaker dapat membatasi Pengguna untuk menggunakan Hak Akses yang tersedia di Table tersebut. Aplikasi Web harus memiliki kemampuan untuk membatasi Hak Akses Pengguna di level Table tadi. Alasannya sederhana saja, karena tidak semua Hak Akses yang terdapat di sebuah Table dapat diberikan untuk semua Pengguna. PHPMakerberada telah menyediakan server event->yang bernama yang lokasinya di bawah Server -> AllTablePermission_Loading Events Global Pages dalam project PHPMaker Anda. Sesuai dengan namanya, server event ini dijalankan sebelum Hak Akses Pengguna untuk Table yang terdapat di dalam halaman yang sedang dimuat oleh sistem. Anda sebagai Web Developer dapat mengganti atau menambahkan User Level lainnya untuk Pengguna yang sedang mengakses Aplikasi Web. Sekedar mengingatkan, istilah User Level di sini sama dengan istilah Role (Peran) di RBAC (Role Based Access Control). Server event ini merupakan member dari Class Security. Anda dapat menggunakan member lainnya yang terdapat di class ini (jika dibutuhkan). Penting untuk diingat juga, bahwa server event ini dijalankan hanya untuk Table yang terdapat di halaman yang sedang dimuat. Andaakan mengganti Hak Akses yang lain terdapat di Table lainnya melalui server event ini, makaJika itu tidak ada efeknya bagi Table tersebut. Gunakanlah server UserLevel_Loaded jika Anda ingin mengganti Hak Akses di Table lainnya. Di contoh berikut, Anda sebagai Web Developer dapat menambahkan User Level lain dan mengijinkan Pengguna tersebut memiliki Hak Akses selain yang sudah dimiliki oleh Pengguna tersebut. function TablePermission_Loading() { if (CurrentUserName() == "nancy") $this->AddUserLevel("Manager"); }
Kode tersebut melakukan pemeriksaan jika Username Pengguna = nancy, maka tambahkan User Level Manager dengan menggunakan method AddUserLevel yang juga merupakan member dari class Security. Artinya, jika si nancy awalnya hanya memiliki User Level Operator, maka sekarang dia juga memiliki User Level Manager, sehingga di samping dia dapat menggunakan Hak Akses yang dimiliki oleh User Level Operator, dia juga memiliki Hak Akses yang dimiliki oleh User Level Manager. Dengan menggunakan server event TablePermission_Loading, maka Anda sebagai Web Developer dapat melakukan aksi-aksi tertentu yang terdapat di dalam class Security, seperti
contoh di atas menambahkan User Level tertentu, hanya untuk Table yang sedang dimuat di halaman yang sedang diaksesnya.
Mudah sekali, bukan?
Mudahnya Memanipulasi Aksi Level Tabel pada Aplikasi Web dari PHPMaker Mei 25, 2014 oleh Masino Sinaga Tinggalkan Komentar Setelah di tulisan sebelumnya kita sudah mengetahui bagaimana mudahnya Anda sebagai Web Developer dapat mengubah Hak Akses untuk Table tertentu menggunakan server event TablePermissions_Loading, maka di tulisan ini kita akan membahas bagaimana mudahnya Web Developer dapat memanipulasi Aksi-Aksi yang terdapat di level Table di Aplikasi Web yang dihasilkan oleh PHPMaker. PHPMaker sudah menyediakan sebuah server event yang bernama TablePermission_Loaded yang lokasinya berada di bawah Server Events -> Global -> All Pages pada project PHPMaker Anda. Sesuai dengan namanya, server event ini dijalankan setelah Hak Akses Pengguna untuk Table tertentu dimuat oleh Aplikasi Web. Hal ini memungkinkan bagi Anda sebagai Web Developer untuk mengganti Hak Akses terhadap Aksi (seperti menambah, mengubah, menghapus record) yang dapat dilakukan oleh Pengguna dengan menggunakan method setCanXXX yang merupakan member dari Class Security. Penting untuk diingat juga, bahwa server event ini dijalankan hanya untuk Table yang terdapat di halaman yang sedang dimuat. Jika Anda mengganti Hak Akses yang terdapat di Table lainnya melalui server event ini, maka itu tidak akan ada efeknya bagi Table lain tersebut. Gunakanlah server UserLevel_Loaded jika Anda ingin mengganti Hak Akses di Table lainnya. Kode berikut menunjukkan bagaimana mudahnya menambahkan Hak Akses Edit untuk Pengguna yang memiliki username nancy dan hanya untuk Table orders: function TablePermission_Loaded() { if (CurrentUserName() == "nancy" && CurrentTable()->TableName = "orders") $this->setCanEdit(TRUE); }
Di samping menggunakan method setCanEdit, Anda juga dapat menggunakan method seperti setCanAdd, setCanDelete dan lain sebagainya yang merupakan member dari Class Security. Jika Anda ingin menambahkan Hak Akses terhadap Aksi tertentu, maka cukup berikan parameter TRUE di dalam method tadi, sebaliknya FALSE jika ingin menghapus atau membatasi Hak Akses terhadap Aksi tersebut.
Dengan menggunakan server event TablePermission_Loaded, maka Anda sebagai Web Developer dapat memanipulasi (menambahkan dan atau mengurangi) Hak Akses terhadap Aksi tertentu yang boleh dilakukan oleh Pengguna di Aplikasi Web yang dihasilkan oleh PHPMaker. Tidak perlu memodifikasi file script yang sudah dihasilkan oleh PHPMaker, dan tidak perlu juga memodifikasi file Template PHPMaker. Satu lagi dari sekian banyaknya fakta yang semakin membuktikan bahwa betapa mudah dan cepatnya PHPMaker digunakan untuk membangun Aplikasi Web.
Mengeksekusi Statement SQL Setelah Terhubung ke Database di Aplikasi Web dari PHPMaker Mei 26, 2014 oleh Masino Sinaga Tinggalkan Komentar Sering kali ada pertanyaan dari Web Developer: “Bagaimana caranya saya bisa mengeksekusi sebuah SQL Statement tertentu setelah berhasil terhubung ke Database dari sebuah Aplikasi Web?”. Kadang-kadang sebuah Aplikasi Web harus mengeksekusi sebuah SQL Statement (misalnya) untuk menjalankan sebuah Stored Procedure tertentu. Tentu saja syarat utamanya harus sudah berhasil terhubung ke Database, karena kalau tidak pasti akan menimbulkan error.
PHPMaker telah menyediakan sebuah server event yang bernama Database_Connected yang lokasinya berada di bawah Server Events -> Global -> All Pages pada project PHPMaker Anda. Server event ini merupakan Global Function, sehingga akan dijalankan oleh semua halaman PHP setelah berhasil terhubung ke Database. Server event Database_Connected memiliki sebuah parameter atau argumen yaitu berupa object Connection. Anda dapat menggunakannya untuk mengeksekusi SQL Statement Anda. Di contoh berikut Anda sebagai Web Developer dapat langsung mengeksekusi sebuah Stored Procedure: function Database_Connected(&$conn) { $conn->Execute("CALL MyStoredProcedure"); }
Jika Anda ingin mengeksekusi Stored Procedure tersebut hanya sekali untuk setiap session login Pengguna, maka Anda dapat mengkombinasikan dengan pemakaian tabel users dengan cara memeriksa informasi counter untuk setiap Pengguna. Tentu saja saya tidak akan terlalu detail membahas hal ini. Saya yakin Anda sebagai Web Developer dapat mengembangkannya sesuai dengan kebutuhan Anda.
Dengan menggunakan server event Database_Connected, Anda sebagai Web Developer dapat mengeksekusi SQL Statement tertentu dengan sangat mudah setelah Aplikasi Web yang dibangun oleh PHPMaker berhasil terhubung ke Database.
Betapa nikmatnya bekerja dengan PHPMaker.
Mengeksekusi Kode di Aplikasi Semua Halaman Pertama Dimuat pada Web dariSaat PHPMaker Mei 27, 2014 oleh Masino Sinaga Tinggalkan Komentar Yang namanya Aplikasi Web pasti tidak akan pernah lepas dari kode yang harus dieksekusi di semua halaman ketika pertama kali dimuat oleh sistem. Sering kali kita sebagai Web Developer harus menjalankan kode tertentu yang harus dipanggil oleh setiap halaman. Kode ini harus dijalankan oleh setiap halaman pada saat pertama kali dipanggil atau dimuat oleh sistem. PHPMaker sudah menyediakan sebuah server event yang bernama Page_Loading yang lokasinya berada di bawah Server Events -> Global -> All Pages. Server event ini akan dijalankan oleh semua halaman PHP pada saat halaman tersebut dimuat oleh sistem. Jika halaman tersebut melibatkan koneksi ke Database, maka server event ini akan dipanggil setelah koneksi ke Database selesai dilakukan dan sebelum even Page_Load milik halaman tersebut dijalankan. Perlu diingat bahwa server event Page_Loading merupakan function yang bersifat global atau Global Function. Server event ini bukan merupakan member dari class Page, sekalipun dia menggunakan kata Page. Karena server event ini dijalankan sebelum event Page_Load milik setiap halaman dipanggil, maka Anda dapat meng- override kode di server event Page_Loading tersebut menggunakan kode yang Anda tempatkan di server event Page_Load milik halaman tertentu. Hal ini tentu saja bermanfaat jika Anda tidak ingin menerapkan kode yang berada di server event Page_Loading tadi untuk semua halaman. Jadi, harap dibedakan bahwa server event Page_Loading berbeda dengan server event Page_Load. Server event Page_Load merupakan member dari object atau class Page, sedangkan server event Page_Loading merupakan Global Function yang dipanggil oleh semua halaman sebelum server event Page_Load dijalankan. Sampai sejauh ini belum ada contoh kode yang bisa kita gunakan untuk server event ini. Saya akan mengupdate artikel ini jika sudah ada contoh kode yang sesuai dan biasa digunakan untuk server event Page_Loading tersebut.
Hati-hati Menggunakan Password MD5 dan Case-Insensitive dari PHPMaker! Mei 28, 2014 oleh Masino Sinaga Tinggalkan Komentar Seperti yang sudah kita ketahui, PHPMaker memiliki pilihan (opsi) untuk menentukan apakah Passwordakan (Kata Sandi) dalam yang Anda gunakan untuk ke Aplikasi WebPHPMaker yang dihasilkan olehnya disimpan format enkripsi satu Login arah MD5. Selain itu, juga menyediakan pilihan Case-Sensitive yang berguna untuk menyamarkan mereka yang hendak melakukan Login dengan metode bruce-attack. Jika Anda menggunakan Password dalam format MD5 (enkripsi hash satu arah bawaan MySQL) dan juga dalam bentuk Case-Insensitive (tidak menggunakan fitur Case-Sensitive di PHPMaker), maka PHPMaker akan selalu mengkonversi Password tersebut terlebih dulu ke huruf kecil semua, baru setelah itu diacak menggunakan enkripsi satu arah MD5. Akibatnya, Anda harus memberitahukan ke Pengguna Aplikasi Web Anda untuk menggunakan Kata Sandi dengan huruf kecil semua, karena sekalipun mereka menggunakan kombinasi antara huruf besar dan kecil, maka itu menjadi tidak ada artinya sama sekali. Sementara yang kita ketahui, Kata Sandi yang baik harus mengandung (minimal) kombinasi antara huruf kecil dan besar. Oleh karena itu, sangat sangat disarankan agar Anda selalu mendorong Pengguna Aplikasi Web Anda untuk menggunakan Kata Sandi yang kuat. Kata Sandi yang kuat berarti harus mengandung kombinasi antara huruf besar, kecil, angka, dan karakter simbol. Lalu apa kaitannya dengan PHPMaker? Kaitannya dengan PHPMaker adalah, Anda sebagai Web Developer harus mengaktifkan fitur Case-sensitive passwordyang terdapat di dalam menu tab Security -> Advanced -> User Login Options -> Password dari project PHPMaker Anda. Alasannya simpel: Anda tidak perlu mengubah Password tersebut terlebih dulu ke huruf kecil sebelum PHPMaker mengenkripsinya ke dalam bentuk MD5. Jika fitur Case-sensitive passwordini tidak Anda aktifkan dari project PHPMaker (artinya Anda menggunakan Kata Sandi yang Case-insensitive), maka Pengguna Aplikasi Web Anda akan selalu gagal Login. Penyebabnya karena secara standar Aplikasi Web Anda akan membandingkan Kata Sandi yang disimpan di Database dengan hasil enkripsi satu arah MD5 yang sebelumnya sudah diubah ke dalam format huruf kecil semua. Jadi, hal ini akan selalu menyebabkan gagal login. Mengenai hal ini PHPMaker sudah mengingatkan Web Developer melalui komentar yang ditambahkan sebelum konstanta di file konfigurasi ewcfg10.php (PHPMaker versi 10): /**
* Password (MD5 and case-sensitivity) * Note: If you enable MD5 password, make sure that the passwords in your * user table are stored as MD5 hash (32-character hexadecimal number) of the * clear text password. If you also use case-insensitive password, convert the * clear text passwords to lower case first before calculating MD5 hash. * Otherwise, existing users will not be able to login. MD5 hash is * irreversible, password will be reset during password recovery. */
Jadi, sekali lagi, Anda sebagai Web Developer sangat disarankan untuk selalu mengaktifkan (enable) dua fitur berikut dari menu tab Security -> Advanced -> User Login Options -> Password di project PHPMaker, demi keamanan akun Pengguna di Aplikasi Web Anda: – MD5 password – Case-sensitive password
Mengubah Tampilan pada Detik-Detik Terakhir dari PHPMaker Sebelum Halaman Ditampilkan ke Browser Mei 29, 2014 oleh Masino Sinaga Tinggalkan Komentar Sebagai Web Developer, pilihan Anda sudah tepat jika menggunakan PHPMaker untuk membangun Aplikasi Web. Selain kemampuan luar biasa yang diberikan oleh PHPMaker untuk menghasilkan Aplikasi Web dalam waktu singkat, fleksibilitas yang tinggi pun dapat dioptimalkan darinya. Sejak versi 10, PHPMaker semakin memanjakan Web Developer dengan menyediakan sebuah server event yang memungkinkan untuk mengubah tampilan/fitur di suatu halaman pada detik-detik terakhir sebelum Kode HTML-nya ditampilkan ke browser Pengguna. PHPMaker telah menyediakan sebuah server event yang bernama Page_Rendering yang lokasinya berada di bawah Server Events -> Global -> All Pages di dalam project PHPMaker Anda. Server event ini akan dipanggil oleh semua halaman PHP sebelum mengeluarkan Kode HTML ke browser Pengguna. Perlu diingat bahwa server event ini merupakan Global Function, dan bukan member dari class Page. Di contoh berikut, ditunjukkan bagaimana mudahnya untuk mengubah tampilan link yang terdapat di setiap baris record pada tabel di halaman List, yaitu dengan menggunakan style tombol yang memiliki teks dan icon, kemudian mengelompokkan tombol tersebut menggunakan DropDownButton:
function Page_Rendering() { //echo "Page Rendering"; if (CurrentPageID() == "list") { CurrentPage()->ListOptions->UseImageAndText = TRUE; CurrentPage()->ListOptions->UseButtonGroup = TRUE; CurrentPage()->ListOptions->UseDropDownButton = TRUE; } }
Seperti yang kita lihat dari kode tersebut, sistem akan memeriksa apakah ID dari halaman itu adalah List, dan jika iya, maka kita menggunakan property dari object CurrentPage yang bernama ListOptions melalui beberapa property yang dimilikinya, yaitu: UseImageAndText, UseButtonGroup, dan UseDropDownButton masing-masing diset ke nilai TRUE. Artinya, jika di Aplikasi Web Anda memiliki ratusan atau bahkan ribuan halaman List yang menampilkan record-record dalam bentuk tabel, maka seluruh halaman List tersebut akan menerapkan style yang sama yang kodenya terdapat di server event Page_Rendering tadi. Tentu saja, PHPMaker masih memberi kesempatan kepada Web Developer untuk tidak menerapkan style tersebut di semua halaman List. Anda sebagai Web Developer dapat mengoverride kode itu hanya untuk halaman List tertentu saja, dengan menggunakan server event lainnya yang bernama Page_Render milik List Page. Mengenai hal ini akan kita bahas di artikel terpisah yang akan datang. Sabar, ya.
See? Betapa mudahnya Anda sebagai Web Developer mengkostumisasi tampilan sebelum ditampilkan ke browser sesuai dengan kebutuhan Anda, cukup dengan menambahkan sedikit kode saja dari dalam project PHPMaker Anda.
Mengeksekusi Kode untuk Semua Halaman Sebelum Koneksi Database Ditutup dari PHPMaker Mei 30, 2014 oleh Masino Sinaga 1 Komentar Ada satu hal lagi yang saya senangi dari PHPMaker. Sekalipun PHPMaker menggunakan OOP (Object Oriented Programming), tapi dia menyusun kode di file script pada Aplikasi Web yang dihasilkan olehnya sesuai dengan urutan event yang terjadi di suatu halaman. Termasuk server event yang dijalankan di suatu halaman pun, disusun berdasarkan urutan yang rapi dan rinci.
Mulai saat halaman dimuat oleh sistem sampai dengan saat halaman itu selesai dimuat (unloaded) oleh sistem. Sebelum mengenal bahasa pemrograman PHP khususnya menggunakan Tools PHP Code Generator PHPMaker, saya menggunakan bahasa Basic dengan menggunakan Visual Basic 6 untuk membuat aplikasi berbasis desktop. Ada banyak persamaan antara style pemrograman di Visual Basic 6 dengan PHPMaker. Salah satu persamaan itu adalah sama-sama menggunakan urutan event di sebuah Form (untuk Visual Basic 6) dan di sebuah Halaman (untuk PHPMaker). Kalau Anda pernah menggunakan Visual Basic 6, pasti bisa melihat persamaan itu. Di antaranya, sama-sama menggunakan method seperti Init, Load, Main, dan Unloaded. Kalau di Visual Basic 6, maka kita mengenal method Form_Init, Form_Load, Form_Main, dan Form_Unloaded. Sementara di PHPMaker, kita mengenal method yang mirip, masing-masing dengan nama Page_Init, Page_Load, Page_Main, dan Page_Unloaded. Bedanya, kalau di Visual Basic 6 semua method itu milik object Form, sementara di PHPMaker method-method tersebut merupakan kombinasi antara member Class Page dan Global Function. Ada satu server event yang unik dan sering dilupakan oleh Web Developer yang menggunakan PHPMaker. Namanya Page_Unloaded. Server event ini merupakan Global Function, dan letaknya berada di bawah Server Events -> Global -> All Pages di dalam project PHPMaker Anda. Server event dipanggil oleh semua halamanmaka PHP dia di akhir suatu halaman. JikaPage_Unloaded halaman tersebutakan melibatkan koneksi ke Database, akan dari dipanggil sebelum menutup koneksi Database tersebut dan setelah event Page_Unload dijalankan. Sebagai informasi, Page_Unload merupakan member dari Class Page. Jadi, harap dibedakan antara Page_Unloaded dengan Page_Unload. Informasi lebih lanjut mengenai server event Page_Unload dapat dilihat pada artikel ini.
Mengelola Konstanta, Variabel, dan Function Global di Aplikasi Web dari PHPMaker Mei 31, 2014 oleh Masino Sinaga Tinggalkan Komentar Tidak ada Aplikasi Web yang tidak menggunakan konstanta, variabel, maupun function yang bersifat global. Aplikasi Web manapun pasti membutuhkan semua itu jika harus digunakan di semua halaman. Ketiganya perlu dikelola dalam ruang lingkup ( scope) yang global. Anda sebagai Web Developer tidak mungkin hanya menggunakannya pada scope lokal untuk satu halaman saja. Mengelola variabel, konstanta, atau function yang bersifat global di sebuah Aplikasi Web sering kali menjadi hambatan tersendiri bagi Web Developer. Di satu sisi mereka sangat membutuhkan,
tapi di sisi yang lain mereka tidak mengetahui bagaimana cara mengelolanya dengan baik dan tepat. PHPMaker sudah menyediakan sebuah server event yang bernama Global Code yang lokasinya berada di bawah Server Events -> Global -> All Pages di dalam project PHPMaker Anda. Di server event ini Anda sebagai Web Developer dapat menaruh konstanta, variabel, dan function yang akan digunakan oleh semua halaman di Aplikasi Web yang Anda buat dengan PHPMaker. Salah satu contoh penggunaan server ini adalah menimpa ( override) nilai konstanta. tertentu yang sudah dibangkitkan olehevent PHPMaker 10 pada file konfigurasi ewcfg10.php Katakanlah Anda memiliki konstanta seperti ini di file konfigurasi tadi: define("EW_DEBUG_ENABLED", FALSE, TRUE); // TRUE to debug
Maka dengan menggunakan server event Global Code, Anda dapat menimpa (override) nilai konstanta tadi menjadi TRUE dengan mengeset parameter kedua yang semula FALSE menjadi TRUE, dan jangan lupa juga untuk mengeset parameter ketiga yang secara standar di atas adalah TRUE menjadi FALSE. Perhatikan kode di bawah ini yang sekarang Anda letakkan di dalam server event Global Code: // Pastikan kode di bawah ini Anda letakkan di server event Global Code define("EW_DEBUG_ENABLED", TRUE, FALSE); // TRUE to debug
dan setelah itu generate ulang file script untuk Aplikasi Web Anda dengan menggunakan PHPMaker, lalu jalankan Aplikasi Web tersebut dari browser, maka seharusnya Anda melihat ada informasi debug di bagian paling bawah dari halaman Aplikasi Web yang sedang Anda buka di browser tadi. Selain untuk meng-override nilai konstanta yang sudah dihasilkan oleh PHPMaker pada file konfigurasi tersebut, Anda juga dapat mendeklarasikan variabel global di server event ini, lalu menggunakannya di semua halaman. Contoh, letakkan kode berikut di server event Global Code: // Pastikan kode di bawah ini Anda letakkan di server event Global Code $variabel_global_ku = "Masino Sinaga";
lalu letakkan juga kode di bawah ini ke dalam server event Page_Render milik salah satu halaman List di tabel tertentu. Jadi, pastikan Anda sudah mengklik salah satu table di panel Database dari dalam project PHPMaker Anda, lalu di panel kanan pergi ke lokasi: Server Events -> Table-Specific -> List Page -> Page_Render, lalu letakkan kode berikut di dalamnya: global $variabel_global_ku;
$this->setSuccessMessage($variabel_global_ku);
dan setelah itu generate ulang file script untuk Aplikasi Web Anda dengan menggunakan PHPMaker, lalu akses ke menu atau halaman yang menampilkan List dari tabel yang Anda tentukan sebelumnya, maka seharusnya Anda akan melihat pesan sukses dari sistem yang menampilkan tulisan “Masino Sinaga”. Hal yang sama juga bisa Anda terapkan untuk global function yang Anda buat sendiri lalu tempatkan di dalam server event Global Code tadi. Selanjutnya Anda bisa langsung memanggil global function tadi dari halaman manapun di Aplikasi Web Anda.
See? Betapa mudahnya Anda sebagai Web Developer dapat menggunakan PHPMaker untuk mengelola konstanta, variabel, maupun function yang bersifat global untuk Aplikasi Web yang Anda hasilkan dengannya.
Mudahnya Menyertakan File Javascript dan CSS di Aplikasi Web dari PHPMaker Juni 1, 2014 oleh Masino Sinaga 4 Komentar Sering kali sebuah Aplikasi Web harus menggunakan file library atau pustaka dari pihak ketiga lainnya. Misalnya, seorang Web Developer ingin menyertakan file pustaka Javascript atau file pustaka CSS tertentu seperti jQuery UI ke Aplikasi Web yang dibangunnya. Untuk itu, persyaratan utama yang harus dipenuhi pertama kali adalah: Web Developer harus memasukkan atau mendeklarasikan file pustaka tadi ke bagian atas (header) dari Aplikasi Web supaya dapat digunakan sebagaimana mestinya. PHPMaker sudah menyediakan sebuah server event yang bernama Page_Head yang berada di bawah Server Events -> Global -> All Pages dari dalam project PHPMaker Anda. Server event ini merupakan Global Function dan berfungsi untuk menempatkan kode tambahan yang berada di bagian atas (header) sebelum tag penutup dari Aplikasi Web. Kode yang dimasukkan oleh Web Developer ke event ini akan ditempatkan di file header.php sebelum tag penutup . Anda dapat menggunakan event ini untuk menambahkan kode Anda di bagian header. Sebagai contoh, PHPMaker tidak menggunakan jQuery UI, tapi Anda dapat menyertakannya (misalnya dengan menggunakan CDN): ew_AddStylesheet("http://code.jquery.com/ui/1.10.3/themes/smoothness/jqueryui.css"); // Add CSS stylesheet ew_AddClientScript("http://code.jquery.com/ui/1.10.3/jquery-ui.js "); // Add JavaScript
Setelah itu, Anda sebagai Web Developer dapat menggunakan (misalnya) Widget milik jQuery UI tersebut dengan menuliskan sedikit kode dari bagian Startup Script di dalam project PHPMaker Anda. Setelah itu, jangan lupa untuk men- generate ulang file script dengan menggunakan PHPMaker. Mengenai hal ini akan kita bahas di artikel-artikel saya selanjutnya. Sabar, ya!
Mudah dan simpel sekali, bukan?
Mudahnya Menyaring Record Saat Halaman Dimuat di Aplikasi Web dari PHPMaker Juni 2, 2014 oleh Masino Sinaga 20 Komentar Setelah kita membahas server event di PHPMaker yang akan dipanggil oleh semua halaman, maka tiba saatnya membahas server event yang dijalankan pada level Table. Artinya, kode yang ditambahkan ke server event ini hanya dipanggil oleh Table yang menggunakannya. Server event level Table berguna jika Anda sebagai Web Developer tidak ingin menerapkannya ke semua Table, tapi hanya untuk Table tertentu saja. Mulai di artikel ini, saya akan membahas server event level Table tersebut, yang dimulai dari server event yang paling sering dipanggil, atau dikenal dengan istilah Common. PHPMaker secara standar akan mengambil semua record di suatu Table dan menampilkannya pada halaman List yang di-generate olehnya. Permasalahan timbul ketika jumlah record di suatu Table sudah semakin banyak, sehingga waktu yang dibutuhkan untuk memuat halaman List menjadi semakin lama (sekalipun PHPMaker sudah membaginya ke dalam beberapa halaman berdasarkan pengaturan jumlah record per halaman). Tentu saja untuk kondisi ini diperlukan penyaringan record sebelum ditampilkan di halaman List. PHPMaker sudah menyediakan sebuah server event yang bernama Recordset_Selecting yang lokasinya berada di bawah Server Events -> Table-Specific -> Common. Pastikan sebelumnya Anda sudah memilih salah satu tabel 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. Seperti namanya, server event Recordset_Selecting akan dipanggil sebelum, atau istilahnya lebih dekat pada saat memilih atau mengambil, semua record dari Table tertentu di Database. Artinya, Anda sebagai Web Developer masih diberi kesempatan oleh PHPMaker untuk menyaring record-record tersebut sebelum sistem mengambil semua record tadi. Argumen server event ini hanya satu, yaitu variabel $filter (yang merupakan bagian dari klausa WHERE di pernyataan SQL) untuk memilih record-record. Anda dapat mengkostumisasi penyaringan untuk mengubah record-record yang dipilih oleh sistem.
Dalam contoh berikut kita akan menambahkan kriteria penyaringan sendiri, di mana nilai argumen $filter bisa saja sudah memiliki nilai, sehingga kita disarankan untuk menambahkan dengan kriteria penyaringan lainnya, dan bukan menimpanya. function Recordset_Selecting(&$filter) { ew_AddFilter($filter, "Field1 = '1234'"); // tambahkan ekspresi filter }
Dalam contoh tersebut, Anda sebagai Web Developer dapat menambahkan (bukan menimpa) kriteria penyaringan dengan menggunakan Global Function yang sudah disediakan oleh PHPMaker bernama ew_AddFilter. Fungsi ini memiliki dua argumen. Argumen pertama merupakan variabel $filter, dan argumen kedua merupakan ekspresi filter yang diinginkan. Pastikan ekspresi filter tersebut valid untuk disisipkan ke dalam pernyataan SQL. Perlu diingat, bahwa server event Recordset_Selecting akan dipanggil di hampir semua halaman yang di-generate oleh PHPMaker, kecuali halaman Add. Dengan kata lain, server event ini akan dipanggil dari semua halaman berikut:
List View Edit Delete Update
Jika seandainya Anda ingin menerapkan server event ini hanya untuk halaman List dan View saja, maka Anda dapat menggunakan kode seperti ini: function Recordset_Selecting(&$filter) { if (CurrentPageID() == "list" || CurrentPageID() == "view") ew_AddFilter($filter, "Field1 = '1234'"); // tambahkan ekspresi filter }
Mudah sekali menerapkan penyaringan record berdasarkan kriteria Anda dengan menggunakan PHPMaker, bukan? Anda sebagai Web Developer cukup hanya menambahkan sedikit kode saja melalui server event Recordset_Selecting. Tidak perlu memodifikasi file script yang sudah di-
generate oleh PHPMaker, dan tidak perlu juga mengkostumisasi file Template PHPMaker.
Mengambil Informasi Recordset Setelah Record Dipilih di Aplikasi Web dari PHPMaker Juni 3, 2014 oleh Masino Sinaga Tinggalkan Komentar
Kadang-kadang, Web Developer membutuhkan informasi dari sebuah Recordset yang berisi kumpulan record yang sudah berhasil dipilih dan siap ditampilkan di sebuah halaman pada Aplikasi Web. Informasi ini bisa berupa ID dari Recordset, Jumlah Field yang terdapat di Recordset, Jumlah Total Record di Recordset, Jumlah Record per Halaman, dan lain sebagainya. PHPMaker sudah menyediakan sebuah server event yang bernama Recordset_Selected yang merupakan member dari Class Page dan berada di bawah Server Events -> Table-Specific -> Common. Pastikan sebelumnya Anda sudah memilih salah satu tabel yang Anda inginkan dari panel Databasekode di sebelah kirievent dari project PHPMaker Anda, untuk memastikan Anda menambahkan di server pada Table yang tepat. Seperti namanya, server event ini akan dipanggil setelah Recordset yang berisi kumpulan recordrecord yang akan ditampilkan selesai dipilih dan diambil dari Database. Untuk melihat informasi apa saja yang bisa Anda gunakan dari Recordset yang sudah dipilih tadi, maka cukup tambahkan kode var_dump($rs); ke dalam server event Recordset_Selected, sehingga selengkapnya kode tersebut menjadi seperti ini: // Recordset Selected event function Recordset_Selected(&$rs) { //echo "Recordset Selected"; var_dump($rs); }
lalu setelah itu generate ulang semua file script dengan menggunakan PHPMaker, kemudian panggil kembali Aplikasi Web tersebut dari browser. Anda seharusnya sekarang melihat informasi mengenai Recordset tadi, pada bagian atas halaman yang sedang Anda buka. Informasi itu berupa nilai setiap Field yang terdapat di record pertama, ID Recordset ( resultId), Indeks Record yang pertama (_currentRow), Jumlah Record per halaman ( _numOfRows), Jumlah Field pada sebuah Record ( _numOfFields), Mode Pengambilan Record (fetchMode), dan Status End Of File (EOF). Artinya, dari property yang dimiliki oleh object Recordset tadi, Anda sebagai Web Developer dapat mengoptimalkan informasi tersebut (jika dibutuhkan). Contoh, jika Anda ingin mengambil informasi Jumlah Record per Halaman yang akan ditampilkan, maka Anda bisa menggunakan kode berikut: // Recordset Selected event function Recordset_Selected(&$rs) { //echo "Recordset Selected"; $this->setSuccessMessage("Jumlah record per halaman: " . $rs->_numOfRows);
}
Harap diingat, bahwa informasi yang terdapat di property _numOfRows tadi berbeda antara yang ditampilkan pada halaman List dengan yang ditampilkan pada halaman View. Di halaman List, property ini berisi informasi jumlah record per halaman, sedangkan di halaman View, property ini berisi jumlah total record seluruhnya yang terdapat di Recordset tersebut. Selain itu, harap agar diingat juga, bahwa di server event Recordset_Selected, Anda hanya bisa menampilkan informasi atau nilai field di record pertama saja. Anda tidak dapat mengetahui nilai field di record kedua dan seterusnya. Jika Anda ingin mengetahui informasi nilai field di record kedua dan seterusnya, Anda dapat menggunakan server event yang bernama Row_Rendered. Mengenai hal ini akan kita bahas lebih lanjut di artikel yang akan datang. Saya sarankan agar Anda mengeksplorasi dan mencoba sendiri dengan cara mengekspos nilai dari property milik object Recodset tadi. Lagi-lagi, betapa mudahnya Anda sebagai Web Developer dapat mengoptimalkan informasi yang dapat diambil melalui server event dari project PHPMaker Anda.
Mudahnya Memodifikasi Kriteria Pencarian di Aplikasi Web dari PHPMaker Juni 4, 2014 oleh Masino Sinaga 1 Komentar Setiap Aplikasi Web pasti memiliki fitur pencarian data. Kriteria pencarian harus dapat ditentukan oleh Pengguna Akhir atau Pemakai Aplikasi Web tersebut melalui form Pencarian. Kadang-kadang, kriteria pencarian tersebut perlu dimodifikasi terlebih dulu sebelum sistem melakukan pencarian data ke Database. PHPMaker sudah menyediakan sebuah server event yang bernama Recordset_SearchValidated yang lokasinya berada di bawah Server Events -> Table-Specific -> Common pada project PHPMaker Anda. Pastikan sebelumnya Anda sudah memilih salah satu tabel 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. Seperti namanya, server event Recordset_SearchValidated akan dipanggil setelah server event Form_CustomValidate dan kriteria pencarian ditugaskan ke object Table atau Fields. Artinya, pada saat itu proses validasi pencarian sudah selesai dilakukan. Anda sebagai Web Developer diberi kesempatan oleh PHPMaker untuk memodifikasi kriteria pencarian di server event ini. Server event ini merupakan member dari Class Table. Anda sebagai Web Developer dapat menggunakan member lainnya yang terdapat di Class ini (jika dibutuhkan). Tidak ada argumen untuk server event Recordset_SearchValidate.
Untuk mengganti kriteria Quick Search atau Pencarian Cepat, maka cukup ganti property yang bernama BasicSearchKeyword dan BasicSearchType milik object Table. Sedangkan untuk mengganti kriteria Advanced Search atau Pencarian Lanjutan, cukup ganti property AdvancedSearch (yang merupakan object dari Class cAdvancedSearch) dari object Field. Sebagai contoh, perhatikan kode berikut ini: function Recordset_SearchValidated() { $this->MyField1->AdvancedSearch->SearchValue = "data yang dicari"; // nilai pencarian }
Seperti pada contoh kode tersebut, Anda sebagai Web Developer dapat mengganti nilai property SearchValue untuk Pencarian Lanjutan milik object Field yang bernama MyField1 dengan menugaskan string data yang dicari. Artinya, Anda sebagai Web Developer memiliki kesempatan untuk menambahkan nilai pencarian sesuai kebutuhan melalui server event tersebut. Satu lagi bukti dari sekian banyaknya kehebatan PHPMaker yang dapat dioptimalkan oleh Web Developer untuk membangun Aplikasi Web dengan cepat, mudah, sekaligus menyenangkan.
Menyaring Record Sebelum Pencarian Data di Aplikasi Web dari PHPMaker Juni 5, 2014 oleh Masino Sinaga Tinggalkan Komentar Ketika Pengguna mencari data di sebuah Aplikasi Web, maka sebenarnya sistem melakukan penyaringan record dari seluruh kumpulan record yang terdapat di sebuah tabel, lalu hasilnya ditampilkan ke dalam halaman List. Sering kali sebelum hasil pencarian tadi akan ditampilkan ke halaman List, dibutuhkan kondisi penyaringan tambahan yang harus dilakukan oleh Web Developer agar hasil pencarian tadi sesuai dengan kebutuhan sistem.
Level Contoh: Khusus untukdata, Pengguna yang memiliki Level tertentu Pengguna ( User ) Operator ketika melakukan pencarian perlu ditambahkan kondisi yang sesuai dengan level tersebut pada bagian klausa WHERE dari pernyataan SQL ke Database. PHPMaker sudah menyediakan server event yang bernama Recordset_Searching yang lokasinya berada di bawah Server Events -> Table-Specific -> Common pada project PHPMaker Anda. Pastikan sebelumnya Anda sudah memilih salah satu tabel 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 pada saat atau menjelang detik-detik pencarian record mulai dilakukan. Itu artinya, Anda sebagai Web Developer masih diberi kesempatan oleh PHPMaker untuk menambahkan kondisi tertentu di bagian klausa WHERE pada pernyataan SQL yang digunakan oleh sistem untuk menyaring record di tabel tersebut. Server event ini merupakan member dari Class Table. Anda sebagai Web Developer dapat menggunakan member lainnya yang terdapat di Class ini (jika dibutuhkan). Ada satu argumen untuk server event Recordset_Searching, yaitu variabel $filter. Kalau Anda perhatikan dengan seksama, sebenarnya server event .ini mirip dengan server event yang dulu sudah pernah kita bahas, yaitu Recordset_Selecting Perhatikan contoh berikut: function Recordset_Searching(&$filter) { if (CurrentUserLevel() == 1)
// level 1 = Operator
ew_AddFilter($filter, "Field1 = '1234'"); // tambahkan ekspresi filter }
Dalam contoh tersebut, Anda sebagai Web Developer dapat menambahkan (bukan menimpa) kriteria penyaringan dengan menggunakan Global Function yang sudah disediakan oleh PHPMaker bernama ew_AddFilter hanya untuk Pengguna yang memiliki level dengan kode 1 (Operator). Fungsi ini memiliki dua argumen. Argumen pertama merupakan variabel $filter, dan argumen kedua merupakan ekspresi filter yang diinginkan. Pastikan ekspresi filter tersebut valid untuk disisipkan ke dalam pernyataan SQL. Dalam contoh di atas Field1 = ‘1234’ merupakan ekspresi filter yang valid untuk field yang bernama Field1 dan memiliki tipe string/varchar/char. Perbedaan antara Recodset_Searching dengan Recordset_Selecting adalah, server event Recordset_Searching hanya dipanggil ketika Pengguna melakukan pencarian data, baik dengan menggunakan metode Pencarian Cepat ( Quick Search) maupun Pencarian Lanjutan (Advanced Search) di mana hasilnya akan ditampilkan kembali ke halaman List. Sedangkan server event Recordset_Selecting akan dipanggil di beberapa halaman berikut: List, View, Edit, Delete, dan Update.
Melakukan Aksi Tertentu Sebelum Record Dihapus di Aplikasi Web dari PHPMaker Juni 6, 2014 oleh Masino Sinaga 10 Komentar Sering sekali Web Developer bertanya kepada saya, Bagaimana cara menambahkan businesslogic tertentu ketika sebuah atau bahkan beberapa Record akan dihapus dari Database? Atau
pertanyaan yang mirip dengan itu adalah, Bagaimana cara mendapatkan data record yang akan sedang dihapus di sebuah Aplikasi Web? Ketika sebuah Record atau bahkan beberapa Record akan dihapus dari Database melalui sebuah Aplikasi Web, maka beragam business-logic bisa diterapkan oleh Web Developer. Ada yang ingin merekam data tersebut terlebih dulu ke dalam tabel lain; ada juga yang ingin hanya merekam data tersebut ke file log, sebelum data tersebut akhirnya benar-benar dihapus. Atau bahkan, ada juga Web Developer yang ingin menjalankan pernyataan SQL tertentu untuk mengubah data terkait di tabel lain. Tentu tidak ada yang salah dengan semua itu. Sayangnya, masih banyak Web Developer yang kesulitan dan kebingungan bagaimana cara menerapkan business-logic tersebut. PHPMaker bisa menangani setiap kemungkinan yang bisa terjadi saat event penghapusan Record. Tentu saja Anda sebagai Web Developer tidak akan mengalami kesulitan jika menggunakan PHPMaker sebagai tools untuk mengembangkan aplikasi berbasis web dengan cepat sekaligus berkualitas. PHPMaker sudah menyediakan sebuah server event yang bernama Row_Deleting yang lokasinya berada di bawah Server Events -> Table-Specific -> Common di dalam 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 Yang namanya, server event server ini akan dipanggil ketika ada Record yang akanmenghapus dihapus dari Database. enaknya adalah, event ini dijalankan bukan hanya untuk satu Record saja, tapi berlaku juga untuk proses penghapusan beberapa Record sekaligus. Seperti yang kita ketahui, PHPMaker juga mendukung untuk pembuatan fitur penghapusan beberapa record sekaligus (Multiple-Delete). Itulah mengapa server event ini disebut dengan Row_Deleting yang kurang lebih artinya adalah saat Baris atau Record atau Row sedang dihapus. Jadi, di samping berlaku untuk penghapusan satu Row, server event ini berlaku juga untuk penghapusan beberapa Row sekaligus dengan memanggil ulang server event ini untuk setiap Row yang dihapus. Server event ini merupakan member dari Class Table. Anda sebagai Web Developer dapat menggunakan member lainnya yang terdapat di Class ini (jika dibutuhkan). Server event ini memiliki sebuah argumen yang berupa sebuah Record yang akan dihapus sebagai sebuah array. Artinya, Anda bisa menggunakan argumen ini untuk mengambil nilai di field tertentu dari Record yang akan dihapus tadi, menggunakan sintaks untuk mengakses elemen yang terdapat di sebuah array. Supaya lebih jelas, mari kita simak contoh berikut. Katakanlah Anda ingin menampilkan data nama lengkap dari field Nama_Lengkap di tabel pelanggan sesaat sebelum sebuah Record dihapus. Untuk itu, maka kita dapat menggunakan kode seperti ini: // Row Deleting event
function Row_Deleting(&$rs) { // Enter your code here // To cancel, set return value to False $this->setSuccessMessage("Nama lengkap dari record yang dihapus: " . $rs["Nama_Lengkap" return TRUE; }
Setelah file script di-generate ulang oleh PHPMaker lalu Aplikasi Web dijalankan lewat browser, maka ketika Pengguna menghapus Record di tabel pelanggan maka sistem akan menampilkan pesan yang berisi Nama Lengkap data pelanggan yang dihapus. Artinya, jika hanya ada satu Record yang berhasil dihapus, maka akan muncul pesan sebanyak satu kali. Sedangkan jika ada beberapa Record dihapus (misalnya 3 Record), maka akan ada tiga baris pesan yang muncul memberitahukan data Nama Lengkap dari Record yang sedang dihapus. Hal penting lainnya yang perlu Anda ketahui dari server event Row_Deleting adalah, bahwa dia dapat digunakan untuk mem-validasi terlebih dulu Record yang akan dihapus. Artinya, Anda sebagai Web Developer masih diberi kesempatan oleh PHPMaker untuk memeriksa data mana saja yang boleh dihapus, dan mana yang tidak. Jika Anda tidak ingin menghapus Record tertentu, maka Anda dapat menambahkan kondisi tertentu, dan jika kondisi tersebut memenuhi syarat, maka cukup kembalikan nilai FALSE, sebaliknya untuk Record yang boleh dihapus, maka Anda cukup mengembalikan nilai TRUE. Wouw. Mudah sekali, bukan? Pada contoh berikut akan ditunjukkan bagaimana caranya memeriksa record yang tidak boleh dihapus jika memenuhi kriteria tertentu. Katakanlah dari 10 Record yang akan dihapus (menggunakan fitur Multiple-Delete di PHPMaker), terdapat 3 Record yang tidak boleh dihapus. Kriteria dari Record-Record yang tidak boleh dihapus itu adalah jika nilai field Nama_Lengkapnya masing-masing sama dengan Masino Sinaga, Dorce Simatupang, dan Elvis Sinaga. Mari langsung simak kode berikut: // Row Deleting event function Row_Deleting(&$rs) { // Enter your code here // To cancel, set return value to False if ($rs["Nama_Lengkap"] == "Masino Sinaga" || $rs["Nama_Lengkap"] == "Dorce Simatupang" || $rs["Nama_Lengkap"] == "Elvis Sinaga") {
$this->setWarningMessage("Tidak diijinkan dihapus: " $rs["Nama_Lengkap"
.
return FALSE; } return TRUE; }
Setelah file script untuk Aplikasi Web di- generate ulang oleh PHPMaker, kemudian Aplikasi Web dijalankan dari browser, lalu Pengguna mencoba menghapus 10 Record, di mana tiga di antaranya memenuhi kondisi yang tidak boleh dihapus, maka jika sistem baru menemukan satu Record saja yang memenuhi syarat untuk tidak boleh dihapus, sistem akan menampilkan pesan yang menyatakan bahwa Record tersebut tidak dapat dihapus. Seketika itu juga proses penghapusan akan dibatalkan oleh sistem. Artinya, ketika satu Record saja tidak boleh dihapus sesuai dengan kondisi tadi, maka RecordRecord lainnya yang meskipun memenuhi syarat untuk dihapus pun akan dibatalkan penghapusannya. Jadi, penghapusan beberapa Record lainnya baru bisa dilakukan jika tidak ada satupun Record yang memenuhi syarat untuk tidak boleh dihapus. Sekarang mari kita simak contoh lainnya bagaimana Web Developer dapat mengupdate data di
Table terkait lainnya ketika sebuah Record yang terkait dengan Table tersebut dihapus dari Database: function Row_Deleting(&$rs) { // Enter your code here // To cancel, set return value to False ew_Execute("UPDATE table_lain SET Field1 = 'deleted' WHERE ID_Table = '".$rs["id"]."'"); return TRUE; }
Betapa mudahnya kita bisa memperbarui record di Table lain hanya dengan menambahkan satu baris kode saja. Kode ini akan berlaku juga untuk penghapusan beberapa Record sekaligus, dan akan memperbarui Record yang terkait di Table lainnya. Inilah beberapa bukti yang menunjukkan bahwa server event ini akan dijalankan untuk setiap Record atau Row yang dihapus di level Table. Setiap Record akan memanggil server event ini saat sedang dihapus. Sampai di sini saya berharap Anda memahami kemampuan dan kehebatan dari server event ini sehingga dapat Anda gunakan sebagaimana mestinya.
See? Betapa mudah, cepat, sekaligus menyenangkan sekali bukan menerapkan business-logic sendiri melalui server event yang telah disediakan oleh PHPMaker? Betapa PHPMaker sudah menangani hal-hal seperti ini, yang justru sering kali dirasakan sebagai hambatan bagi Web Developer ketika akan menerapkan business-logic tertentu saat Record akan dihapus dari Database pada Aplikasi Web yang mereka bangun.
Menambahkan Logic Setelah Record DihapusBusiness di Aplikasi Web dari PHPMaker Juni 7, 2014 oleh Masino Sinaga Tinggalkan Komentar Di artikel sebelumnya kita sudah membahas bagaimana mudahnya Web Developer dapat menambahkan business logic ketika event penghapusan Record sedang terjadi di Aplikasi Web, melalui server event Row_Deleting. Anda dapat memeriksa terlebih dulu supaya Record yang memenuhi kondisi tertentu tidak dapat dihapus. Selain itu, Anda juga dapat meng-update data di Table lain ketika Record sedang dihapus. Kali ini kita akan membahas server event lainnya yang mirip dengan server event Row_Deleting. Server event yang saya maksud tersebut adalah Row_Deleted. Lokasi server event ini sama-sama berada di bawah Server Events -> Table-Specific -> Common di dalam 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. Sepintas namanya hampir sama, tapi terdapat perbedaan di antara keduanya. Server event Row_Deleted, seperti namanya, akan dipanggil setelah sebuah Record atau seluruh dari kumpulan beberapa Record sudah berhasil dihapus dari Database. Artinya, server event ini pun berlaku untuk penghapusan sebuah Record maupun untuk beberapa Record sekaligus. Perbedaan lainnya, jika di server event Row_Deleting Anda sebagai Web Developer masih diberi kesempatan untuk membatalkan proses penghapusan Record, sementara di server event Row_Deleted Anda tidak dapat membatalkan proses penghapusan, karena server event ini dijalankan setelah penghapusan Record benar-benar telah selesai dilakukan. Server event Row_Deleted sangat berguna jika Anda ingin mengeksekusi kode tertentu hanya jika Record di Table tertentu benar-benar sudah berhasil dihapus. Perbedaan yang lainnya lagi adalah, jika server event Row_Deleting akan dipanggil oleh setiap Record yang sedang dihapus, sehingga server event ini memungkinkan untuk dipanggil berulang-ulang sebanyak jumlah Record yang sedang dihapus, maka server event Row_Deleted hanya akan dipanggil sekali saja. Dia hanya dipanggil jika sebuah atau seluruh dari beberapa kumpulan Record sudah berhasil dihapus.
Server event Row_Deleted merupakan member dari Class Table. Anda sebagai Web Developer dapat menggunakan member lainnya yang terdapat di Class ini (jika dibutuhkan). Server event ini memiliki sebuah argumen yang berupa sebuah Record yang sudah berhasil dihapus sebagai sebuah array. Artinya, Anda bisa menggunakan argumen ini untuk mengambil nilai di field tertentu dari Record yang sudah dihapus tadi, menggunakan sintaks untuk mengakses elemen yang terdapat di sebuah array. Supaya lebih mudah dipahami, mari kita simak contoh di bawah ini. Di kode berikut ditunjukkan bagaimana mudahnya Web Developer dapat menghapus Record di table Detail setelah Record di table berhasil dihapus: Master function Row_Deleted(&$rs) { // asumsi tipe dari field ForeignKeyField adalah integer ew_Execute("DELETE FROM DetailTable WHERE ForeignKeyField=" . $rs["PrimaryKeyField" }
Seperti yang ditunjukkan pada kode di atas, kita dapat menghapus Record di tabel DetailTable yang nilai field ForeignKeyField-nya sama dengan nilai pada field PrimaryKeyField pada tabel Master-nya. Cukup dengan hanya sebaris kode saja. Sangat mudah, cepat, efektif, dan efisien! Tentu saja, dalam contoh ini kita mengasumsikan kedua Table memiliki relasi sebagai Master/Detail. Jadi, dapat disimpulkan bahwa betapa mudah, cepat, dan menyenangkannya menambahkan business-logic sendiri di Aplikasi Web yang dibangun oleh PHPMaker. Anda sebagai Web Developer tidak perlu sama sekali menulis kode ke dalam file script di sisi Aplikasi Web-nya. Anda juga sama sekali tidak perlu memodifikasi file Template yang digunakan oleh PHPMaker. Semuanya cukup dilakukan dari dalam project PHPMaker di bagian Server Events.
Mudahnya Menyisipkan Kode Saat Record Ditambahkan ke Aplikasi Web dari PHPMaker Juni 8, 2014 oleh Masino Sinaga 1 Komentar Jokowi dan PHPMaker. Nah, lho… apalagi ini? Apa hubungannya, ya? Tentu saja, ada! Jadi begini. Seperti yang sudah kita ketahui bersama, Jokowi merupakan sosok sederhana yang jika bekerja selalu berusaha untuk menyelesaikannya secepat mungkin. Hasilnya pun ada, berkualitas lagi; dan tidak setengah-setengah. Terbukti dari prestasi yang sudah diukirnya sejak menjabat Walikota Solo sampai menjadi Gubernur DKI Jakarta. Hanya kurang dari 3 tahun saja di DKI Jakarta, Jokowi sudah menghasilkan banyak karya yang benar-benar bermanfaat buat masyarakat. Tentu kita tidak akan membahas lebih detail mengenai Jokowi di tulisan ini.
Saya hanya ingin mengatakan bahwa ada persamaan antara Jokowi dengan PHPMaker. Setidaknya itu yang saya rasakan saat menggunakan PHPMaker. Lalu saya bandingkan dengan sosok seseorang yang akhir-akhir ini banyak mencuri perhatian masyarakat, khususnya menjelang Pilpres 2014. Kalau selama ini kita sudah mengetahui bahwa Jokowi bekerja dengan cepat dan hasil pekerjaannya pun berkualitas, maka seperti itu jugalah Tools PHP Code Generator PHPMaker dapat digunakan oleh Web Developer untuk menghasilkan Aplikasi Web. Cepat dan berkualitas! Anda dapat PHPMaker Aplikasi Web dengan sangat supermenggunakan cepat. Bayangkan, hanya untuk dalammenghasilkan hitungan beberapa menit saja, Anda waktu sudah yang bisa menghasilkan sebuah Aplikasi Web yang dilengkapi dengan sebagian besar fitur yang dibutuhkan dan wajib ada dalam sebuah aplikasi berbasis web. Output dari Aplikasi Web yang dihasilkannya pun tentu saja berkualitas. Tidak sekedarnya saja. Semua itu bisa terwujud karena PHPMaker sudah menyediakan kemudahan bagi Web Developer untuk menambahkan businesslogic tertentu tanpa harus menulis kode secara langsung ke file script di sisi Aplikasi Web. Event yang paling sering terjadi di sebuah Aplikasi Web adalah ketika Pengguna menginput kemudian menyimpan data yang baru ke Database. Biasanya, ketika event ini terjadi, Anda sebagai Web Developer harus menambahkan business-logic tertentu. Katakanlah ketika data transaksi di sebuah Record sedang disimpan ke Database, maka ada kebutuhan untuk memvalidasi terlebih dulu nilai Persentase dari transaksi tadi. Row_Inserting PHPMakerberada sudahdi menyediakan sebuah server event yang bernama yangdi dalam lokasinya bawah Server Events -> Table-Specific -> Common yang berada 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.
Server event Row_Inserting akan dipanggil sebelum sistem memasukkan sebuah Record ke Database. Argumen dari server event ini merupakan array dari Record yang lama (jika menggunakan fitur penyalinan (Copy) Record), yaitu: $rsold, dan array dari Record baru yang akan dimasukkan, yaitu: $rsnew. Anda sebagai Web Developer dapat mengganti nilai di argumen $rsnew. Server event Row_Inserting merupakan member dari Class Table. Anda sebagai Web Developer dapat menggunakan member lainnya yang terdapat di Class ini (jika dibutuhkan). Dengan menggunakan server event ini, Anda sebagai Web Developer masih diberi kesempatan oleh PHPMaker untuk menambahkan proses validasi di sisi server. Jika validasi yang Anda inginkan tidak sah, maka cukup kembalikan nilai FALSE, sebaliknya jika validasi sukses cukup kembalikan nilai TRUE. Mudah sekali, bukan? Supaya lebih mudah dipahami, silahkan simak contoh kode yang sederhana berikut ini. function Row_Inserting(&$rsold, &$rsnew) {
if ($rsnew["Persentase"] > 100) $rsnew["Persentase"] = 100; if ($rsnew["Persentase"] < 0) $rsnew["Persentase"] = 0; // To cancel, set return value to False return TRUE; }
Dari kode di atas, ditunjukkan bahwa jika data pada field Persentase yang diinput lebih besar dari nilai 100, maka sistem harus membatasinya dengan nilai maksimal 100. Demikian juga jika data persentase yang diinput lebih kecil dari nilai 0, maka sistem harus membatasinya dengan nilai minimal 0. Artinya, sistem akan otomatis membetulkan nilai batas minimum dan maksimum dengan nilai valid. Nah, biasanya ada pertanyaan lanjutan seperti ini. Bagaimana caranya jika saya ingin menampilkan pesan kepada Pengguna bahwa nilai yang dimasukkannya tidak valid? Gampang. Cukup ubah kode di atas menjadi seperti ini: function Row_Inserting(&$rsold, &$rsnew) { if ($rsnew["Persentase"] > 100) { $this->setWarningMessage("Nilai Persentase lebih besar dari 100. Silahkan perbaiki!"); return FALSE; } if ($rsnew["Persentase"] < 0) $this->setWarningMessage("Nilai Persentase lebih kecil dari 0. Silahkan perbaiki!"); return FALSE; } // To cancel, set return value to False return TRUE; }
Setelah Anda men-generate ulang kode tersebut dari PHPMaker, lalu menjalankan Aplikasi Web lewat browser, maka ketika Pengguna menginput nilai yang lebih besar dari 100 atau lebih kecil dari 0, maka sistem akan menampilkan pesan peringatan kepada Pengguna. Seketika itu juga proses penyimpanan data akan dibatalkan oleh sistem.
Perlu Anda ketahui bahwa server event Row_Inserting memiliki persamaan dengan server event Row_Deleting dalam hal pengeksekusiannya yang berbasis Record per Record atau Row per Row. Artinya, server event Row_Inserting akan dipanggil untuk setiap satu Record atau Row yang sedang ditambahkan ke Database. Dengan kata lain, server event ini juga akan dipanggil secara berulang-ulang sejumlah banyaknya Record yang sedang dimasukkan dan disimpan pada satu kesempatan ke Database menggunakan fitur Grid-Add atau Grid-Edit yang disediakan oleh PHPMaker. Betapa mudah, business-logic cepat, dan menyenangkan Anda sedang sebagaimenyimpan Web Developer menambahkan sendiri padasekali saat sistem data dapat ke Database melalui penggunaan Server Event di PHPMaker. ======60======60=====60
\\