Masino Sinaga View RSS

Web Development and PHPMaker
Hide details



Hati-Hati Menggunakan Beberapa Method Terkait Message Berikut di PHPMaker 2025 16 Feb 5:18 PM (last month)

Di setiap versi major terbarunya, PHPMaker selalu melakukan perbaikan sekaligus improvisasi terhadap beberapa fitur yang sering digunakan. Salah satunya adalah fitur pesan atau Message yang ditampilkan di layar pengguna.

Jika di versi 2024 dan sebelumnya kita bisa menggunakan method setMessage beberapa kali untuk mengeset dan menampilkan beberapa pesan sekaligus, maka di versi 2025 hal itu tidak berlaku lagi. Artinya, di versi 2025 kita harus berhati-hati menggunakannya.

Mengapa? Karena di versi 2025, Message yang diset terakhirlah yang hanya akan ditampilkan. Supaya tidak bingung, perhatikan contoh berikut.

$this->setMessage("Ini pesan pertama");
$this->setMessage("Ini pesan kedua");
$this->setMessage("Lalu ini yang ketiga");

Seperti yang kalian lihat, tiga baris kode di atas artinya akan menampilkan Message atau pesan sebanyak 3 kali. Pada PHPMaker versi 2024 dan sebelumnya, maka ketiga pesan tersebut akan ditampilkan semuanya dalam satu kotak dialog. Bisa melalui Bootstrap Toast Message atau langsung melekat di atas halaman.

Nah, di PHPMaker versi 2025, maka hanya pesan yang ketigalah yang ditampilkan. Pesan pertama dan kedua akan diabaikan. Itu artinya, method setMessage di versi 2025 akan menimpa pesan-pesan sebelumnya (jika ada). Pertanyaannya, bagaimana mengatasi hal tersebut?

Gampang sekali. Cukup dengan mengubah kode di atas menjadi seperti ini:

$this->setMessage("Ini pesan pertama");
$this->addMessage("Ini pesan kedua");
$this->addMessage("Lalu ini yang ketiga");

Itu artinya, jika kita ingin menambahkan pesan kedua dan seterusnya, maka pastikan menggunakan method addMessage. Sedangkan pesan yang ditampilkan pertama kali, maka wajib menggunakan method setMessage.

Hal yang sama berlaku juga untuk method setSuccessMessage, setWarningMessage, dan setFailureMessage.

$this->setSuccessMessage("Ini pesan sukses pertama");
$this->addSuccessMessage("Ini pesan sukses kedua");
$this->addSuccessMessage("Lalu ini sukses yang ketiga");
$this->setWarningMessage("Ini pesan warning pertama");
$this->addWarningMessage("Ini pesan warning kedua");
$this->addWarningMessage("Lalu ini warning yang ketiga");
$this->setFailureMessage("Ini pesan failure pertama");
$this->addFailureMessage("Ini pesan failure kedua");
$this->addFailureMessage("Lalu ini failure yang ketiga");

Dari beberapa contoh di atas, fungsi dari setiap nama-nama method di atas menjadi lebih masuk akal, dibandingkan dengan method di versi 2024 dan versi-versi sebelumnya menjadi sudah tidak relevan lagi.

Kesimpulannya, berusahalah untuk selalu menggunakan PHPMaker versi major yang terakhir, karena selalu ada perbaikan dan improvisasi di sana. Pengalaman dalam mengembangkan aplikasi web pun bisa menjadi jauh lebih menyenangkan lagi.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Custom Template Code + Masino Extensions for PHPMaker 2025 13 Jan 2:42 AM (2 months ago)

Selamat buat kalian yang sudah menjadi member aktif di ILovePHPMaker.com, mulai hari ini sudah bisa mendapatkan beberapa file .xml berisi code Custom Template seperti yang Penulis uraikan pada artikel sebelumnya berjudul Generate Two Column Layout dalam Satu Detik dengan PHPMaker 2025.

