Kurang lebih 3 minggu sejak PHPMaker 2023 dirilis pada tanggal 12 September 2023 yang lalu, Masino Extensions untuk PHPMaker 2023 akan segera dirilis dalam beberapa hari ke depan.
Sebagian besar masih sama dengan fitur pada Masino Extensions untuk PHPMaker 2022. Meskipun demikian, karena sejak versi 2023 sudah mulai menggunakan opsi UseAjaxActions, maka kode pada Masino Extensions tetap memerlukan penyesuaian yang tidak sedikit.
Untuk memastikan fitur-fitur yang terdapat di Masino Extensions tersebut berfungsi sebagaimana mestinya, dibutuhkan beberapa hari tambahan untuk mengetest dan mempersiapkan website demo, project demo, dan project startup kit-nya.
Sambil menunggu hari tersebut tiba, bagi yang penasaran fitur-fitur apa saja yang terdapat di Masino Extensions untuk PHPMaker 2023, berikut ini uraiannya.
1. Dark-Mode
Welcome Dark-Mode! Fitur yang sudah sangat lama saya nantikan ternyata belum tersedia di PHPMaker 2023, membuat saya tidak sabar lagi untuk segera mengimplementasikannya ke dalam Masino Extensions. Akhirnya terwujud juga!
Sekarang Anda sudah dapat menikmati mode gelap di aplikasi web yang dihasilkan oleh PHPMaker 2023. Tersedia theme-switcher untuk berpindah dari mode terang ke mode gelap dan juga sebaliknya. Anda dapat berpindah mode kapan saja, dan status terakhir akan otomatis disimpan oleh sistem.
Mode gelap sangat berguna ketika Anda ingin menampilkan halaman web dengan warna latar yang orientasinya cenderung gelap. Termasuk bagi Anda yang bosan dengan mode terang yang terkadang menyilaukan mata.
2. Sidebar Mini
Sama seperti versi 2022, di versi 2023 ini, PHPMaker masih belum menyediakan Sidebar Mini pada aplikasi web yang dihasilkannya. Ini juga yang membuat saya tetap menambahkan Sidebar Mini tersebut ke dalam Masino Extensions untuk PHPMaker 2023.
Fitur ini memungkinkan kita untuk menampilkan Sidebar dalam mode mini yang hanya terdiri dari icon milik item menunya. Ketika kita menggeser kursor mouse ke area Sidebar Mini tadi, maka Sidebar akan otomatis menampilkan nama item menunya.
Sidebar Mini juga akan otomatis muncul ketika Pengguna Akhir mengurangi ukuran (resize) jendela browser dari ukuran maximize secara perlahan berkurang, dan jika semakin kecil lagi, maka Sidebar Mini tadi akan berubah menjadi off-canvas atau Sidebar yang disembunyikan.
3. Status Terakhir Sidebar
PHPMaker 2023 masih menggunakan jQuery untuk menampilkan status terakhir Sidebar, apakah collapsed atau expanded. Yang dimaksud status collapsed bawaan asli PHPMaker 2023 adalah Sidebar disembunyikan sama sekali atau istilahnya off-canvas.
Contoh, jika misalnya status terakhir Sidebar adalah collapsed sementara status awal saat kode dibangkitkan oleh PHPMaker adalah expanded, maka Sidebar akan tampil expanded terlebih dulu selama sepersekian detik, kemudian Sidebar menjadi collapsed. Sangat tidak nyaman, bukan?
Dengan menggunakan Masino Extensions, di samping Sidebar Mini sudah didukung, juga bisa mengingat status terakhir Sidebar tanpa menggunakan jQuery. Melalui Extension MasinoHeaderFooter19, status terakhir Sidebar akan ditampilkan kembali menggunakan kode di sisi server.
Ketika status terakhir Sidebar ditampilkan melalui kode di sisi server, maka tidak terlihat efek di sisi client seperti contoh di atas. Aplikasi Web pun kelihatan menjadi lebih nyaman digunakan, karena efek perubahan status Sidebar tidak lagi kelihatan di sisi client.
4. Scroll To Top
Fitur ini akan otomatis menampilkan button panah atas di sebelah kanan bawah halaman jika Pengguna Akhir melakukan scroll ke bawah sampai sekitar 40% dari tinggi halaman.
Jika diklik, maka sistem akan otomatis scroll ke atas menggunakan efek scroll smooth. Fitur sederhana, tapi sangat dibutuhkan demi kenyamanan Pengguna Akhir ketika mem-browse konten halaman. Khususnya untuk halaman yang tinggi halamannya relatif besar.
Fitur sederhana, yang jika tidak disediakan sering membuat jengkel Pengguna Akhir yang merasa kerepotan untuk menuju ke bagian paling atas halaman. Mereka harus scroll manual lewat vertical scroll. Sekarang tidak lagi. Masino Extensions sudah memberikan solusinya.
5. Local Google Fonts
Meskipun Masino Extensions untuk PHPMaker 2023 masih menggunakan AdminLTE 3 atau lebih tepatnya versi 3.2, bukan berarti jenis huruf yang digunakan masih harus selalu menggunakan Font standar bawaan PHPMaker.
Extension MasinoHeaderFooter19 menyediakan pengaturan UseGoogleFonts, yang jika diaktifkan akan menggunakan Google Font secara lokal. Artinya kita tidak harus selalu terhubung ke Internet untuk dapat menggunakan Google Fonts.
Kita dapat memilih salah satu dari 9 pilihan Google Font yang tersedia, melalui pengaturan GoogleFontName, yaitu: comfortaa, exo, montserrat, muli, opensans, poppins, quicksand, roboto, dan ubuntu. Silahkan mencoba dan memilih salah satu dari yang paling Anda sukai.
Tentu saja Anda dapat menonaktifkan pilihan UseGoogleFonts tadi, supaya tetap dapat menggunakan Font bawaan dari PHPMaker 2023. Masino Extensions tetap memberi kesempatan kepada kita sebagai Web Developer untuk menggunakan Google Fonts atau mempertahankan Font bawaan asli PHPMaker.
6. Language Selector dengan Bendera
Masih pada Extension MasinoHeaderFooter19, sekarang tersedia pengaturan LanguageSelectorType, yang berisi 4 pilihan dan selama ini sudah disediakan PHPMaker. Tapi sayangnya, PHPMaker masih belum menyertakan icon bendera dari bahasa yang terkait.
Dengan menggunakan Masino Extensions, maka keempat pilihan berikut: LI (ditampilkan sejajar di bagian Header), DROPDOWN (ditampilkan dalam menu dropdown di Header), SELECT (ditampilkan melalui bantuan control Combobox di Header), dan RADIO (ditampilkan melalui control Radio Button di Header) sudah semakin ditingkatkan lagi.
Perubahan yang terjadi adalah dengan melengkapi icon bendera milik negara yang bertalian. Aplikasi Web pun menjadi kelihatan lebih profesional.
7. Judul Aplikasi dan Halaman Aktif di Browser
PHPMaker masih belum menampilkan judul halaman yang sedang aktif di bagian atas jendela browser. Dengan menggunakan Masino Extensions untuk PHPMaker 2023, maka judul halaman yang sedang aktif diikuti dengan nama aplikasi web-nya akan ditampilkan di bagian jendela browser.
Hal ini sangat bermanfaat bagi Pengguna Akhir yang sering kali membuka beberapa halaman sekaligus ke dalam beberapa tab browser. Mereka dapat melihat dengan mudah dari nama yang tercantum pada setiap tab tadi.
8. Status Terakhir Panel Pencarian
Hal pertama yang sering mengganggu kenyamanan Pengguna Akhir saat mem-browse data di halaman List adalah ketidakmampuan sistem untuk mengingat status terakhir Panel Pencarian. Sering kali Pengguna Akhir ingin meng-collapse atau menyembunyikan panel Pencarian ketika mem-browse data ke halaman lain.
Untuk itulah mengapa Extension MasinoSearchPanelStatus19 saya buat. Tersedia pengaturan di level Table, apakah akan mengaktifkan fitur ini atau tidak. Jika diaktifkan, maka ketika Pengguna Akhir terakhir meng-expand Panel Pencarian di halaman List tadi, maka ketika dia membuka kembali halaman tersebut di waktu mendatang, status expand tadi yang akan ditampilkan kembali.
Demikian juga sebaliknya. Jika status terakhir Panel Pencarian dalam keadaan collapsed, maka status terakhir tadi yang akan digunakan ketika Pengguna Akhir membuka kembali halaman List yang bertalian. Aplikasi Web nyaman digunakan dan semakin terlihat profesional.
Fitur ini sangat bermanfaat jika kita tidak ingin menampilkan Panel Pencarian selalu dalam keadaan terbuka, atau sebaliknya; dalam keadaan tertutup terus-menerus. Kita sekarang bisa mengaturnya secara dinamis on-the-fly saat Aplikasi Web diakses oleh Pengguna Akhir.
Sekedar informasi, status terakhir Panel Pencarian tersebut disimpan oleh sistem ke dalam Cookies. Oleh karena itu, jika Anda ingin me-reset kembali semua status Panel Pencarian seperti semula ketika Aplikasi Web baru di-generate oleh PHPMaker, maka tinggal hapus saja Cookies yang bertalian.
9. Auto Numeric untuk Field yang Bertipe Angka
Sistem akan otomatis menambahkan kemampuan untuk memisahkan angka ribuan menggunakan karakter separator ribuan. Demikian pula untuk angka desimal, akan otomatis dipisahkan menggunakan separator desimal. Setting karakter separator ribuan dan desimal tadi dapat ditentukan dari menu Tools -> Locale Settings.
Fitur ini diimplementasikan melalui Extensions MasinoAutoNumeric19. Sangat bermanfaat ketika Pengguna Akhir sedang menginput data numerik. Jika data yang diketik mencapai kelipatan ribuan, maka Pengguna Akhir merasa nyaman dan terbantu, karena sistem akan otomatis menambahkan sendiri karakter pemisah ribuannya.
Termasuk juga untuk data desimal, maka Pengguna Akhir akan merasa terbantu untuk menentukan berapa digit angka di belakang karakter pemisah desimalnya.
Pengaturan jumlah angka di belakang desimal tadi dapat kita tentukan melalui pengaturan level Field pada Extension MasinoAutoNumeric19. Tersedia pengaturan NumberOfDecimal. Isikan 2 (misalnya), jika 2 digit angka setelah karakter pemisah desimal.
Pengaturan ini disediakan dari sisi Extension, karena sejak PHPMaker 2023, sudah tidak tersedia lagi pengaturan untuk menentukan jumlah digit di belakang desimal pada panel View Tag. Oleh karena itu, pastikan Anda menentukan setting ini dari Extension MasinoAutoNumeric19.
10. Improvement pada Extension Preview
Extension Preview ini saya improve sehingga menghasilkan Extension MasinoPreview19. Perubahan yang saya lakukan adalah dengan menambakan dua pengaturan di level Table, yaitu masing-masing AskOnAddModal dan AskOnEditModal.
Kedua pengaturan tadi masing-masing berfungsi untuk menampilkan jendela dialog berisi pertanyaan melalui bantuan SweetAlert2, sebelum data yang akan ditambah atau diubah melalui jendela dialog Bootstrap Modal disimpan ke Database.
Secara standar pengaturan ini dalam posisi aktif. Itu artinya ketika Anda menggunakan Extension ini, Pengguna Akhir akan melihat kotak pertanyaan pada form Add maupun Edit yang ditampilkan dari table Detail yang dibuka melalui fitur Preview Row.
11. Optimalisasi SweetAlert2 dan Alertify
Kalau pada Masino Extensions di versi sebelumnya saya lebih banyak menggunakan Alertify, maka pada Masino Extensions untuk PHPMaker 2023 ini saya menggunakan (baca: mengoptimalkan) SweetAlert2 untuk menampilkan jendela dialog yang berisi pertanyaan/konfirmasi, maupun masukan input sederhana dari Pengguna.
Lalu bagaimana dengan Alertify? Jangan khawatir. Masih tetap saya gunakan di Masino Extensions untuk PHPMaker 2023, untuk menampilkan menu Bantuan atau Help Online dan kotak pesan melalui function showMessage().
Hal ini wajar, karena SweetAlert2 masih memiliki beberapa keterbatasan untuk menampilkan data yang memiliki lebih dari satu type icon pesan, termasuk tampilannya yang kurang proporsional untuk menampilkan konten Help Online.
Dengan menggunakan Alertify, maka konten Help Online dapat ditampilkan dengan lebih rapi, seperti yang selama ini sudah kita gunakan pada Masino Extensions di versi-versi sebelumnya. Pengguna Akhir juga masih tetap dapat menyeret jendela dialog ke posisi yang diinginkan pada layar komputer. Nah, fitur ini tidak terdapat di SweetAlert2.
Sedangkan SweetAlert2 di Masino Extensions untuk PHPMaker 2023, dapat mengoptimalkan keuntungan fitur-fitur cantik di SweetAlert2, menampilkan icon yang mewakili tipe pesannya, (information, alert, error, maupun confirmation). Selain itu, efek animasi saat dialog SweetAlert2 ditampilkan ke layar juga saya tambahkan sehingga kelihatan lebih nyaman saat dilihat oleh Pengguna Akhir. Hal yang sama juga berlaku pada saat jendela dialog ditutup, maka efek closing juga ditambahkan melalui Masino Extensions.
Perlu diketahui, bahwa bawaan asli PHPMaker 2023 masih belum menampilkan icon tipe pesan di SweetAlert2. Juga tidak tersedia efek saat jendela dialog dibuka maupun ditutup, sehingga terlihat sangat kaku.
Itulah alasan utama mengapa peningkatan fitur tersebut sudah seharusnya saya tambahkan di Masino Extensions untuk PHPMaker 2023. Lagi-lagi terlihat sederhana, tapi jika tidak dilakukan akan membuat Aplikasi Web yang dihasilkan tidak terlalu kelihatan profesional.
12. Mode Pengumuman
Fitur ini dapat menampilkan informasi Pengumuman (Announcement) yang datanya dapat diambil dari table announcement. User Administrator dapat mengubah setting ini dari table settings atau menu Application Settings atau Pengaturan Aplikasi. Pengaturan nama table untuk data teks Pengumuman dapat diatur dari extension MasinoHeaderFooter19.
Teks pengumuman di table announcement juga sudah mendukung pemakaian multi bahasa. Artinya, sistem akan otomatis menampilkan teks pengumuman sesuai dengan bahasa yang sedang terpilih. Hal ini sangat bermanfaat jika aplikasi web kita mendukung pemakaian multi bahasa.
Tidak itu saja, pengumuman dapat ditampilkan pada durasi waktu tertentu. Artinya jika durasi waktu yang ditetapkan sudah tidak terpenuhi, pengumuman akan otomatis tidak ditampilkan lagi.
13. Mode Pemeliharaan
Fitur ini dapat menampilkan informasi Pemeliharaan (Maintenance) yang batas waktu pemeliharaan dapat ditentukan dari table settings. O iya, nama table ini bersifat dinamis, dan dapat ditentukan dari extension MasinoHeaderFooter19.
Tadi telah disebutkan bahwa batas waktu pemeliharaan dapat ditentukan. Artinya, jika tanggal dan jam batas waktu tadi sudah terlampaui, sistem dapat otomatis menghilangkan mode Pemeliharaan tadi, sehingga pesan pemeliharaan tersebut tidak ditampilkan lagi.
Ketika Mode Pemeliharaan sedang aktif, maka Pengguna Akhir yang bukan level Administrator tidak dapat login atau masuk ke dalam aplikasi web. Mereka hanya bisa menampilkan halaman depan atau halaman Login saja. Sedangkan untuk Pengguna Akhir yang level Administrator, bisa login ke dalam sistem.
Pengaturan Mode Pemeliharaan di table settings dibuat sesimpel mungkin. Artinya, di table ini tidak ada form untuk menginput teks khusus. Hanya teks standar dari sistem yang ditampilkan. Oleh karena itu, jika Anda ingin menampilkan pesan khusus, maka Anda dapat mengaktifkan mode Pengumuman di atas tadi, lalu mendefinisikan isi teks Pengumuman sesuai dengan penjelasan dari kondisi mode Pemeliharaan yang sedang berlangsung.
14. Bootstrap Card di Halaman yang Bukan List
Fitur ini bertujuan untuk menampilkan konten di halaman Add, Edit, Update, Search, View, Login, Reset Password, Registration, dan Change Password menjadi lebih eye-catching lagi. Disertai dengan perubahan warna background halaman yang awalnya putih, berubah menjadi sedikit agak gelap (abu-abu).
Dengan teknik ini, maka konten yang ditampilkan di halaman-halaman tadi menjadi lebih mudah untuk dilihat dan dibaca. Bahkan, lebar konten akan otomatis menyesuaikan dengan lebar maksimal area konten utama. Ketika Pengguna Akhir mengubah ukuran jendela browser, lebar maksimal konten pun akan otomatis menyesuaikan.
Tidak hanya itu saja. Pengguna Akhir bahkan dapat me-maximize jendela dari component Bootstrap Card tersebut sampai dalam posisi full screen. Fitur ini tentu saja dapat memberikan kenyamanan kepada Pengguna Akhir yang ingin menampilkan konten dari suatu halaman tanpa harus terpengaruh dengan area Header, Sidebar, dan Footer.
15. Opsi Terms and Conditions di Halaman Registrasi dan Ganti Kata Sandi
Fitur ini adalah fitur yang paling banyak dicari oleh Web Developer untuk halaman Registrasi atau pendaftaran akun pengguna. Sebelum mendaftarkan akun, sistem memaksa Pengguna Akhir untuk menyetujui Syarat dan Ketentuan yang isinya dapat ditentukan dari table languages.
Teks Syarat dan Ketentuan dapat ditampilkan melalui bantuan jendela dialog Alertify. Pengguna Akhir bahkan dapat mencetak konten Syarat dan Ketentuan tadi. Sistem akan menampilkannya dalam file PDF kepada Pengguna Akhir, sehingga dapat dicetak atau disimpan jika dibutuhkan.
Tidak hanya di halaman Registrasi akun pengguna saja. Fitur Syarat dan Ketentuan ini juga tersedia di halaman Ganti Kata Sandi. Pengguna Akhir harus memberi tanda centang yang menandakan setuju dengan Syarat dan Ketentuan yang sudah ditetapkan sebelumnya.
Bahkan, ada opsi untuk menampilkan link ke Syarat dan Ketentuan di bagian Footer dari Aplikasi Web juga. Jika diklik maka sistem akan menampilkan jendela dialog Alertify berisi konten Syarat dan Ketentuan tadi. Pengaturan ini dapat Anda lihat pada Extension MasinoHeaderFooter19 pada pengaturan ShowTermsConditionsLinkOnFooter.
16. Help Online di Semua Halaman
Tersedia opsi untuk menampilkan icon tanda tanya yang jika diklik akan menampilkan jendela dialog Alertify berisi Bantuan yang menjelaskan halaman yang sedang dibuka.
Help Online ini bahkan tersedia juga jika halaman ditampilkan dalam jendela dialog Modal Bootstrap. Sistem akan mengenali halaman yang sedang ditampilkan, meskipun dalam jendela dialog Modal Bootstrap tadi.
Pengelolaan konten Help Online ini pun bisa dilakukan dari UI (User Interface) halaman Aplikasi Web yang sudah di-generate oleh PHPMaker. Artinya, konten Help Online dapat dikelola secara dinamis sesuai kebutuhan.
17. Pertanyaan Sebelum Data Disimpan atau Dihapus
Seperti yang sudah diuraikan di atas mengenai pengoptimalisasian SweetAlert2 untuk menampilkan jendela dialog berisi pertanyaan (menggantikan fitur Alertify), tersedia opsi untuk menampilkan pesan berisi konfirmasi atau pertanyaan sebelum Pengguna Akhir menyimpan data. Pengaturan ini dapat Anda lihat melalui Extension MasinoFixedWidthSite19.
Terdapat opsi AskOnAdd, AskOnEdit, AskOnUpdate, AskOnDelete, AskOnDeleteFromView, dan AskOnSaveGrid. Sesuai dengan namanya, masing-masing opsi ini jika diaktifkan dapat menampilkan jendela dialog berisi pertanyaan apakah data ingin disimpan (Add, Edit, Update, SaveGrid) atau ingin dihapus (Delete).
Secara standar (Default), semua opsi ini dalam keadaan aktif (Enabled). Itu artinya Pengguna Akhir akan otomatis melihat pertanyaan menggunakan SweetAlert2, sebelum dapat melanjutkan ke proses berikutnya (apakah data disimpan, atau apakah data ingin dihapus; tentu saja sesuai kondisi di halaman yang bertalian).
Tidak itu saja. Fitur ini juga akan otomatis diimplementasikan jika halaman Add, Edit, atau Update tersebut ditampilkan melalui jendela dialog Bootstrap Modal. Masino Extensions akan menangani hal tersebut dengan membaca pengaturan level Table di Extension MasinoFixedWidthSite19 tadi.
18. Count Down Session Akan Time Out di Footer
Fitur ini menampilkan hitungan count down sesi Pengguna yang sedang login akan berakhir dalam format Menit:Detik pada bagian Footer dari Aplikasi Web yang dihasilkan oleh PHPMaker.
Jika sekian waktu terakhir yang bisa ditentukan dari Advanced Settings akan berakhir, maka jendela dialog SweetAlert2 tadi akan ditampilkan ke hadapan Pengguna Akhir. Mereka harus mengklik tombol OK supaya dapat melanjutkan session-nya kembali.
Jika dibiarkan terus sampai waktu session berakhir, maka sistem akan otomatis logout. Pengguna Akhir harus login lagi jika ingin melanjutkan session-nya kembali.
19. Calendar Scheduler
Karena sejak versi 2023 PHPMaker sudah menyertakan fitur Calendar dalam bentuk Calendar Report, maka Masino Extension hanya mengembangkan fitur ini melalui extension MasinoCalendar19.
Sama seperti di versi-versi Masino Extensions sebelumnya, fitur ini dapat menampilkan data melalui penggunaan Javascript Library FullCalendar.
Pengguna Akhir dapat menampilkan data di suatu tanggal atau durasi tanggal awal dan akhir tertentu melalui jendela dialog Bootstrap Modal. Mereka juga dapat menambah, mengubah, atau menghapus data melalui antara muka Kalender. Semuanya itu tetap menggunakan jendela dialog Bootstrap Modal.
20. Dynamic Permission untuk Export Data
Sejak versi 2023, PHPMaker mulai memperkenalkan permission Export melalui level pengaturan di aplikasi PHPMaker, melalui penggunaan API Export. Sayangnya, kita harus menulis kode pada server event tertentu untuk dapat memberikan akses sesuai jenis Export Datanya.
Untuk mengatasi keterbatasan tadi, makanya fitur Dynamic Permission untuk Export Data tersebut masih tetap saya perthankan melalui Extension MasinoHeaderFooter19. Cukup dengan mengaktifkan pengaturan EnablePermissionsForExportData.
Fitur ini memungkinkan sistem untuk memberi permission Export Data ke media tertentu (Print, Excel, Word, HTML, CSV, XML, PDF, atau Email) pada halaman yang mendukung Export Data, seperti List dan View. Permission ini dapat ditentukan secara dinamis oleh Pengguna Akhir level Administrator.
Cukup dengan mengakses halaman User Levels atau Level Pengguna, lalu mengklik icon user bertuliskan Permissions, lalu mengaktifkan apakah Permission untuk satu dan atau beberapa Export Data di atas. Setelah data disimpan, maka ketika Pengguna Akhir yang sesuai dengan Level Pengguna yang bertalian tadi dapat mengakses fitur Export Data.
21. Export to Print via API Export
Fitur Export to Print atau Printer Friendly pada Masino Extensions untuk PHPMaker 2023 menggunakan API Export. Tidak seperti bawaan asli PHPMaker 2023 yang hanya mengandalkan tampilan data di table dengan style dan warna aslinya, sehingga jika data dicetak akan boros tinta/pita printer, maka dengan menggunakan Masino Extensions, output data yang ditampilkan murni menggunakan style yang sangat minim (tanpa warna dan style lain).
Jenis hurufnya pun sudah dibuat khusus supaya mudah terbaca, dan warna latar belakang hanya putih, sehingga ketika data dicetak ke printer tidak terlalu menggunakan banyak tinta atau tidak boros pita printer. Sayangnya, fitur ini belum mendukung object Reports di project PHPMaker.
Salah satu alasan utama saya mengubah link Export to Print ini menjadi menggunakan API Export, karena jika menggunakan bawaan asli PHPMaker 2023, kita tidak dapat mengkostumisasi data yang akan diekspor melalui server event.
Contoh, jika kita ingin menyembunyikan kolom tertentu, maka hal ini tidak dapat dilakukan jika menggunakan fitur bawaan asli PHPMaker 2023. Tentu ini tidak kita inginkan. Sebagai solusinya, cukup gunakan Masino Extensions.
22. Breadcrumb Links yang Dinamis
Seperti yang kita ketahui, sejak Breadcrumb Links pertama sekali diimplementasikan oleh PHPMaker, maka secara standar, hirarkinya akan berada satu level di bawah Home. Sedangkan untuk table Detail, maka akan berada di bawah level dari tabel masternya. Demikian seterusnya.
Sedangkan Breadcrumb Links yang saya buat pada Masino Extensions, tidak seperti itu. Fitur ini memberikan pilihan alternatif selain yang disediakan oleh PHPMaker tadi. Artinya, dengan menggunakan Masino Extensions, maka Breadcrumb Links bawaan PHPMaker tadi bisa diganti dengan Breadcrumb Links yang urutan hirarki-nya bisa kita tentukan sendiri. Biasanya, acuan yang kita gunakan adalah hirarki pada struktur item menu dari halaman tadi berada.
Enaknya lagi, Breadcrumb Links yang saya buat pada Masino Extensions ini pun sudah mendukung pemakaian multi-bahasa. Syaratnya, phrase untuk Breadcrumb Link tersebut harus sudah ditambahkan terlebih dulu secara manual ke dalam file bahasa .xml yang diigunakan untuk Aplikasi Web. Jika tidak, maka Breadcrumb Link tersebut tidak akan sempurna ketika ditampilkan. Seolah-olah seperti masih ada phrase yang belum didefinsikan di dalam file bahasa tadi.
Sekedar informasi, Breadcrumb Links yang digunakan pada Aplikasi Web Demo ini berasal dari Masino Extensions. Anda bisa mencocokkan hasilnya. Pastikan bahwa Breadcrumb Links yang ditampilkan di pojok kanan atas halaman, sama persis dengan urutan hirarki struktur menu yang ditampilkan pada Sidebar.
O iya, untuk halaman yang ditampilkan dengan jendela Modal, maka Breadcrumb Links pada jendela Modal tersebut tidak akan ditampilkan. Jadi, Breadcrumb Links-nya tetap mengacu kepada halaman List-nya. Tentu saja, karena halaman terakhir yang kita buka dalam hal itu adalah halaman List.
Nah, supaya Anda dapat mengelola sendiri data Breadcrumb Links tadi sesuai kebutuhan, maka saya telah menyediakan 4 (Empat) buah form untuk mengelola Breadcrumb Links tersebut. Anda dapat mencobanya dari bawah menu Administrator pada Aplikasi Web Demo, yaitu:
– Menambah data Breadcrumb Link yang baru,
– Memeriksa alamat atau hirarki dari sebuah Breadcrumb Link,
– Memindahkan suatu Breadcrumb Link ke bawah induk Breadcrumb Link yang lain, dan
– Menghapus suatu Breadcrumb Link.
Jika sebuah Breadcrumb Link yang dihapus tadi adalah induk (Parent) dari beberapa Breadcrumb Links yang lain, maka seluruh anak atau (Child) Breadcrumb Links tadi akan otomatis dihapus oleh sistem. Oleh karena itu, berhati-hatilah sebelum menghapus sebuah Breadcrumb Links. Sistem akan selalu mengingatkan Anda ketika membuka form untuk menghapus Breadcrumb Links.
23. Alternatif Pilihan untuk Mereset Kata Sandi
Dengan fitur ini, maka Anda sebagai Web Developer dapat menyediakan beberapa pilihan lain, selain hanya mereset Kata Sandi menggunakan data Email saja. Tersedia pilihan Username saja, atau Username dan Email.
Tentu saja fitur ini tergantung kebutuhan, karena di beberapa Aplikasi Web, ada yang mengijinkan satu Email bisa digunakan oleh beberapa akun Pengguna. Untuk itu, maka sudah seharusnya tersedia parameter Username dan Email sekaligus untuk mereset Kata Sandi.
Pada demo aplikasi web asli yang disediakan oleh PHPMaker 2023, fitur Reset Kata Sandi baru mendukung satu parameter saja, yaitu Email.
24. Visitor Statistics
Fitur ini diimplementasikan melalui extension MasinoVisitorStatistics19. Untuk mengimplementasikannya, maka pastikan kita sudah mengaktifkan opsi Enabled dari pengaturan Advanced extension tersebut.
Sistem akan otomatis merekam statistik pengunjung Aplikasi Web yang akan dibagi ke dalam beberapa table, yaitu stats_counter (Statistik Browser dan OS), stats_counterlog (Statistik per IP Address), stats_date (Statistik per Tanggal), stats_hour (Statistik per Jam), stats_month (Statistik per Bulan), dan stats_year (Statistik per Tahun).
Anda bisa menampilkan langsung hasilnya melalui object Table yang di-generate oleh PHPMaker terhadap keenam table di atas tadi. Fitur ini sangat bermanfaat jika Anda ingin mengetahui jumlah pengunjung aplikasi web Anda berdasarkan beberapa kriteria yang sudah tersedia tadi.
25. Menghilangkan Outline Tebal berwarna Biru
Satu hal yang cukup mengganggu saya ketika menggunakan Bootstrap 5 di PHPMaker 2022 ini adalah outline tebal berwarna biru di sekeliling control yang sedang focus di sebuah Form.
Saya menghilangkan outline tebal tadi, dengan menggantikan outline biru tipis saja. Dengan cara ini, maka form akan kelihatan lebih bersih dan nyaman dilihat.
Modifikasi kecil yang dampaknya membawa perubahan besar, karena diimplementasikan di semua halaman yang dihasilkan oleh PHPMaker.
26. Highlight Parent-Menu di Bagian Top Navbar
Hal lain yang membuat tidak nyaman saat mengakses Aplikasi Web yang sudah di-generate oleh PHPMaker 2023 adalah ketika kita memilih salah satu item Sub-Menu di bagian Navbar atas, maka item Parent-Menu-nya tidak otomatis ter-highlight. Akibatnya, Pengguna Akhir tidak dapat mengetahui dengan cepat, item Parent-Menu yang mana yang seharusnya aktif.
Dengan menggunakan Masino Extensions, maka hal itu tidak terjadi lagi. Sekarang Anda akan melihat item Parent-Menu otomatis ter-highlight jika item Sub-Menu di bawahnya sedang terpilih. Pengguna Akhir pun menjadi nyaman dan mudah mengetahui Parent-Menu mana yang sedang aktif di bagian Navbar.
Hanya sedikit perubahan saja yang saya lakukan dari dalam Masino Extensions, tapi membawa dampak untuk item Sub-Menu yang berada di bawah beberapa item Parent-Menu, maka semua item Parent-Menu tersebut akan otomatis ikut ter-highlight.
27. Javascript Menu untuk Menampilkan Jendela Dialog Alertify
Seperti di versi-versi sebelumnya, Masino Extensions sudah menangani item menu yang dapat memanggil jendela dialog Javascript menggunakan Alertify. Untuk membedakan attribute di dalam item menu-nya, maka saya menggunakan sintaks khusus.
Di dalam demo project (yang akan saya rilis juga kurang dari satu minggu ke depan), kita dapat mengklik menu About Us atau Terms and Conditions di Sidebar, yang jika diklik akan menampilkan jendela dialog Alertify berisi masing-masing konten About Us dan Terms and Conditions.
Tentu saja Anda bisa menggunakan sintaks khusus tadi jika ingin menampilkan halaman lewat jendela dialog Bootstrap Modal atau jendela dialog Alertify. Cukup mendefinisikan sintaks tersebut melalui Menu Editor PHPMaker 2023.
28. Freeze Table di Halaman Hak Akses Level Pengguna
Sama seperti di Masino Extensions versi-versi sebelumnya, di halaman untuk memberikan Hak Akses kepada Level Pengguna tertentu berdasarkan nama Table/Halamannya, kita masih bisa merasakan fitur Freeze Table.
Halaman ini bisa Anda akses dari menu Administrator, lalu pilih Level Pengguna, kemudian klik Ijin. Di halaman selanjutnya Anda akan melihat fitur Freeze Table di halaman Hak Akses Level Pengguna.
Sejak versi 2023, PHPMaker menggunakan Tabulator, sebuah Javascript library yang dapat mengubah tampilan table dengan fitur Freeze kolom maupun baris. Sayangnya bawaan asli PHPMaker belum disertai fitur ini.
Untuk itulah Masino Extensions hadir dengan menambahkan kemampuan freeze kolom dan baris seperti kita sedang menggunakan fitur yang sama di Excel. Apalagi karena semakin banyaknya jumlah jenis Hak Akses (Permissions) yang letaknya semakin ke sebelah kanan dari posisi kolom nama table-nya, pasti akan menimbulkan scroll ke samping dan bawah table.
Dengan adanya fitur ini, maka pengguna level Administrator dapat tetap nyaman saat memberikan ijin tertentu berdasarkan nama table dan nama ijinnya.
29. Empty Table Jika Tidak Ada Record di Halaman List
Sampai dengan versi 2023, PHPMaker masih menampilkan halaman kosong jika tidak ada data di halaman List. Karena hanya halaman kosong, Aplikasi Web kelihatan sangat tidak nyaman dilihat. Seolah-olah ada tampilan yang hilang.
Mengapa tidak sebaiknya menampilkan table kosong jika tidak ada data yang ditampilkan? Bukankah lebih baik menampilkan table kosong dengan judul kolom yang sama dengan judul kolom table jika terdapat data di table tersebut?
Untuk itulah pengaturan ShowEmptyTable saya tambahkan di Extension MasinoHeaderFooter19. Jika diaktifkan, maka ketika tidak ada data di table pada halaman List, sistem akan menampilkan table kosong dengan judul-judul kolom table yang sama jika ada data di table tersebut.
Dengan ditampilkannya table kosong tadi, maka Pengguna Akhir menjadi punya gambaran mengenai data apa yang seharusnya ditampilkan di table tersebut, melalui judul-judul kolom table tadi. Daripada menampilkan halaman kosong, lebih baik menampilkan halaman dengan table kosong.
30. Maksimum Record per Page di Halaman List
Dengan menggunakan Masino Extensions, kita dapat membatasi jumlah maksimum record yang dapat ditampilkan pada tabel di halaman List. Tentu saja tersedia pengaturan di level Table, sehingga kita dapat mengatur jumlah maksimum record yang berbeda-beda antara tabel satu dengan yang lainnya.
Hal ini sangat bermanfaat ketika kita ingin membatasi jumlah record maksimum pada table tertentu di halaman List. Sering kali kita tidak ingin memberikan akses jumlah record yang relatif banyak di halaman List, karena semakin banyak record yang diakses, semakin lama pula waktu yang dibutuhkan untuk memuat halaman tersebut.
Pengguna Akhir akan melihat pesan yang memberitahukan jumlah maksimum record yang dapat diakses, ketika mereka mencoba mengakses jumlah record yang melampaui jumlah maksimum yang diijinkan. Selanjutnya sistem akan otomatis menampilkan jumlah maksimum record di halaman tersebut.
31. Hitung Mundur Saat Akun Terkunci Ketika Login
Sampai dengan versi 2023, PHPMaker masih belum menangani hitung mundur yang benar-benar real dengan waktu yang sebenarnya, ketika Pengguna Akhir login melebih jumlah maksimal usaha login (biasanya lebih dari 3 kali).
Artinya, ketika akun Pengguna terkunci setelah gagal login lebih dari 3 kali, sementara waktu yang diijinkan untuk login kembali setelah akun terkunci adalah 5 menit, maka waktu itu akan terus-menerus ditampilkan pada pesan balikan dari sistem. Aneh sekali, bukan?
Seharusnya, sistem akan otomatis menghitung mundur waktu tersebut, dan tidak menampilkan 5 menit terus-menerus. Jika tidak, maka Aplikasi Web menjadi kelihatan kurang profesional. Terkesan membohongi Pengguna Akhir, karena tidak sesuai lagi dengan kondisi waktu yang terakhir saat Pengguna Akhir sedang berusaha login.
Dengan menggunakan Masino Extensions, maka hal itu tidak terjadi lagi. Sistem akan otomatis menghitung mundur sesuai dengan waktu terakhir Pengguna Akhir berusaha untuk login. Pengguna Akhir pun merasa nyaman karena sistem memberitahukan waktu real yang sebenarnya. Bukan hanya menampilkan 5 menit terus-menerus seperti pada contoh di atas.
32. Pilihan untuk Selalu Membandingkan Root URL
Ini merupakan opsi untuk selalu membandingkan root URL, apakah sama atau berbeda. Fungsinya untuk memisahkan web versi development dengan versi production, khususnya jika versi development diletakkan di sub-direktori yang berada di bawah root direktori dari versi production.
Cukup dengan mengaktifkan opsi AlwaysCompareRootURL yang terdapat di pengaturan Advanced dari Extension MasinoHeaderFooter19. Pengaturan yang terkait lainnya adalah OtherComparedRootURL yang merupakan alamat Root URL yang akan dibandingkan dengan root URL yang sedang aktif
Fitur ini sudah saya buat sejak Masino Extensions untuk PHPMaker 2020. Karena fitur ini sering kali dibutuhkan khususnya bagi Anda yang membuat Aplikasi Web versi development dan versi production, maka saya pastikan fitur ini terdapat pada Masino Extensions untuk PHPMaker 2023.
Bedanya, untuk PHPMaker versi 2023, saya harus menambahkan pengaturan OtherComparedRootURL tadi untuk mendefinisikan dengan tegas root URL yang akan dibandingkan, karena sejak versi 2021, PHPMaker menggunakan URL Rewrite, sehingga harus secara spesifik kita tentukan Root URL yang akan dibandingkan.
Penjelasan lebih lengkap disertai contoh dapat Anda baca melalui artikel Membatasi Akses Versi Live dan Versi Development Aplikasi Web dari PHPMaker.
33. Pilihan untuk Menggunakan Custom Domain URL
Pilihan UseCustomDomainURL terdapat di Extension MasinoHeaderFooter18 berfungsi untuk menggunakan URL domain yang bisa kita tentukan sendiri. Hal ini biasanya berguna untuk menyesuaikan link untuk mereset Kata Sandi yang sering menyertakan nama direktori pada web server tempat file script ditempatkan.
Anda dapat membaca artikel Custom Domain URL di Masino Extensions untuk PHPMaker 2020 untuk informasi dan contoh lebih lanjut.
Meskipun artikel tersebut menjelaskan Masino Extensions untuk PHPMaker 2020, fitur tersebut juga masih bisa Anda nikmati pada Masino Extensions untuk PHPMaker 2023. Gunakan sesuai kebutuhan. Jika tidak dibutuhkan, pastikan sudah menonaktifkan pilihan UseCustomDomainURL tadi.
34. Nomor Urut di Export Data
Fitur ini merupakan improvement pada fitur Export Data di PHPMaker untuk menampilkan nomor urut di hasil Export Data. Sampai dengan versi 2023, PHPMaker masih belum bisa menyertakan nomor urut di data hasil Export dari halaman List.
Dengan menggunakan Masino Extensions, maka nomor urut akan otomatis ditampilkan pada hasil Export Data yang bertalian. Tidak ada opsi khusus di Masino Extensions terkait fitur ini. Untuk memastikan nomor urut muncul di hasil Export Data, pastikan untuk mengaktifkan opsi Sequence number pada level Table -> List Page.
Untuk informasi lebih lanjut, silahkan baca artikel Nomor Urut Record di Export Data pada PHPMaker 2020 dan PHPMaker 2021.
35. Pilihan SweetAlert2 atau Boostrap Toast
Pada Extension MasinoHeaderFooter19 terdapat opsi UseMessageBoxInsteadOfToast untuk menampilkan pesan, apakah ingin pakai SwetAlert2 atau Bootstrap Toast.
Secara standar pilihan ini dalam keadaan aktif (enabled), sehingga menggunakan kotak pesan SweetAlert2. Jika Anda ingin menampilkan pesan menggunakan Bootstrap Toast, maka cukup nonaktifkan (disable) pilihan ini, lalu generate ulang semua file script seperti biasa.
Masing-masing pilihan memiliki kelebihan dan kekurangan masing-masing. Silahkan sesuaikan dengan kebutuhan di Aplikasi Web Anda. Karena ada yang lebih senang menggunakan Bootstrap Toast, daripada menggunakan kotak dialog seperti SweetAlert2.
Jika menggunakan SweetAlert2 untuk menampilkan pesan tadi, maka kotak pesan akan berada di tengah-tengah yang menutup area halaman, dan Pengguna Akhir harus mengklik tombol OK supaya dapat melanjutkan pekerjaan.
Sementara jika menggunakan Bootstrap Toast, maka pesan yang ditampilkan berada di pojok kanan atas, dan Pengguna Akhir tidak harus menutup jendela Toast tadi untuk dapat melanjutkan pekerjaan.
Jadi, jika Anda ingin menggunakan Bootstrap Toast, maka pastikan untuk menonaktifkan pilihan UseMessageBoxInsteadOfToast dari Extension MasinoHeaderFooter19.
36. Form Wizard
Fitur ini dapat mengubah halaman yang menggunakan fitur Multi-Page di PHPMaker 2023 menjadi menggunakan Form Wizard. Pengguna Akhir dapat menekan tombol Next untuk menuju Page berikutnya, atau Prev untuk mundur ke Page sebelumnya.
Setiap kali akan berpindah halaman, sistem akan memvalidasi apakah ada field mandatory yang belum diisi, dan jika ya, maka tidak dapat berpindah ke halaman lain.
Tersedia beberapa pilihan theme seperti arrows, basic, dots, round, dan square dengan tampilan yang menarik. Juga terdapat beberapa pilihan warna seperti blue, dark, green, liteblue, red, dan yellow. Jika form wizard ditampilkan pada theme yang Dark-Mode, maka otomatis form wizard pun menggunakan warna dark.
37. Signature
Fitur ini dapat memungkinkan Pengguna Akhir merekam tanda tangan dalam bentuk digital. Syaratnya, field harus menggunakan control TextArea dan dibantu dengan sebuah Custom Field untuk dijadikan Signature Pad.
Selanjutnya Pengguna Akhir dapat menorehkan tanda tangannya pada Signature Pad tadi, layaknya membubuhkan tanda tangan menggunakan pulpen secara manual. Bahkan fitur ini mendukung untuk digunakan lewat perangkat mobile.
Sistem akan mengubah tanda tangan tadi menjadi file image yang data raw-nya bisa disimpan di database menggunakan base64, atau bahkan data base64 tadi tidak disimpan ke database.
Dani mengatakan
Bang masino saya mau tanya apakah memungkinkan log phpmaker di pindah ke /var/log
Masino Sinaga mengatakan
Kalau var/log folder tersebut di luar dari relative folder dimana script aplikasi web berada, sepertinya tidak bisa.
Folder harus relative ke setting Upload folder yang terdapat di setting PHP -> General Options -> File Upload.
Nur Syamsu mengatakan
Salam Pak Masino,
Saya tertarik dgn Masino Extenstion dan berencana ingin menjadi member di http://www.ilovephpmaker.com/ , namun saya ada beberapa pertanyaan sbb:
1. Utk masino extentions PHPMaker v2023 apakah dapat berjalan di seluurh versi minornya ataukah versi minor terbaru saja misalnya v2023.12 ?
2. Saat ini saya baru instal trial PHPMaker v2023.12, apakah versi trial sudah dapat menggunakan Masino Extention ?
Terima kasih
Masino Sinaga mengatakan
1. Karena Masino Extensions selalu saya mutahirkan agar selalu up-to-date, maka selalu disarankan untuk menggunakan versi minor terakhir saat itu. Intinya: selalu gunakan versi terakhir PHPMaker dan Masino Extensions supaya selalu sinkron.
2. Masino Extensions tentu saja bisa digunakan pada PHPMaker 2023 yang masih versi trial. Lagi-lagi, selalu saya sarankan agar menggunakan versi minor yang terakhir. Saat saya tulis komentar ini, sudah v2023.13.
adji mengatakan
pak masino, saya mau tanya ttg URl rewrite. aplikasi telah saya upload ke hosting saya. ketika saya buka muncul ERROR 404 pak. saya sudah set REWRITEBASE /COBA/ di .htaccess di root folder juga di API folder rewritebase /coba/api/ . saya juga sudah set di advance setting rewrite directive – /coba/.
namun tetep halaman login tidak muncul. error 404 pak. minta bantuan nya pak. terima kasih sebelumnya.
Masino Sinaga mengatakan
Pengalaman saya menempatkan aplikasi web yang dihasilkan oleh PHPMaker ke server hosting, tidak pernah menyesuaikan file .htaccess, dan langsung jalan.