it-swarm-tr.com

Bileşenlerdeki gibi bir form modülden nasıl gösterilir ve kaydedilir?

jmodeladmin sınıflarını kullanarak Joomla MVC bileşenleri formları görüntülemek ve kaydetmek.

Ama aynı şeyi bir modülden nasıl yapabilirim? Modüller, MVC'de ilgili görünümü, modeli ve denetleyiciyi otomatik olarak bulabilecek şeyler yapmadığından.

Bu yüzden bu yazıda belirtilenleri veren bir form görüntülerim Modülden bileşen formu nasıl alınır? ancak ilgili modülde formun gönder düğmesi tıklandığında, gönderimi nasıl yakalayabilir ve jmodeladmin sınıflarını kullanarak kaydedebilirim?

5
dev-m

Bir bileşen kullanarak modülünüzün çıktısını yakalamanız gerektiğini düşünürüm. Modülünüzdeki formu çıktılamak için JForm'u kullanabilir ve ardından gizli girişlere sahip olabilirsiniz.

<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>

o zaman form girişini işlemek için tüm olağan yöntemleri kullanabilirsiniz ...

4
jonasfh

Form gönderimlerinin bir URL'ye gitmesi gerektiğinden, bir modülle göndermek biraz daha zordur. Sadece modülden girişi kabul etmek için bir bileşen yazmak daha karışıktır.

Bu sorun nedeniyle, Joomla 3'te Matt Thomas com_ajax adlı bir bileşen yazdı. Com_Ajax, bir bileşende olduğu gibi çalışacak belirli bir URL olmadığında modüllerin modüllerle bir şeyler yapmasına yardımcı olmak için tasarlanmış bir bileşendir.

Bana gelen durum tam olarak com_ajax'ın başa çıkmaya yardımcı olmak için tasarlandığı şey. İşte kullanma ile ilgili bazı belgeler:

http://docs.joomla.org/Using_Joomla_Ajax_Interface

Sonunda modülünüzle yapacağınız şey, gönderme URL'si aracılığıyla yürütülecek bir modül yazmaktır. Ben orada formu gönderme yardımcı olmak için bazı javascript kullanmak isteyeceksiniz düşünüyorum ama tamamen gerekli olup olmadığından emin değilim (ama daha seksi).

Daha sonra yardımcınızda modül için sınıfı ayarlayacaksınız:

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

GetAjax () yöntemi ile kuracaksınız: https://github.com/Joomla-Ajax-Interface/Ajax-Session-Module/blob/master/helper.php#L12

Formdaki çekmeyi işlemek için JFactory :: getApplication () -> input () ile veri gönderin

Daha sonra, muhtemelen bir başarı veya hata mesajı olan JSON dizesi gibi bir tür yanıt döndürürsünüz.

Umarım bu yardımcı olur!

3
Chad Windnagle