it-swarm.it

Come mostrare e salvare un modulo dal modulo come facciamo nei componenti?

Visualizzo e salvo i moduli nei componenti Joomla MVC usando le classi jmodeladmin.

Ma come posso fare la stessa cosa da un modulo? Poiché i moduli non fanno cose nel modo MVC che può automaticamente trovare la vista, il modello e il controller corrispondenti.

Quindi suppongo che visualizzerei un modulo che segue ciò che è menzionato in questo post Come ottenere la forma del componente dal modulo? ma quando si fa clic sul pulsante di invio del modulo nel modulo interessato, come posso catturare l'invio e salvare utilizzando le classi jmodeladmin ??

5
dev-m

Penso che dovresti catturare l'output dal tuo modulo usando un componente. È possibile utilizzare JForm per generare il modulo nel modulo e quindi avere input nascosti come

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

allora puoi usare tutti i soliti metodi per gestire l'input del modulo ...

4
jonasfh

Hai ragione l'invio con un modulo è un po 'più difficile perché gli invii di moduli devono passare a un URL. È più difficile scrivere un componente solo per accettare l'input dal modulo.

A causa di questo problema, in Joomla 3 Matt Thomas ha scritto un componente chiamato com_ajax. Com_Ajax è un componente progettato per aiutare i moduli a fare le cose con i moduli quando non c'era un URL specifico con cui lavorare come in un componente.

Il tuo caso per me è esattamente ciò che com_ajax è stato progettato per aiutare a gestire. Ecco un po 'di documentazione sull'uso:

http://docs.joomla.org/Using_Joomla_Ajax_Interface

Quello che finirai per fare con il tuo modulo è scrivere un che verrà eseguito tramite l'URL di invio. Penso che vorrai usare un po 'di javascript per aiutarti con il modulo da inviare lì, ma non sono sicuro che sia completamente necessario (ma è più sexy).

Quindi nel tuo aiuto imposterai la classe per il modulo:

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

Verrà impostato con il metodo getAjax (): https://github.com/Joomla-Ajax-Interface/Ajax-Session-Module/blob/master/helper.php#L12

Per gestire il pull nel modulo invia i dati tramite JFactory :: getApplication () -> input ()

Restituirai quindi una sorta di risposta, probabilmente qualcosa come una stringa JSON che è un messaggio di successo o di errore.

Speriamo che questo aiuti!

3
Chad Windnagle