Dalam beberapa hari ke depan, saya akan merilis Masino Extensions untuk PHPMaker versi 2022. Sebelum saya rilis, ada baiknya kita mengetahui fitur-fitur apa saja yang bakal Anda nikmati, jika menggunakan Masino Extensions tersebut.
Sebagian besar fitur yang saya tambahkan ke Masino Extensions adalah karena belum terdapat pada fitur bawaan PHPMaker 2022. Artinya, fitur-fitur tersebut memang dibutuhkan, tapi sayangnya belum disediakan di PHPMaker 2022. Fitur Extensions PHPMaker adalah solusinya. Kabar baiknya, di versi 2022 ini, PHPMaker semakin menyederhanakan lagi teknik pembuatan Extension.
Meskipun di awal-awal terjadi sedikit “drama” yang tidak dapat mengenali Extensions di project PHPMaker 2022, akhirnya fitur Extensions ini bisa juga digunakan pada PHPMaker 2022. Lagi-lagi, kesabaran yang jadi kunci utama.
Penasaran fitur-fitur apa saja yang saya tambahkan di Masino Extensions untuk PHPMaker 2022?
1. Improvement pada AdminLTE 3
Mari kita mulai dengan theme atau layout yang digunakan. Kali ini saya memutuskan untuk tetap mempertahankan AdminLTE 3 bawaan asli PHPMaker 2022. Kalau dulu saya berusaha untuk menghindari pemakaian AdminLTE di beberapa versi Masino Extensions saya. Tapi kalau sekarang, sudah tidak lagi. Mengapa?
Ada dua alasan utama. Pertama, beberapa fitur di PHPMaker 2022 mengandalkan theme ini, yaitu: fitur search item menu di Sidebar, dan juga fitur search data di bagian Top Navbar. Kedua, dari Github-nya, saya melihat sang author akan merilis versi 3.2.0 dalam waktu dekat. Bahkan, versi major berikutnya yaitu 4.0.0 juga akan mereka rilis.
Tentu saja semua ini membuktikan bahwa AdminLTE yang sekarang sudah lebih baik dibandingkan versi-versi sebelumnya. Melihat progress development theme ini di Github semakin meyakinkan saya untuk tetap mempertahankannya pada Masino Extensions untuk PHPMaker 2022.
Meskipun saya tetap mempertahankan AdminLTE, bukan berarti saya tidak melakukan improvement pada theme atau layout bawaan PHPMaker 2022 ini. Beberapa peningkatan fitur saya lakukan melalui Extension MasinoHeaderFooter18.
Tersedia pengaturan FixedHeader, yang berfungsi untuk membuat bagian Header Aplikasi Web tetap lengket di bagian atas halaman, meskipun Pengguna Akhir melakukan scroll ke arah bawah. Hal ini sangat berguna jika halaman Aplikasi Web memiliki banyak record, sehingga membutuhkan scroll yang panjang sampai ke bagian paling bawah halaman.
Kemudian tersedia pengaturan SidebarMini. PHPMaker 2022 sebenarnya sudah memiliki pengaturan AdminLTE layout class di bawah menu Tools -> Advanced Settings, tapi sayangnya di sana tidak ada opsi sidebar-mini. Untuk itulah Masino Extensions menyediakan opsi SidebarMini tersebut.
Masih terkait dengan Sidebar, tersedia juga pengaturan ElevateSidebar, untuk menampilkan efek melayang (elevate) pada Sidebar. Tersedia 4 opsi, yaitu: elevation-1, elevation-2, elevation-3, atau elevation-4. Semakin tinggi nilainya, maka semakin terlihat tinggi melayang Sidebar-nya, ditandai dengan semakin tebalnya efek bayangan (shadow) di sisi kanan Sidebar yang bertalian.
Peningkatan fitur lainnya yang tidak kalah penting adalah 3 pengaturan berikut: NavPills, NavFlat, dan NavLegacy. Sengaja tidak saya uraikan di sini. Saya persilahkan Anda bermain-main melalui kombinasi pilihan yang Anda inginkan. Penasaran kan? Hehehe… yang jelas, pengaturan ini untuk memberikan tampilan yang berbeda pada item navigasi Sidebar.
2. Improvement pada Kode RTL di CSS AdminLTE 3
Sampai dengan PHPMaker v2022.3 (saat artikel ini saya tulis), PHPMaker belum menyertakan kode CSS yang menangani penggunaan Sidebar Mini. Itu artinya PHPMaker 2022 belum mendukung pemakaian Sidebar Mini.
Untuk itu, maka saya harus melakukan penyesuaian kode CSS untuk mengatasi pemakaian Sidebar Mini. Karena kurang sreg rasanya jika Aplikasi Web kita tidak bisa menampilkan Sidebar Mini.
Hal ini ternyata berdampak juga pada kode CSS yang menangani layout RTL (Right-To-Left). Saya pun harus menyesuaikan kode untuk layout RTL khusus pada penanganan Sidebar Mini tersebut.
Penyesuaian ini sengaja saya tuliskan di sini, supaya tidak lupa jika PHPMaker masih belum menangani pemakaian Sidebar Mini untuk AdminLTE versi mendatang.
3. Scroll To Top
Peningkatan fitur lainnya untuk AdminLTE 3 meskipun tidak tersedia melalui pengaturan khusus di Masino Extensions adalah ScrollToTop. 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.
4. Local Google Fonts
Meskipun Masino Extensions untuk PHPMaker 2022 menggunakan AdminLTE3, bukan berarti jenis huruf yang digunakan masih harus selalu menggunakan Font standar bawaan PHPMaker.
Extension MasinoHeaderFooter18 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 2022. Masino Extensions tetap memberi kesempatan kepada kita sebagai Web Developer untuk menggunakan Google Fonts atau mempertahankan Font bawaan asli PHPMaker.
5. Language Selector yang Dilengkapi Bendera
Masih pada Extension MasinoHeaderFooter18, 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.
6. Otomatis Mengingat 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 MasinoSearchPanelStatus18 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.
7. 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 MasinoAutoNumeric18. 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 MasinoAutoNumeric18. Tersedia pengaturan NumberOfDecimal. Isikan 2 (misalnya), jika 2 digit angka setelah karakter pemisah desimal.
Pengaturan ini disediakan dari sisi Extension, karena sejak PHPMaker 2022, 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 MasinoAutoNumeric18.
8. Improvement pada Extension Preview
Extension Preview ini saya improve sehingga menghasilkan Extension MasinoPreview18. 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.
9. Optimalisasi SweetAlert2 dibandingkan Alertify
Kalau pada Masino Extensions di versi sebelumnya saya lebih banyak menggunakan Alertify, maka pada Masino Extensions untuk PHPMaker 2022 ini saya memutuskan untuk lebih banyak menggunakan (baca: mengoptimalkan) SweetAlert2 untuk menampilkan jendela dialog yang berisi informasi, peringatan, pertanyaan/konfirmasi, maupun masukan input sederhana dari Pengguna.
Lalu bagaimana dengan Alertify? Jangan khawatir. Masih tetap saya gunakan di Masino Extensions untuk PHPMaker 2022, tapi hanya untuk menampilkan menu Bantuan atau Help Online. Hal ini wajar, karena SweetAlert2 masih memiliki beberapa keterbatasan untuk menampilkan data yang dimuat dengan AJAX, 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 2022, 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 PHPMaker 2022 tidak 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 2022. Lagi-lagi terlihat sederhana, tapi jika tidak dilakukan akan membuat Aplikasi Web yang dihasilkan tidak terlalu kelihatan profesional.
10. 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 MasinoHeaderFooter18.
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.
11. 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 MasinoHeaderFooter18.
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.
12. 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.
13. 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 MasinoHeaderFooter18 pada pengaturan ShowTermsConditionsLinkOnFooter.
14. 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.
15. Opsi Menampilkan 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 MasinoFixedWidthSite18.
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 MasinoFixedWidthSite18 tadi.
16. 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.
17. Calendar Scheduler
Fitur ini diimplementasikan melalui Extension MasinoCalendarScheduler18. 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.
Tentu saja dilengkapi dengan backend yang sudah teruji dan terbukti kehandalannya melalui Masino Extensions untuk beberapa versi major PHPMaker sebelumnya.
Pengguna Akhir bahkan dapat menggeser event di Kalender ke posisi tanggal yang baru. Sistem akan otomatis memperbarui di belakang layar, dan menampilkan pesan berhasil jika proses update telah berhasil dilakukan.
Yang masih menjadi PR untuk Extension MasinoCalendarScheduler18 ini adalah, bagaimana cara menghilangkan ketergantungan pada Javascript library Moment.js. Sampai saat ini saya masih belum menemukan cara untuk tidak menggunakan library tersebut.
Jika Anda berhasil menemukan caranya, tinggalkan komentar di bawah artikel ini ya.
18. Dynamic Permission untuk Export Data
Seperti yang kita ketahui selama ini, sampai dengan versi 2022, PHPMaker masih mendefinisikan fitur Export Data melalui level pengaturan di aplikasi PHPMaker. Itu artinya, fitur ini baru bisa dinikmati setelah kita men-generate ulang semua file script. Dengan kata lain, fitur Export Data ini masih bersifat statis dan belum bisa ditentukan hanya untuk Level Pengguna tertentu.
Untuk mengatasi keterbatasan tadi, makanya fitur Dynamic Permission untuk Export Data tersebut saya buat melalui Extension MasinoHeaderFooter18. 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.
Fitur yang terkait dengan Export Data ini adalah, untuk Export to Print atau Printer Friendly, maka output data yang ditampilkan murni menggunakan style yang sangat minim (tanpa warna dan style lain). Jenis hurufnya pun sudah dibuat khusus supaya mudah terbaca. Sayangnya, fitur ini belum mendukung object Reports di project PHPMaker.
19. 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.
Uniknya lagi, 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.
20. 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 2022, fitur Reset Kata Sandi baru mendukung satu parameter saja, yaitu Email.
21. Visitor Statistics
Fitur ini diimplementasikan melalui extension MasinoVisitorStatistics18. 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.
22. 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.
23. Highlight Parent-Menu di Bagian Top Navbar
Hal lain yang membuat tidak nyaman saat mengakses Aplikasi Web yang sudah di-generate oleh PHPMaker 2022 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.
24. 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 2022.
25. 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.
Sekedar untuk diketahui, PHPMaker hanya menangani Table column yang fixed untuk membuat judul kolom table tetap lengket di atas. Tapi sayangnya PHPMaker belum menangani kemungkinan jika jumlah Hak Akses ke sebelah kanan relatif banyak sehingga perlu menampilkan horizontal scroll di bagian bawah table.
Mungkin karena PHPMaker belum menyertakan Hak Akses Export Data (Print, Excel, Word, HTML, CSV, XML, PDF, Email) secara dinamis di halaman ini, makanya belum menangani kemungkinan horizontal scroll yang muncul di bagian bawah table.
Sementara di Masino Extensions, karena banyaknya jumlah jenis Hak Akses (Permissions) yang letaknya ke sebelah kanan dari kolom nama table-nya, pasti akan menimbulkan scroll di bawah table. Pengguna level Administrator dapat tetap nyaman saat memberikan ijin tertentu berdasarkan nama table dan nama ijinnya.
26. Empty Table Jika Tidak Ada Record di Halaman List
Sampai dengan versi 2022, 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 MasinoHeaderFooter18. 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.
27. 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.
28. Otomatis Mengingat Status Terakhir Sidebar
PHPMaker 2022 masih menggunakan jQuery untuk menampilkan status terakhir Sidebar, apakah collapsed atau expanded. Yang dimaksud status collapsed bawaan asli PHPMaker 2022 adalah Sidebar disembunyikan sama sekali. Jadi, masih belum mendukung Sidebar Mini.
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 profesional, bukan?
Dengan menggunakan Masino Extensions, di samping Sidebar Mini sudah didukung, juga bisa mengingat status terakhir Sidebar tanpa menggunakan jQuery. Melalui Extension MasinoHeaderFooter18, 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 profesional, karena efek perubahan status Sidebar tidak lagi kelihatan di sisi client.
29. Hitung Mundur Saat Akun Terkunci Ketika Login
Sampai dengan versi 2022, 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 tidak 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.
30. 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 MasinoHeaderFooter18. 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 2022.
Bedanya, untuk PHPMaker versi 2022, 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.
31. 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 2022. Gunakan sesuai kebutuhan. Jika tidak dibutuhkan, pastikan sudah menonaktifkan pilihan UseCustomDomainURL tadi.
32. 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 2022, 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.
33. Pilihan SweetAlert2 atau Boostrap Toast
Pada Extension MasinoHeaderFooter18 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 MasinoHeaderFooter18.
dev mengatakan
Pak ada kontaknya? saya cari di web tdk ada kontaknya ya?
Masino Sinaga mengatakan
Bisa via email saja ke masino[dot]sinaga[at]gmail[dot]com
muslih mengatakan
Gan mau tanya apakah phpmaker bisa ditambahkan range slider untuk inputan nyaa
Masino Sinaga mengatakan
Bisa.
Pakai fitur Custom Edit Tag.