it-swarm-id.com

Bagaimana cara menunjukkan dan menyimpan formulir dari modul seperti yang kita lakukan dalam komponen?

Saya menampilkan dan menyimpan formulir di komponen Joomla MVC menggunakan jmodeladmin kelas.

Tetapi bagaimana saya bisa melakukan hal yang sama dari modul? Karena modul tidak melakukan hal-hal dengan cara MVC yang secara otomatis dapat menemukan tampilan, model, dan pengontrol yang sesuai.

Jadi saya kira saya akan menampilkan formulir pemberian berikut apa yang disebutkan dalam posting ini Bagaimana cara mendapatkan bentuk komponen dari modul? tetapi ketika tombol kirim formulir diklik dalam modul yang bersangkutan, bagaimana saya bisa menangkap kiriman & simpan menggunakan kelas jmodeladmin ??

5
dev-m

Saya pikir Anda perlu menangkap output dari modul Anda menggunakan komponen. Anda dapat menggunakan JForm untuk menampilkan formulir di modul Anda, dan kemudian memiliki input tersembunyi seperti

<form action="index.php" method="POST" name="yourform">
<input type="hidden" value="com_yourcomponent" name="option"/>
<input type="hidden" value="yourview" name="view"/>
<input type="hidden" value="savesomething" name="task"/>
<!-- ...and other input-fields with your actual form input -->
</form>

maka Anda dapat menggunakan semua metode biasa untuk menangani input formulir ...

4
jonasfh

Anda benar mengirimkan dengan modul sedikit lebih sulit karena pengiriman formulir harus pergi ke URL. Lebih berantakan harus menulis komponen hanya untuk menerima input dari modul juga.

Karena masalah ini, di Joomla 3 adalah Matt Thomas menulis komponen yang disebut com_ajax. Com_Ajax adalah komponen yang dirancang untuk membantu modul melakukan hal-hal dengan modul ketika tidak ada URL khusus untuk bekerja dengan seperti yang Anda miliki dalam komponen.

Kasus Anda bagi saya adalah persis apa yang dirancang oleh com_ajax untuk membantu menangani. Berikut beberapa dokumentasi tentang cara menggunakannya:

http://docs.joomla.org/Using_Joomla_Ajax_Interface

Apa yang Anda akhirnya lakukan dengan modul Anda adalah menulis yang akan dieksekusi melalui URL kirim. Saya pikir Anda akan ingin menggunakan beberapa javascript untuk membantu dengan mengirimkan formulir di sana tapi saya tidak yakin apakah itu benar-benar diperlukan (tetapi lebih seksi).

Kemudian dalam helper Anda, Anda akan mengatur kelas untuk modul:

https://github.com/Joomla-Ajax-Interface/Ajax-Session-Module/blob/master/helper.php#L12

Anda akan mengatur dengan metode getAjax (): https://github.com/Joomla-Ajax-Interface/Ajax-Session-Module/blob/master/helper.php#L12

Untuk menangani penarikan dalam formulir, kirimkan data melalui JFactory :: getApplication () -> input ()

Anda kemudian akan mengembalikan semacam respons, mungkin sesuatu seperti string JSON yang merupakan pesan kesalahan atau sukses.

Semoga ini bisa membantu!

3
Chad Windnagle