it-swarm-es.tech

¿Cómo mostrar y guardar un formulario del módulo como lo hacemos en los componentes?

Sí visualizo y guardo formularios en los componentes de Joomla MVC usando jmodeladmin clases.

Pero, ¿cómo puedo hacer lo mismo desde un módulo? Como los módulos no hacen cosas en la forma MVC que automáticamente puede encontrar la vista, modelo y controlador correspondiente.

Entonces, supongo que mostraría un formulario dando lo siguiente que se menciona en esta publicación ¿Cómo obtener la forma del componente del módulo? pero cuando se hace clic en el botón de envío del formulario en el módulo correspondiente, ¿cómo puedo capturar el envío y guardar usando clases jmodeladmin ??

5
dev-m

Creo que necesita capturar la salida de su módulo utilizando un componente. Puede usar JForm para generar el formulario en su módulo y luego tener entradas ocultas como

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

entonces puede usar todos los métodos habituales para manejar la entrada del formulario ...

4
jonasfh

Tienes razón, el envío con un módulo es un poco más difícil porque los envíos de formularios tienen que ir a una URL. Es más complicado tener que escribir un componente solo para aceptar la entrada del módulo también.

Debido a este problema, en Joomla 3 Matt Thomas escribió un componente llamado com_ajax. Com_Ajax es un componente que está diseñado para ayudar a los módulos a hacer cosas con los módulos cuando no había una URL específica con la que trabajar como en un componente.

Su caso para mí es exactamente para lo que com_ajax fue diseñado para ayudar a lidiar. Aquí hay alguna documentación sobre su uso:

http://docs.joomla.org/Using_Joomla_Ajax_Interface

Lo que terminarás haciendo con tu módulo es escribir un mensaje que se ejecutará a través de la URL de envío. Creo que querrá usar JavaScript para ayudar con el envío del formulario, pero no estoy seguro de si es completamente necesario (pero es más atractivo).

Luego, en su ayudante, configurará la clase para el módulo:

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

Configurará con el método getAjax (): https://github.com/Joomla-Ajax-Interface/Ajax-Session-Module/blob/master/helper.php#L12

Para manejar la extracción del formulario, envíe datos a través de JFactory :: getApplication () -> input ()

Luego devolverá algún tipo de respuesta, probablemente algo así como una cadena JSON que es un mensaje de éxito o error.

¡Ojalá esto ayude!

3
Chad Windnagle