Untuk memperluas: Saya ingin menggunakan kode / penampilan Modal yang sama (seperti yang digunakan di wp.media.Modal, wp.media.FocusManager) untuk membuka modal dialog kustom saya sendiri, bukan Media Editor. Di masa lalu, saya telah menggunakan thickbox untuk hal semacam ini, tetapi wp.media.Modal tampaknya menjadi cara masa depan untuk modals - Belum lagi itu terlihat keren.
Saya sudah sedikit mencolek sumber JS dan menemukan beberapa solusi yang mungkin:
- "Pinjam" kode media-views.js dan gunakan di plugin saya.
- "Extend" wp.media.Modal (bagaimanapun juga, ini adalah Backbone View).
- Buat implementasi kustom, jQueryUI, dll.
- Cukup menyerah dan gunakan kotak tebal.
Meminjam tampaknya sedikit kurang berbahaya daripada menggunakan wp.media.Model.extend ({}), tetapi boros. Saya bukan penggemar besar modals jQueryUI, tapi itu akan menyelesaikan pekerjaan. Pada saat yang sama, saya bisa melakukan implementasi kustom dari modals (atau mendasarkannya di lib lain).
Rasanya seperti saya kehilangan sesuatu yang jelas: Apakah ada orang lain yang melakukannya atau apakah kode modal perpustakaan media yang "terlalu baru" untuk digunakan kembali?
Jawaban:
Jawaban terlambat & edit. Penafian: Berikut ini adalah tidak ada kode copy & paste-togo.
Sketsa kasar
Karena saya tidak pernah mencoba menyalahgunakan modal media untuk hal lain, berikut ini ikhtisar singkat, dibuat sketsa dengan membagi bagian dari proyek yang sedang saya jalani. Ini bukan contoh yang siap untuk dilakukan, tetapi harus membawa Anda cukup dekat. Cukup baca komentar dengan hati - hati dan terapkan PHP berikut pada objek Anda.
PHP
Di konstruktor kami, kami mendaftarkan skrip kami, menambahkan kotak meta yang menampung info dan tombol media, memfilter dalam Jenis MIME tambahan (untuk ZIP misalnya) dan peduli tentang menyimpan data tambahan:
Pastikan Anda membatalkan jika Anda tidak membutuhkan skrip itu pada halaman tertentu. Ini menghemat memori, meminta waktu dan membantu menjaga instalasi Anda tetap bersih.
Kemudian kita tambahkan kotak meta. Di dalam fungsinya, kita bisa mengandalkan properti
$post
objekpost_type
, yang akan diatur untuk posting baru juga. Karena kami sudah mendaftarkan panggilan balik dalam konstruktor ke kaitan kontekstual yang sesuai, kami dapat dengan mudah membawa jenis tulisan apa pun.Jenis MIME tambahan
Cukup lemparkan ke array yang menimpa atau menambah jenis MIME default dari Media Modal. Anda juga dapat menambah atau mengabaikan pengaturan lainnya. Hanya
var_dump( $settings );
untuk melihat apa yang disediakan oleh callback. Pastikan juga kita tidak menyadap tipe posting yang salah.Render kontennya
Simpan data
Akhirnya kami memastikan data kami disimpan dengan benar dan akan diperiksa. Gunakan semua
esc_*()
fungsi, typecasting, nonces dan apa yang tidak.Catatan akhir, sebelum menuju ke contoh JS: Kode rusak dari proyek saat ini. Jadi itu akan - sebagaimana telah disebutkan - tidak berfungsi secara default! Ini hanya panduan dan tidak ada yang lain.
Javascript
Javascript itu sendiri cukup lurus ke depan. Tidak. Tapi seperti yang Anda lihat, saya menyuntikkan kedua jQuery sebagai objek skrip kustom lokal ke dalam fungsi. Dari sana, Anda harus menambahkan logika apa pun yang mungkin Anda butuhkan. Lingkungan dasar untuk berbagai negara bagian dan panggilan balik disediakan dan
console.log()
ada.Tutorial
Dominik Schilling - penulis manajer media WP 3.5 - telah menulis serangkaian demo untuk moda media. Anda dapat melihatnya di GitHub .
sumber