it-swarm.com.de

Wie kann ich ein Formular aus einem Modul anzeigen und speichern, wie wir es in Komponenten tun?

Ich zeige und speichere Formulare in Joomla MVC-Komponenten mit jmodeladmin Klassen.

Aber wie kann ich dasselbe mit einem Modul machen? Da Module keine MVC-Aktionen ausführen, die automatisch die entsprechende Ansicht, das entsprechende Modell und den entsprechenden Controller finden.

Ich schätze, ich würde ein Formular anzeigen, das Folgendes enthält: Wie erhalte ich die Form der Komponente aus dem Modul? aber wenn der Submit-Button des Formulars im betreffenden Modul angeklickt wird, wie kann ich den Submit abfangen und mit jmodeladmin classes speichern?

5
dev-m

Ich würde denken, dass Sie die Ausgabe von Ihrem Modul mit einer Komponente abfangen müssen. Sie können JForm verwenden, um das Formular in Ihrem Modul auszugeben, und haben dann versteckte Eingaben wie

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

dann können Sie alle üblichen Methoden verwenden, um die Formulareingabe zu handhaben ...

4
jonasfh

Sie haben Recht, die Übermittlung mit einem Modul ist etwas schwieriger, da Formularübermittlungen an eine URL gehen müssen. Es ist schwieriger, eine Komponente zu schreiben, nur um die Eingabe vom Modul zu akzeptieren.

Aufgrund dieses Problems hat Matt Thomas in Joomla 3 eine Komponente namens com_ajax geschrieben. Com_Ajax ist eine Komponente, die Module dabei unterstützt, Dinge mit Modulen zu tun, wenn es keine bestimmte URL gab, mit der Sie arbeiten konnten, wie in einer Komponente.

Ihr Fall für mich ist genau das, was com_ajax entwickelt hat, um Sie bei der Bewältigung Ihrer Probleme zu unterstützen. Hier ist einige Dokumentation zur Verwendung:

http://docs.joomla.org/Using_Joomla_Ajax_Interface

Am Ende schreiben Sie ein, das über die Submit-URL ausgeführt wird. Ich denke, Sie möchten ein wenig Javascript verwenden, um das dort übermittelte Formular zu unterstützen, aber ich bin mir nicht sicher, ob es vollständig notwendig ist (aber es ist sexier).

Dann richten Sie in Ihrem Helfer die Klasse für das Modul ein:

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

Sie richten die Methode getAjax () ein: https://github.com/Joomla-Ajax-Interface/Ajax-Session-Module/blob/master/helper.php#L12

Um das Ziehen im Formular zu handhaben, senden Sie die Daten über JFactory :: getApplication () -> input ().

Sie werden dann eine Art Antwort zurückgeben, wahrscheinlich eine Art JSON-Zeichenfolge, die eine Erfolgs- oder Fehlermeldung darstellt.

Hoffentlich hilft das!

3
Chad Windnagle