Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Web Design
  2. Processwire
Webdesign

Memperluas ProcessWire Admin menggunakan kustom modul

by
Difficulty:IntermediateLength:ShortLanguages:

Indonesian (Bahasa Indonesia) translation by Sap (you can also view the original English article)

Dalam tutorial ini kita akan melihat ke dalam memperluas ProcessWire's admin menggunakan kustom modul. Dengan tiga contoh modul saya akan memberi Anda kecil memiliki rasa kekuatan ProcessWire modul untuk menambahkan fungsi baru untuk admin.

Buat halaman kustom Admin

Menciptakan halaman untuk website Anda di ProcessWire (PW) tidak bisa lebih mudah, tetapi bagaimana membuat halaman kustom dalam CMS? Katakanlah Anda ingin membuat halaman pengaturan kustom, FAQ, atau laman video?

Baca terus, kami punya Anda kembali.

Modul ProcessSimpleAdminPage menunjukkan hanya untuk membuat modul yang meluas proses kelas untuk menambahkan admin baru proses, dan kemudian membuat sebuah halaman untuk proses baru. Proses adalah basis kelas untuk admin PW jadi menggunakan ini kita dapat membuat halaman yang menampilkan konten kami.

Tip: Anda baru proses memperpanjang modul bisa juga menampilkan bentuk dan fungsi lainnya serta kembali konten.

Kita akan membuat proses baru yang kembali beberapa konten, kemudian membuat sebuah halaman baru dalam navigasi admin untuk mencapai konten (dalam contoh ini saya menamakannya halaman "CMS FAQ"). Untuk membangun modul kami kita mulai dengan menciptakan sebuah file bernama "ProcessSimpleAdminPage.module" dan menyimpan rincian modul kami untuk itu.

Pada titik ini, jika kita menginstal modul kami kami akan memiliki semua yang kita butuhkan untuk membuat proses ProcessSimpleAdminPage kami baru dan kembali konten. Namun, saat ini ada tidak ada halaman untuk mengeksekusi kode kita. Kami memiliki beberapa pilihan untuk melakukan hal ini:

  1. Secara manual membuat halaman baru di pagetree PW di bawah Admin, berikan admin template dan di lapangan. Proses: ProcessSimpleAdminPage. Memindahkan halaman baru dalam daftar pagetree di bawah Pengaturan, misalnya, akan melihat halaman ditambahkan ke navigasi atas di bawah Pengaturan.
  2. Menambahkan halaman atribut ke modul getModuleInfo() array. Jika modul meluas proses (yang kita Apakah), kemudian menambahkan halaman atribut array dengan setidaknya nama dan parent di menginstal akan secara otomatis membuat halaman admin baru di bawah parent Anda ditentukan dengan modul sebagai proses. Berikut adalah contoh dari hello module.
  3. Membuat install() dan uninstall() fungsi dan menambahkan halaman baru. Ini adalah rinci di bawah ini untuk menunjukkan kepada Anda bagaimana Anda bisa menambahkan halaman:

Pergi dan membuat halaman admin untuk website Anda!

Tambahkan teks kustom Formatter

Dengan menggunakan Textformatters Anda dapat memanipulasi masukan dari bidang teks dengan PW admin. Misalnya, Anda ingin membuat potongan kode yang ditambahkan bukan seseorang mengetik potongan mereka sendiri, sangat mungkin (dalam cara yang mirip dengan hana code plugin untuk Wordpress).

Kali ini saya telah membuat sebuah modul yang memperpanjang kelas dasar lain Textformatter untuk membuat modul baru kami TextformatterFindReplace dan menciptakan file konfigurasi yang terpisah:

Sekarang dalam pengaturan modul saya dapat menentukan string untuk mencocokkan, dan string untuk menggantinya dengan (dalam contoh kita di atas default adalah menemukan:----dan menggantinya dengan <b>REPLACED TEXT</b>).

Saya kemudian perlu lakukan adalah menambahkan TextFormatter baru kami untuk bidang teks tab rincian tab. Sekarang setiap kali saya ketik ---- saya akan mendapatkan string teks diganti.

Menambah fungsionalitas baru ke halaman Admin

Sebagai PW admin sendiri dibuat menggunakan PW's API-seperti library, modul PW memiliki akses cukup banyak untuk menghubungkan ke mana saja yang Anda perlu.

Sebagai contoh terakhir saya pada memperluas admin PW's, saya telah membuat sebuah modul yang menambahkan tombol untuk mengedit halaman dan pagetree, menciptakan dua Field baru dan menambahkan mereka global ke setiap halaman. Hal ini membutuhkan modul lain, LazyCron, untuk beroperasi.

Modul PageDeferredPublish, mengklik salah satu tombol Publish Later, menetapkan LazyCron untuk memeriksa halaman itu mundur setiap menit dan menerbitkan halaman ketika mundur yang mencapai 0. Ini berarti saya dapat mempublikasikan halaman sekitar 24 jam di muka (jelas interval memeriksa dan waktu tunda dapat berubah untuk kebutuhan Anda).

Aku melakukan ini dengan:

  • Menciptakan dua fields dalam saya fungsi install(): Lapangan kotak centang untuk set ke true ketika tombol dicentang untuk menunjukkan halaman harus mundur, dan bidang hitung mundur untuk menyimpan hitungan detik untuk halaman tertentu.
  • Menambahkan kait ke ProcessPageEdit::buildForm dan ProcessPageListActions::getExtraActions yang memungkinkan saya untuk menambahkan dua tombol.
  • Memeriksa untuk melihat jika salah satu tombol diklik dengan fungsi ready() saya kemudian menetapkan Halaman sesuai kotak centang ke true.
  • Menggunakan fungsi LazyCron hook untuk memeriksa semua halaman yang diterbitkan untuk kotak centang yang benar dan kemudian membandingkan bidang detik untuk melihat jika halaman perlu penerbitan. Jika tidak maka mengurangi waktu berlalu dalam detik.

Hasilnya adalah modul yang memiliki pengaturan (interval waktu untuk memeriksa dan mempublikasikan pada waktu kemudian), kait admin menggunakan tombol dan bidang dan memungkinkan kita untuk menggunakan modul-modul lain yang dipasang di PW (yaitu LazyCron).

Membungkus

Sering kali, sebuah modul yang Anda butuhkan sudah telah dibuat dan dapat didownload dari halaman modul PW's. Namun, jika Anda menemukan diri Anda yang membutuhkan baik untuk tahu itu relatif mudah untuk melompat, memperluas kelas inti dan menciptakan fungsi baru yang memecahkan masalah Anda atau mengubah PW's solusi default.

Saya harap Anda telah menemukan pengecap ini kecil kekuatan memperluas PW berguna, dan silakan periksa ProcessWire tutorial lain pada Envato Tuts+ untuk tips dan trik.

Sumber-sumber yang berguna

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.