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-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 di 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.
Penasaran fitur-fitur apa saja yang saya tambahkan di Masino Extensions untuk PHPMaker 2022?
1. Improvement 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.
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 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.
4. Local Google Fonts
Meskipun Masino Extensions untuk PHPMaker 2022 menggunakan AdminLTE3, bukan berarti jenis huruf yang digunakan masih menggunakan standar pengaturan bawaan PHPMaker. Di dalam Extension MasinoHeaderFooter18, saya menyediakan pengaturan FontFamily.
Tersedia 9 pilihan Google Font yang bisa Anda gunakan secara lokal. Itu artinya, Aplikasi Web tidak selalu harus terhubung ke Internet supaya dapat menggunakan kesembilan Google Font berikut: comfortaa, exo, montserrat, muli, opensans, poppins, quicksand, roboto, dan ubuntu.
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 akan semakin terlihat profesional dan nyaman digunakan jika fitur kita sediakan.
Fitur ini sangat bermanfaat jika kita tidak ingin menampilkan Panel Pencarian selalu dalam keadaan terbuka atau sebaliknya dalam keadaan tertutup terus-menerus. Kita 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
Fitur ini diimplementasikan melalui Extensions MasinoAutoNumeric18. 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 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 angka 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. Improve 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 Sweet Alert 2, 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 Sweet Alert 2 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) Sweet Alert 2 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 Sweet Alert 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 Sweet Alert 2.
Sedangkan Sweet Alert 2 di Masino Extensions untuk PHPMaker 2022, dapat mengoptimalkan keuntungan fitur-fitur cantik di Sweet Alert 2, menampilkan icon yang mewakili tipe pesannya, (information, alert, error, maupun confirmation). Selain itu, efek animasi saat dialog Sweet Alert 2 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 Sweet Alert 2. 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 Sweet Alert 2 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 Sweet Alert 2, 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 Sweet Alert 2 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. Breacrumb 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 Breacrumb 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.