Setelah melalui pertimbangan yang matang, Penulis memutuskan untuk memberikan secara cuma-cuma file-file .xml berisi kode Custom Template untuk men-generate Two Column Layout untuk halaman Add, Edit, View, Search, dan Extended Search, serta Master Record di halaman Master/Detail List, dengan satu syarat saja: sudah terdaftar sebagai member yang aktif di situs ILovePHPMaker.com.

Jadi, bisa dikatakan file-file .xml berisi kode untuk men-generate Two Column Layout melalui fitur Custom Template di PHPMaker 2025 sebagai bonus, karena sudah menggunakan Masino Extensions untuk PHPMaker 2025. Mengapa? Karena file-file .xml tersebut sengaja Penulis masukkan ke dalam file project Demo I Love PHPMaker, sekaligus untuk memudahkan mengetest-nya melalui project tadi.

Dibutuhkan waktu sekitar 25 hari sejak Penulis mencoba mengutak-atik kode Custom Template bawaan asli PHPMaker 2025, menjadi beberapa file .xml yang bisa dipilih oleh Web Developer dari dalam project PHPMaker 2025 untuk men-generate kode Two Column Layout.

Selama kurang lebih 25 hari tersebut, ada begitu banyak tantangan sekaligus pengalaman yang sangat berharga dalam mengeksplorasi fitur Custom Template, khususnya untuk PHPMaker 2025, versi terakhir saat ini. Tapi justru di situlah asyiknya menggunakan PHPMaker ini.

Hanya dari beberapa baris kode dan logic dasar yang disediakan oleh PHPMaker, akhirnya Penulis bisa kembangkan untuk menghasilkan Two Column Layout. Yang tadinya tidak mendukung Multi-Page, maka sekarang sudah mendukung Multi-Page.

Pertama, diawali dari Penulis melakukan improvisasi terhadap file-file .xml bawaan asli PHPMaker 2025 untuk men-generate Two Column Layout, agar dapat berfungsi sebagaimana mestinya, khususnya saat ditampilkan di perangkat dengan layar sempit seperti Mobile Phone atau Tablet, sehingga tetap mobile-friendly.

Kedua, selanjutnya Penulis menyediakan dua jenis direction (arah) layout, apakah ingin Top-Down atau Zig-Zag ke dalam file .xml yang terpisah. Kedua direction ini wajib disediakan, karena tidak semua mau menerapkan salah satunya saja, tergantung kondisi masing-masing. Mengenai kedua direction ini bisa kalian baca melalui artikel yang Penulis infokan pada alinea pertama di atas.

Ketiga, Penulis berhasil mengakomodir dua kebutuhan utama dalam mengimplementasikan Two Column Layout tadi, baik di table yang tidak menerapkan Multi-Page (Single Page), maupun di table yang menerapkan Multi-Page. Masing-masing dikombinasikan juga dengan kedua direction di atas, apakah Top-Down atau Zig-Zag.

Keempat, khusus untuk Multi-Page, ada dua kemungkinan yang Penulis tangani. Kemungkinan Pertama, jika ada field yang memiliki nilai 0 (nol) pada setting Page No. di bawah Fields setup -> General. Kemungkinan Kedua, jika tidak ada field yang memiliki nilai 0 pada setting tersebut. Nah, masing-masing kondisi tersebut memiliki karakteristik layout yang berbeda dan harus bisa ditangani oleh Custom Template yang Penulis buat.

Kelima, Penulis berhasil mengimplementasikan logic dasar untuk membagi dua bagian besar field-field yang akan dikelola, dimana jika jumlah field ganjil, maka jumlah field di sisi kiri harus lebih besar + 1 dibandingkan dengan jumlah field yang berada di sisi kanan.

Keenam, Penulis memisahkan logic antara halaman Add, Edit, View, dengan halaman Search dan List yang memiliki Extended Search. Artinya, untuk halaman Search dan Extended Search, tidak bisa mengimplementasikan layout yang persis sama dengan halaman Add, Edit dan View. Mengapa? Karena di halaman Search dan Extended Search tadi pasti memiliki elemen search operator yang harus menjadi satu kesatuan utuh yang tidak bisa dipisahkan antara kolom yang menampilkan label, dan kolom yang menampilkan data.

