Perasaan baru saja belajar PHPMaker 2021, eeeh, hari ini, Senin, 16 Agustus 2021, PHPMaker 2022 sudah dirilis, gaeeesss! Sambil menunggu email hasil purchase license PHPMaker 2022, ada baiknya nih kita review sekilas fitur-fitur di PHPMaker 2022.
PHPMaker 2022 is another huge upgrade from previous version, it includes a long list of new features. If you upgrade from v2021, there are no big changes.
Artinya, jika selama ini kita sudah menggunakan versi 2021, tidak ada perubahan besar. Syukurlah kalau begitu, ehm!
Salah satu fitur yang paling saya sukai adalah yang ini:
Remember folder of project file after opening a project (UI)
Artinya, PHPMaker 2022 dapat mengingat lokasi folder tempat file project yang terakhir dibuka. Selama ini, PHPMaker 2021 dan versi-versi sebelumnya hanya fokus ke folder projects saja, dan ini sangat menjengkelkan. Untunglah di versi 2022 ini sudah dibuat fleksibel. Mirip seperti kalau kita menggunakan Notepad++, yang dapat mengingat folder terakhir tempat file yang terakhir atau sedang kita buka.
Tapi tunggu dulu. Meskipun tidak terlalu ada perubahan besar, selalu saja ada fitur-fitur terbaru di versi terakhir.
Beberapa yang sudah saya lihat, adalah:
Bootstrap 5.1
PHPMaker 2022 resmi mulai menggunakan Bootstrap versi 5. Dimulai dari versi 5.1 yang dirilis saat ini.
– New Accordion component
– New Offcanvas component
– New File input
– Remove support for IE 11 and other older browsers, see Browsers and devices
– RTL (Right-To-Left)
Keren, yak… semakin up-to-date aja nih PHPMaker 2022!
Internationalization (i18n) by PHP and JavaScript
Fitur ini memungkinkan kita dapat menentukan pengaturan locale secara otomatis menggunakan extension native PHP Intl dan object JavaScript Intl. Selain itu, kita dapat memformat dan mem-parse angka ICU (International Components for Unicode), angka dengan mata uang, dan memformat tanggal dan jam.
Web Push Notifications
Ini fitur yang sering diminta pada Forum Diskusinya. Dengan fitur ini, tersedia opsi untuk mengijinkan Pengguna dengan level Anonymous menerima pemberitahuan (notifications). Kita juga dapat men-generate server public/private keys. Pengguna Akhir juga dapat mengaktifkan atau menonaktifkan notifications. Sedangkan user dengan level Administrators dapat mengirim notifications ke beberapa Pengguna tertentu, atau bahkan ke semua Pengguna yang sudah terdaftar di Aplikasi Web. Wow, keren, ya?
Two Factor Authentication (Google Authenticator)
Ini merupakan fitur keamanan yang lagi ngetren sekarang. Otentikasi Dua Faktor. Tersedia Opt in/out atau forced 2FA. Ada juga Backup codes. Pengguna dengan level Administrator dapat me-reset user secret.
Column Visibility
Fitur ini juga termasuk yang sering diminta di Forum Diskusi, karena dapat menampilkan/menyembunyikan kolom table di halaman List saat Aplikasi Web dijalankan.
Multi-Column List Page – Table/Cards Views
Fitur ini memungkinkan kita untuk menggunakan multi-column di halaman List. Jadi, tidak selalu menampilkan data dalam format tabel. Kita bisa membuat beberapa kolom di halaman List, sehingga data ditampilkan lebih eye-catching.
Yang digunakan adalah Multi-column cards oleh Bootstrap Cards. Responsive multi-column layout juga. Kemudian adanya peningkatan fitur opsi button di List, tersedia 4 posisi (atas/bawah-kiri/kanan). Yang lebih kerennya lagi, kita dapat berpindah mode antara regular table, table view, dan cards view menggunakan Ajax. Mendukung Custom Template di kedua tampilan. Juga mendukung class Bootstrap card-*.
Custom Template Card
Fitur ini memungkinkan kita menggunakan Custom Template untuk Cards di halaman List dengan tampilan Multi-Column.
Preview Field
Fitur ini memungkinkan untuk melihat atau mem-preview field sebagai baris di table yang dapat di-expand.
TEXT Edit Tag Input Type
Fitur ini memungkinkan kita untuk memilih tipe-tipe dari control input text boxes. Pilihan yang tersedia adalah: text, color, email, month, number, range, search, tel, url, dan week. Tersedia juga fitur validator untuk New URL.
RTL (Right-To-Left)
Fitur ini dapat mendeteksi bahasa yang menggunakan layout RTL berdasarkan ID bahasanya. PHPMaker 2022 juga dapat otomatis men-generate dan menggunakan RTL stylesheets yang bertalian.
Chart.js 3.5
– With chartjs-adapter-luxon, chartjs-plugin-annotation and chartjs-plugin-datalabels
– Support formatting by locale
– Option to show percentage in Pie/Doughnut charts
Table Header Filter
Fitur ini memungkinkan kita dapat menggunakan Excel filter style. Bisa juga berfungsi dengan field lainnya yang terdapat di dalam Extended Search. Tentu saja dengan fitur ini kita bisa mencari data di bagian atas field-nya. Kemudian fitur Pagination juga mengalami peningkatan, dengan disediakannya fitur Infinite Scrolling; fitur yang dibutuhkan dan lagi tren saat ini. Sedangkan untuk Dropdown positioning, menggunakan Popper.
Improved File Upload
Tampilan baru default upload file menggunakan dropzone, sehingga Aplikasi Web kita kelihatan menjadi lebih profesional. Tersedia juga pilihan untuk tetap menggunakan Bootstrap File input.
Improved Modal Lookup
Fitur Modal dialog juga mengalami peningkatan. Tersedian pagination dengan gaya Infinite Scrolling. Wow, keren! Kemudian fitur Lookup cache juga semakin disempurnakan. Semoga saja lebih baik dari versi sebelumnya. Dan yang terakhir, Modal dialog dapat digeser alias draggable.
Improved Date/Time Picker (Extension)
Fitur ini memungkinkan Date/Time Picker menggunakan Dropdown yang posisinya menggunakan Popper. Juga mendukung ICU date format. Otomatis menggunakan setting internasionalisasi oleh object native JavaScript Intl.
Improved Detail Preview (Extension for Registerd Users Only)
Fitur Detail Preview juga mengalami penyempurnaan. Tersedia opsi pengaturan pada level project. Detail table tabs juga dapat menggunakan style dropdowns. Mendukung preview baris di tabel dengan teknis expand, Bootstrap Modal, Popover, atau Offcanvas. Semakin keren aja, nih!
Leaflet (Custom View Tag for Registerd Users Only)
Ini Custom View Tag untuk pengguna yang secara resmi membeli PHPMaker. Tersedia OpenStreetMap (OSM). Mapbox (requires Mapbox access token). Marker clustering, dan juga Geocoding.
npm Packages
PHPMaker 2022 dapat mencari npm packages dari npmjs.com di dalam antarmukanya. Juga dapat men-generate package.json untuk project. Memungkinkan untuk menjalankan npm install setelah proses generate.
Template and Extensions as npm Packages
Nah, kalau yang ini, artinya sejak PHPMaker 2022, Template dan Extensions akan diperlakukan sebagai npm Packages. Harus belajar ilmu baru lagi nih, hehehe… karena Masino Extensions juga harus diperbarui supaya kompatibel dengan PHPMaker 2022.
Auto-Focus
Fitur ini memungkinkan untuk focus pada field pertama di halaman yang telah selesai dimuat secara penuh. Juga dapat focus pada field yang pertama mengalami error setelah validasi yang dilakukan di sisi server. Keren juga nih.
Improved AutoSuggest
Fitur ini menyempurnakan AutoSuggest yang dapat menggunakan pagination dengan style Infinite Scrolling. Juga sudah menangani lebih baik lagi cache pada field yang menggunakan Lookup ke table lain. Dropdown positioning by Popper, dan mendukung RTL (Right-To-Left).
Dan masih banyak lagi, hehehe … π
Selengkapnya, langsung saja deh baca-baca di sini ya: https://phpmaker.dev/docs/#/phpmaker2022.html.
Serbuuuuuuuu!!! π
Iyus mengatakan
Bang, mau tanya. Apa ada cara untuk buat menu saat aplikasi sudah di generate? Selama ini sy membuat menu, setelah itu di generate
Masino Sinaga mengatakan
Tentu ada. Bisa pakai server event Menu_Rendering.
Silahkan baca topik Server Events and Client Scripts dari menu Help PHPMaker untuk info dan contoh lebih lanjut.
iyus mengatakan
Terimakasih bang. PhpMaker 2022 makin keren. Banyak fitur canggih. cardview, ada image user di sidebar, untuk map juga bisa.
Masino Sinaga mengatakan
Siip. Sama-sama kang iyus.
Batsaikhan mengatakan
Hello,
When will your extensions start uploading here?
Masino Sinaga mengatakan
It will be released by the end of September 2021.
mhfuj mengatakan
Halo pak masino, saya mau tanya
saya ada kendala ingin AutoUpdateNama
saya sudah membaca artikel ini:
http://www.masinosinaga.com/phpmaker/mudahnya-menambahkan-global-function-untuk-auto-update-field-di-phpmaker/
namun kendala saya ada di code nya,kira kira bagaimana ya codenya pak
Salam hormat, Terimakasih
Masino Sinaga mengatakan
Lha, justru saya yang harus balik bertanya kepada Anda. Function seperti apa yang Anda ingin ditampilkan output-nya? π
Mhfuj mengatakan
Function nya memunculkan nama usernya bukan usernamenya
Masino Sinaga mengatakan
Tinggal bikin aja di Global Code di bawah Server Events. Gunakan fungsi global yang sudah disediakan oleh PHPMaker, yaitu ExecuteScalar.
Baca sub-topik Some Global Functions di bawah topik Server Events and Client Scripts dari menu Help PHPMaker, untuk info dan contoh lebih lanjut.
Ryan Andrian mengatakan
Bang Masimo, sy baru kenalan sama PHPMaker 2021.
Mohon pencerahannya….
Jika saya ingin membuat aplikasi, dimana penjualan.
Ada transaksi Sales Order (Table Header Detail).
lalu pada saat mau membuat Delivery Order, dengan cara memilih SO yang belum dibuat DO nya, lalu otomatis detailnya terisi dengan detail SO yang dipilih (tapi tidak ada kolom harganya).
Apakah bisa di PHPMaker dengan memanfaatkan database driver generator (tanpa extention) ?
Terima kasih sebelumnya…..
Masino Sinaga mengatakan
Seharusnya bisa, tapi effort-nya cukup besar.
Ryan Andrian mengatakan
Kalau saya join di ILovePHPMaker apa bisa di support sama bang Masimo?
Masino Sinaga mengatakan
Bisa.
pandanwangiii mengatakan
Pengen join juga dong, Bang, tapi saya ngga punya akun PayPal, apa ada cara lain biar bisa join?
Masino Sinaga mengatakan
Bisa transfer lewat Bank BCA.
Pandanwangiii mengatakan
Detailnya gimana kalo transfer lewat BCA pak? Boleh dikirim detailnya ke grammatophylumlacerata@gmail.com pak?
Masino Sinaga mengatakan
Oke, nanti kalau Masino Extensions untuk PHPMaker 2022 sudah dirilis, akan saya infokan sekalian ya.
Pandanwangiii mengatakan
Boleh sih Pak, tapi saya masih pake yg versi 2021.0.15 sih Pak hehehe.
Aldi Dwi Ferdian mengatakan
Mas Masino Izin Bertanya di luar topik, cara membuat filter berdasarkan tanggal, dari tanggal sekian atau sekian gmna ya? atau bisa diberikan referensinya? Terimakasih atas jawabannya
Masino Sinaga mengatakan
Dari bagian Fields setup, pilih BETWEEN dari Advanced Search Page -> Operator, lalu generate ulang semua file script seperti biasa.
Aldi Dwi Ferdian mengatakan
Kalau untuk penggunaan filter di bagian Table > General > Filter itu cara penggunaan dan fungsinya gmna ya om? apakah ada contoh artikel atau referensinya?
Masino Sinaga mengatakan
Contoh penggunaannya sudah ditampilkan saat kita mengklik bagian Filter tersebut. Filter haruslah merupakan string yang valid dan diapit dengan tanda petik ganda, dan string tersebut harus dapat digabungkan (concatenated) ke dalam string SQL.
Contoh:
Dermawan Adji Saputra mengatakan
Apa ilovephpmaker akan segera rilis untuk PHPMaker versi 2022.1 Mas?
Masino Sinaga mengatakan
Masino Extensions for PHPMaker 2022 akan dirilis akhir bulan September 2021 ini.
Radit mengatakan
Ijin bertanya mas, saya berniat beli extension buatan mas masino, nah yg saya mau tau apakah berlaku sekali beli untuk dipakai seumur hidup, ataukah hanya berlaku setahun pemakaian ? saya pernah sekilas baca cuman bahasa inggris jadi agak bias saya menafsirkannya
Masino Sinaga mengatakan
Pemakaian Masino Extensions berlaku seumur hidup mas, dan bebas untuk berapapun jumlah project yang dibuat dengan PHPMaker.
Yang berlaku setahun itu maksudnya untuk memperoleh versi terakhir. Jika sudah lewat setahun dan membership-nya tidak diperpanjang, maka tidak dapat lagi download versi yang terbaru saat itu jika tersedia. Kira-kira begitu.
luthfi mengatakan
siang pak masino, saya sedang migrasi dari phpmaker 2020 to 2022 yang jadi problemnya adalah bagaimana cara menjalankan php2021 di hosting saya udah mencobanya tapi selalu terkendala di phpfn.php nya pak yang pesan errornya kurang lebih begini : “Uncaught Error: Class ‘ResourceBundle’ not found in /var/www/html/memberkoperasi2/src/phpfn.php:5611 Stack trace: #0 “
Masino Sinaga mengatakan
Mungkin topik Uncaught Error: Class “ResourceBundle” not found berikut bisa membantu.
Jika problem masih berlanjut, Anda bisa menanyakannya ke Forum Diskusi PHPMaker tersebut.
Pandanwangiii mengatakan
Pak, mau tanya, saya ada kasus kayak gini, misal kita copy data (master/detail copy), setelah berhasil copy data, data yg sebelumnya dikurangi dengan data yg baru?
Struktur tabelnya gini.
id, nama_barang, jumlah
Contoh kasus:
id = 1, nama_barang = A, jumlah = 100
id = 2, nama_barang = A, jumlah = 30
Setelah dicopy, id = 1, jumlahnya jadi 70.
Pake server event apa dan gimana logikanya pak? Terimakasih sebelumnya.
Masino Sinaga mengatakan
Pakai server event Row_Inserted. Logikanya? Ya langsung dicoba saja.
luthfi mengatakan
selamat sore pak masino saya mau bertanya saya mencoba phpmaker2022 disana saya ada problem dimana saya kalo menggunakan server event,clientscript ketika saya mengubah satu tabel dan pindah ke tabel salin tulisan yang saya tulis hilang dan setiap digeneret mesti hilang padahal saya udah save, cari documentasi atau problem yang sama ngg nemu ya pak?
Masino Sinaga mengatakan
Coba sebelum pindah ke table lain, project-nya di-save dulu. Lalu amati apakah kode di table sebelumnya masih ada atau hilang.
ish mengatakan
Maaf bang Masino, mau bertanya mungkin diluar topik, saya mau bergabung di ilovephpmaker..
Pertanyaannya adalah:
1. Bagaimana caranya menampilkan “ExportOptions” di bawah tabel “list” setelah Search (saya menggunakan Extended search)
2. Bisakah setelah hasil “Search” saya pilih, kemudian dengan meng- “add new button” misalnya “Send request”
setelah pengguna mengklik Send Request ini data akan tersimpan ke tabel Order (tabel lain).
3. Bisakah phpmaker meghandle hal tersebut ?… Saya sangat menuggu jawaban abang. Terimakasih
Masino Sinaga mengatakan
1. Aktifkan saja pengaturan Export dari menu PHP di project PHPMaker-nya, lalu generate ulang semua file script. Jika ada data yang muncul di table pada halaman List, otomatis ExportOptions tersebut akan muncul.
2. Jika yang Anda maksud untuk melakukan “Send request” tadi untuk meng-update data yang terpilih di table pada halaman List, Anda bisa menggunakan server event Page_Load dan Row_CustomAction. Baca topik Server Events and Client Scripts dari menu Help PHPMaker.
3. Bukan PHPMaker namanya kalau tidak bisa, hehehe…
ish mengatakan
maksud saya pak, ew-export-option (group button nya) yang di pindahkan ke bawah “Result ” tabel list. seperti gambar ini || https://prnt.sc/1umqihl
Masino Sinaga mengatakan
Anda bisa menggunakan kode jQuery untuk memindahkan satu elemen ke posisi yang diinginkan. Letakkan kode tersebut di bagian Startup Script dari halaman List.
Google jquery move element untuk contoh-contoh kode lebih lanjut.
luthfi mengatakan
siang pak masino π
saya ada kendala di mana saya buat applikasi admin dan client yang terjadi adalah saya mengubah password client lewat aplikasi admin dengan asumsi has pasword yang berada di aplikasi client bisa terbaca dan bisa masuk ke dalam aplikasi client namu tidak bisa sama sekali, btw saya buat aplikasi admin dan client tidak di clone melainkan buat masing-masing diphpmaker, dan untuk melakukan ubah pasword client di aplikasi admin saya melakukanya di server event row_inserting(), adapun codenya $rsnew[‘password’]=EncryptPassword($rsnew[‘password’]); seperti itu, apakah ada solusinya..?
Masino Sinaga mengatakan
Sebaiknya menggunakan fitur Reset Password saja, supaya End-User nya bisa langsung reset sendiri password-nya. Hindari mengubah password dari aplikasi admin.
luthfi mengatakan
Baik pak Terimakasih Pak Saranya, Saya Akan Coba
andres mengatakan
Hola instale la nueva versiΓ³n y al generar los archivos, al finalizar me sale un error
Error: Command failed: composer update -n –ignore-platform-req php
at checkExecSyncError (node:child_process:826:11)
at execSync (node:child_process:900:15)
at global.Exec (C:\Users\…………\AppData\Roaming\PHPMaker2022\node_modules\@phpmaker\core\phpmaker.js:8:260937)
at global.RunComposerUpdate (C:\Users\………\AppData\Roaming\PHPMaker2022\node_modules\@phpmaker\core\phpmaker.js:8:266429)
at C:\Users\……….\AppData\Roaming\PHPMaker2022\node_modules\@phpmaker\core\phpmaker.js:8:271977
at {
status: 2,
signal: null,
output: [ null, null, null ],
pid: 9612,
stdout: null,
stderr: null
}
Error(s) occurred. Compilation of .scss files skipped.
Generation completed with error(s), please scroll up (if necessary) to check error(s) highlighted in red.
soy nuevo y la vedad que no se como repararlo
Gracias por la ayuda
Masino Sinaga mengatakan
Please select another theme from [HTML] -> [Theme], after that re-generate ALL the script files again.
Dalas mengatakan
Pak masino mau bertany, bagaimana kita hosting project yang sudah dibuat pada phpmaker 2022
Sedangkan file cfwg nya sudah tidak ada ? Dimana letak mengganti Koneksinya ?
Terima Kasih
Masino Sinaga mengatakan
Ada 3 file terkait config di sub direktori src, silahkan dicek dan dipelajari.
Eka dalas pangestu mengatakan
Pak masino bagaimana ya caranya hosting online server web yang sudah dikerjakan pada phpmaker 2022
Masino Sinaga mengatakan
Pastikan hostingnya menggunakan PHP versi >= 7.4. Pastikan juga hostingnya sudah mendukung penggunaan URL Rewrite.
Tedi mengatakan
Selamat siang bang marsino , mau tanya mengenai reset nomor urut , kalau ada data yang di hapus apakah bisa nomor yang di hapus , maka data yang di bawah nya memiliki nomor urut yang di hapus. Misal saya ada data dengan struktur sbb :
No.
Nama.
Kehadiran
Kelas
Nah yang jadi masalah , setiap saya hapus 1 baris data , nomor urut yang di bawah nya tidak berubah,
Misal saya hapus data No. 6 , nah data di no. 7 penomoran nya tetap no. 7 tidak menjadi no. 6
mudah2an bisa dipahami bang pertanyaan saya hehe…. makasih banyak bang.
Masino Sinaga mengatakan
Memang seharusnya seperti itu. Jika data nomor urutnya tersimpan di database, maka nomor urut tidak boleh berubah. Jika nomor yang di bawahnya berubah, itu bisa mengacaukan sistem jika record tersebut memiliki relasi dengan table lainnya.