Ketujuh, semua poin-poin di atas tadi Penulis kembangkan, cukup dari kode Custom Template sederhana berikut yang sudah disediakan oleh PHPMaker 2025 seperti di bawah ini:

<div class="container">
    <div class="row row-cols-<#= fieldsPerRow #>">
    <# for (let f of fields) { #>
        <div id="r_<#= f.FldParm #>" class="col">
            <div class="row">
                <label for="<#= f.FldVar #>" class="col-sm-3 col-form-label">{{{caption <#= f.FldParm #>}}}</label>
                <div class="col-sm-9">{{{value <#= f.FldParm #>}}}</div>
            </div>
        </div>
    <# } #>
    </div>
</div>

Di balik kode sederhana tersebut, terdapat potensi besar yang akhirnya bisa Penulis kembangkan, sehingga dapat menghasilkan Two Column Layout yang sesuai dengan kebutuhan.

Sekarang kalian tidak perlu pusing-pusing memikirkan bagaimana caranya semua di atas tadi Penulis lakukan. Cukup gunakan file-file .xml berisi kode Custom Template tadi, yang dapat men-generate Two Column Layout, melalui antarmuka aplikasi PHPMaker 2025 dalam hitungan satu detik saja!

O iya, hanya ada satu keterbatasan (limitation), dan sangat penting untuk diketahui!

Sebelum menerapkan Two Column Layout untuk tabel-table yang mengaktifkan Multi-Page, maka pastikan semua field sudah disusun mulai dari urutan nomor paling rendah di bagian atas, sampai dengan field-field dengan urutan nomor halaman paling besar berada di bagian bawah, dari bagian Fields setup project PHPMaker 2025.

Mengapa? Karena logic kodenya menggunakan basis kode di atas, dengan cara melakukan looping mulai dari field pertama sampai terakhir di bagian Fields setup dari project PHPMaker 2025. Itu artinya, jika nomor halaman tidak urut, maka hasilnya menjadi tidak sesuai dengan yang diharapkan.

See? Betapa fleksibel dan powerful-nya PHPMaker 2025 kita gunakan sebagai tools Web Development yang bisa memangkas waktu development sampai 80 – 90%. Setelah Masino Extensions, sekarang ditambah lagi bonus untuk men-generate kode Custom Template untuk menghasilkan Two Column Layout pada form atau halaman tertentu.

Selebihnya, kita cukup fokus untuk mengimplementasikan business-logic di kisaran 20 – 10% saja. Coba bayangkan itu! Tidak menyesal rasanya menggunakan PHPMaker, apalagi di setiap versi terakhirnya yang semakin canggih.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Generate Two Column Layout dalam Satu Detik dengan PHPMaker 2025 31 Dec 2024 5:58 AM (3 months ago)

Berawal dari topik Custom Template – Two Column Add Page (v2025) yang Penulis buat di Forum Diskusi PHPMaker, ada satu permintaan agar code yang Penulis modifikasi di topik tersebut bisa juga untuk Multi-Page. Hmmm, tantangan yang cukup menarik!

Akhirnya tantangan tersebut bisa dipenuhi, dengan menghasilkan beberapa code dalam file .xml baru, yang dapat dipilih dari fitur Code Repository dalam project PHPMaker 2025. Fitur generate code Custom Template pada table yang memiliki fitur Multi-Page pun sudah bisa.

Daripada menulis code dari awal, sekarang kita sudah dapat membangkitkan code Custom Template dengan memilih Code Repository. Hanya sekali klik saja, maka code untuk Custom Template dengan Two Column Layout dibangkitkan hanya dalam satu detik! Keren, kan?

Ketika kita membahas Two Column Layout, maka ada dua kemungkinan arah yang akan kita dapatkan, ketika end-users sedang memindahkan kursor mouse dari satu control ke control berikutnya dalam sebuah form atau halaman. Pertama arah Zig-Zag, dan yang kedua arah Top-Down.

Kedua kemungkinan arah tersebut akhirnya harus dipisahkan masing-masing ke dalam dua file .xml. Akhiran angka 2 pada nama file menunjukkan arah Zig-Zag, sedangkan akhiran angka 3 pada nama file menunjukkan arah Top-Down. Beberapa file .xml tersebut adalah:

  1. addpage2.xml: Two Column Layout for Add Page (Zig-Zag Direction)
  2. addpage3.xml: Two Column Layout for Add Page (Top-Down Direction)
  3. editpage2.xml: Two Column Layout for Edit Page (Zig-Zag Direction)
  4. editpage3.xml: Two Column Layout for Edit Page (Top-Down Direction)
  5. masterpage2.xml: Two Column Layout for Master Page (Zig-Zag Direction)
  6. masterpage3.xml: Two Column Layout for Master Page (Top-Down Direction)
  7. searchpage2.xml: Two Column Layout for Search Page (Zig-Zag Direction)
  8. searchpage3.xml: Two Column Layout for Search Page (Top-Down Direction)
  9. tablesearchpage2.xml: Two Column Layout for Extended Search in List Page (Zig-Zag Direction)
  10. tablesearchpage3.xml: Two Column Layout for Extended Search in List Page (Top-Down Direction)
  11. viewpage2.xml: Two Column Layout for View Page (Zig-Zag Direction)
  12. viewpage3.xml: Two Column Layout for View Page (Top-Down Direction)

Kita bisa mengimplementasikannya dengan sangat mudah di halaman Add, Edit, View, Search, maupun bagian Master dari halaman Master/Detail. Demikian juga di bagian Extended Search yang berada di bagian atas dari halaman List.

Itu artinya, sekarang Penulis dengan mudah dapat men-generate code Custom Template untuk mengubah layout form 1 kolom yang secara default dibangkitkan oleh PHPMaker 2025, menjadi 2 kolom, atau sering disebut dengan Two Column Layout.

Nah, sebagai bonus, Penulis juga sempat bereksperimen untuk menambahkan Custom Template yang mengubah tampilan tabel di halaman List yang aslinya memiliki border, menjadi tidak menggunakan border (borderless):

  1. tableheader2.xml: Borderless table header (List page)
  2. tablebody2.xml: Borderless table body (List page)
  3. tablefooter2.xml: Borderless table footer (List page)

Kembali ke topik Two Column Layout… buat yang masih bingung apa yang dimaksud dengan Zig-Zag, dan apa yang dimaksud dengan Top-Down, maka berikut ini penjelasannya.

Zig-Zag artinya arah pergerakan berasal dari control di sisi kiri berpindah ke control berikutnya pada baris yang sama di sebelah kanan, kemudian berpindah ke control berikutnya di sisi kiri pada baris berikutnya, lalu pindah lagi ke control berikutnya di sisi kanan pada baris yang sama, dan demikianlah seterusnya berakhir sampai ke control terakhir di sisi kanan.

Top-Down artinya arah pergerakan berasal dari control di sisi kiri lalu berpindah ke control tepat di bawahnya yang masih di sisi kiri juga, dan seterusnya sampai control pada baris terakhir di sisi kiri, kemudian berpindah ke atas pada sisi kanan di baris pertama, dan setelah itu berpindah lagi ke control berikutnya di baris kedua masih di sisi kanan, demikian seterusnya sampai control baris terakhir di sisi kanan juga.

Supaya lebih jelas dan ada gambaran, perhatikan layout form sederhana di bawah ini:

A …. F
B …. G
C …. H
D …. I
E ….

Seperti yang kalian lihat, ada 5 field di sisi kiri (A, B, C, D, dan E), dan 4 fields di sisi kanan (F, G, H, dan I).

Zig-Zag: A -> F -> B -> G -> C -> H -> D -> I -> E
Top-Down: A -> B -> C -> D -> E -> F -> G -> H -> I

Nah, munculnya ide untuk bisa mengakomodir dua arah pergerakan cursor mouse tersebut setelah Penulis meminta feedback di Forum Diskusi PHPMaker melalui topik Cursor Movement Direction in 2 Column Form.

Ingin lihat demo dari hasil generate aplikasi webnya? Silahkan klik di sini.

Ingin lihat demo video saat generate code Custom Template-nya? Tonton video berikut:

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

Masino Extensions untuk PHPMaker 2025 Sudah Dirilis 16 Nov 2024 9:04 PM (4 months ago)

Setelah kurang lebih satu bulan sejak PHPMaker 2025 dirilis, akhirnya Masino Extensions for PHPMaker 2025 pun dirilis juga. Sejak kemarin, Sabtu, 16 November 2024 sampai dengan hari ini, Minggu, 17 November 2024, Penulis lumayan sibuk memastikan Masino Extensions untuk PHPMaker 2025 siap digunakan, termasuk juga dengan Project Demo dan Project Starter Kit-nya yang merupakan satu kesatuan yang tidak terpisahkan.

Maaf jika terlambat beberapa hari dari rencana semula 11 November 2024, karena masih ditemukan beberapa kekurangan di sana-sini. Selain itu, beberapa project juga harus dikerjakan oleh Penulis secara bersamaan, sehingga cukup menyita perhatian, waktu, dan tenaga.

Secara umum, Masino Extensions untuk PHPMaker 2025 ini tidak terlalu jauh berbeda fitur-fiturnya dengan Masino Extensions untuk PHPMaker 2024. Perbedaan yang sangat signifikan hanya coding pada file-file template yang digunakan oleh PHPMaker 2025 dan PHPMaker 2024.

Seperti yang kita ketahui bahwa sejak versi 2025 ini, PHPMaker mengubah total style pemrograman di dalam file-file Class termasuk fungsi-fungsi globalnya dengan menerapkan PHP Strong Typed. Itu artinya, jika di versi sebelumnya kita tidak jelas mendefinisikan suatu variabel itu tipe apa sejak awal, maka di versi 2025 ini PHPMaker sudah mendefinisikan dengan tegas type-type variable dan keluaran dari fungsi-fungsi globalnya.

Sepertinya Author PHPMaker sudah mulai mempersiapkan agar minimal support PHP versi 8.2. Jadi, sejak PHPMaker 2025, tidak mendukung lagi PHP versi < 8.2. Bahkan sangat disarankan untuk menggunakan PHP 8.3 ke atas.

Dengan dirilisnya Masino Extensions untuk PHPMaker 2025, semakin membuktikan lagi bahwa Penulis tidak mau juga ketinggalan dengan teknologi terakhir yang senantiasa digunakan PHPMaker. Kunci utama always up-to-date harus jadi pedoman, supaya Web Developer bisa fokus mengimplementasikan business-project menggunakan teknologi terakhir juga.

O iya, buat kalian yang belum mengetahui apa itu Masino Extensions for PHPMaker, seperti namanya, ini adalah Extensions atau semacam fitur-fitur baru yang belum didukung di dalam fitur bawaan asli PHPMaker, sehingga aplikasi web yang dihasilkan oleh PHPMaker dapat memiliki fitur-fitur baru tadi tanpa harus repot-repot mengubah file template yang digunakan oleh PHPMaker.

Penulis tidak akan mengulang-ulang lagi fitur-fitur apa saja yang terdapat di Masino Extensions, karena sudah beberapa kali dibahas di artikel-artikel sebelumnya. Salah satunya adalah artikel yang berjudul Fitur-Fitur Masino Extensions untuk PHPMaker 2024.

Daripada mengurusi hal-hal teknis yang sebenarnya bisa ditangani oleh Masino Extensions, maka Anda sebagai Web Developer menjadi lebih fokus lagi untuk mengeksplorasi fitur-fitur di PHPMaker 2025, dimana Masino Extensions juga selalu dibuat untuk dapat selalu mengikuti teknologi terbaru yang digunakan di setiap versi major terakhir PHPMaker.

Salah satu fitur yang sangat Penulis sukai di PHPMaker 2025 adalah Impersonating User. Fitur ini memungkinan Administrator dapat berpindah antar akun Pengguna, tanpa harus logout lalu login kembali secara manul lewat halaman Login.

Yang menariknya lagi adalah, fitur Impersonating User ini tidak akan bentrok dengan akun yang sedang digunakan oleh Pengguna yang sebenarnya. Jadi, kita sebagai Web Developer dapat berperan secara langsung tanpa harus khawatir bentrok dengan akun Pengguna yang sedang digunakan.

Tidak terbayang repotnya jika fitur ini tidak ada, maka di beberapa project Web Development yang Penulis kerjakan, dimana ada begitu banyak User dan User Level yang didaftarkan, maka Administrator akan dipaksa untuk membuat fake account untuk mencoba berperan di setiap User Level tadi, apalagi jika ingin me-reproduce issue yang tiba-tiba muncul.

Fitur Impersonating User ini sudah lama Penulis nantikan. Termasuk juga dinanti-nantikan oleh banyak Web Developer lainnya, karena sangat terasa sekali membantu tugas-tugas Web Developer untuk dapat segera memberikan solusi jika misalnya ditemukan error yang dialami oleh Pengguna dengan User Level tertentu.

Jadi, tidak ada lagi alasan untuk tidak move forward menggunakan Masino Extensions untuk PHPMaker 2025. Rugi rasanya jika tidak menikmati fitur-fitur canggih di PHPMaker 2025 ini. Jangan lupa, kunjungi juga Demo Live-nya.

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?

PHPMaker 2025 Semakin Canggih 12 Oct 2024 8:38 AM (5 months ago)

Hari ini, Sabtu, 12 Oktober 2024, buka website phpmaker.dev dan langsung lihat info PHPMaker 2025 dirilis.

Apa yang terbaru di PHPMaker 2025? Lihat What’s New in PHPMaker 2025.

Hal penting selanjutnya yang perlu diketahui? Lihat Migrating to v2025.

Dari sisi tampilan antar muka, sama sekali tidak mengalami perubahan. Masih seperti versi 2024, PHPMaker 2025 masih menggunakan AdminLTE 3.2.0 dan Bootstrap 5.3.2.

Sepertinya PHPMaker 2025 lebih fokus kepada fitur Security, seperti meningkatkan Two Factor Authentication, meningkatkan Advanced Security-nya, Access Control by Roles, Password Migration, meningkatkan Login Attempts Tracking, meningkatkan LDAP Authentication, Link untuk Login tanpa menyertakan Password, dan Content Security Policy.

Selain itu, di PHPMaker 2025 juga menambahkan fitur baru yaitu Impersonating User, yang artinya kita sebagai admin dapat berpindah akun dengan sangat mudah tanpa harus logout lalu login menggunakan user tertentu, saat mengakses aplikasi web yang sudah dibangkitkan oleh PHPMaker. Hal ini sangat berguna jika misalnya kita ingin me-reproduce isu yang mereka alami dengan user tersebut.

Fitur baru lainnya adalah soft-delete, yaitu menghapus data tanpa menghapus fisik data tersebut di database.

Yang tak kalah menariknya juga adalah, PHPMaker 2025 meningkatkan fitur Debug melalui opsi Debug di tab Generate, yang jika diaktifkan, maka aplikasi web yang dihasilkan akan menyertakan bar berisi jendela kecil di bawah halaman aplikasi web yang terdiri dari beberapa bagian, yaitu: Messages, Request, Exceptions, Monolog, Database, dan Mails.

Kemudian ada fitur tipe validasi server event baru bernama Assert, yang terdiri dari beberapa Constraint, seperti NotBlank, Blank, NotNull, IsNull, IsTrue, IsFalse, Type, Email, ExpressionSyntax, Length, Url, Regex, Hostname, Ip, dan sebagainya.

O iya, satu hal yang cukup menarik meskipun kelihatan sepele di versi 2025 ini adalah, huruf yang digunakan di antarmuka dari aplikasi PHPMaker-nya itu sendiri. Sekarang hurufnya lebih bagus, karena jarak antar huruf tidak berdempetan lagi, sehingga lebih mudah dibaca.

Selamat mengeksplorasi!

Add post to Blinklist Add post to Blogmarks Add post to del.icio.us Digg this! Add post to My Web 2.0 Add post to Newsvine Add post to Reddit Add post to Simpy Who's linking to this post?