Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Important information for almost every question:
V1: Which Visforms version is running?
V2: Which Joomla version is running?
V3: Which PHP version is running?

Zugriff auf ID in Feld von Typ 'Berechnung'

More
1 year 7 months ago #9152 by Eraxon
Hallo,

ich bin gerade dabei ein Registrierungsformular für einen Event zu schreiben mit ca. 1000 Teilnehmern. Um die Zuordnung der Bezahlungen möglichst leicht zu gestalten möchte ich dabei eine Zahlungsreferenz generieren, die eindeutig einer ID (von einer Anmeldung) zugeordnet werden kann. 

Diese Zahlungsreferenz rechne ich dabei mit einer Funktion aus, die noch ein paar Ziffern anhängt um rudimentäre Fehlererkennung zu erlauben. Die Zahlungsreferenz sollte direkt in der Zusammenfassung der Anmeldung und in der Bestätigungs-Mail ausgegeben werden.

Mein erster Versuch war ein Feld vom Typ 'Berechnung' in dem ich diese Funktion implementiere und dabei direkt auf die ID zugreife: Das funktioniert natürlich nicht, da es noch keine ID gibt bevor die Anmeldung abgeschickt wird. 

Jetzt gehen mir aber die Ideen aus, gibt es mit den aktuellen Features irgendeine Möglichkeit diese Funktionalität zu erreichen? 

More
1 year 7 months ago #9153 by prffrost
The following user(s) said Thank You: Administrator IV, Eraxon

More
1 year 7 months ago #9154 by Administrator IV
Replied by Administrator IV on topic Zugriff auf ID in Feld von Typ 'Berechnung'
Hallo Eraxon,

im diesem Post wird es auch nochmal an einem konkreten Beispiel erklärt:

vi-solutions.de/en/forum-index/19-joomla...increment-field#9103

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
1 year 7 months ago - 1 year 7 months ago #9155 by Administrator IV
Replied by Administrator IV on topic Zugriff auf ID in Feld von Typ 'Berechnung'
Hallo Eraxon,

wir sehen das Thema als wiederkehrende Frage im Forum auch interessant für eine Ergänzung der Visforms Dokumentation an.
Wir werden die Dokumentation um deinen Punkt entsprechen erweitern.
Ich habe dazu einen Issue zur Entwicklung für die Dokumentation angelegt:
Issue [VF-781] Docu: Add Example: Create unique counter including text parts

Wenn wir die Dokumentation erweitert haben, wirst du explizit darüber hier im Thema informiert.
Vielen Dank nochmal für deinen Beitrag!

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).
Last edit: 1 year 7 months ago by Administrator IV.

More
1 year 7 months ago - 1 year 7 months ago #9157 by Eraxon
Replied by Eraxon on topic Zugriff auf ID in Feld von Typ 'Berechnung'
Vielen Dank für die schnelle Rückmeldung, grundsätzlich lässt es sich so wirklich gut umsetzen und ich habe es jetzt geschafft, die Zahlungsreferenz so zu generieren wie ich mir das vorstelle.

Was allerdings noch ein Problem darstellt ist die Problematik wenn zwei Leute gleichzeitig das Formular ausfüllen, die ID daher nicht mehr eindeutig ist und einer der Benutzer das Formular neu absenden muss. Wir schalten die Anmeldung den Event immer zu einem vorher angekündigten Zeitpunkt frei, was dann zu Hunderten Anmeldung in ein paar Minuten führt.

Mein Formular verwendet außerdem die Zusammenfassung, damit die Fahrer nochmal in Ruhe ihre Eingaben überprüfen können. Soweit ich das sehe gibt es auf der Zusammenfassungs-Seite auch keine Möglichkeit mehr das Feld zu updaten. Das Formular wäre zu Stoßzeiten also äußerst unzuverlässig.

Gäbe es vielleicht die Möglichkeit für ein "serverseitiges" Formularfeld, das fix ein SQL-Statement ausführt welches ganz einfach serverseitig vor dem Insert ausgeführt wird? Das müsste auch im Frontend gar nicht aufscheinen. Ich würde mir das so ähnlich vorstellen wie "Berechnung" nur dass es rein im Backend läuft.
Last edit: 1 year 7 months ago by Eraxon.

More
1 year 7 months ago #9191 by Administrator IV
Replied by Administrator IV on topic Zugriff auf ID in Feld von Typ 'Berechnung'
Hallo Eraxon,

kurz zur  Zusammenfassungs-Seite:
Grundsätzlich funktioniert der beschriebene Mechanismus auch bei Verwendung einer Zusammenfassungs-Seite ohne Einbußen.

Zu 'serverseitiges Formularfeld':
Es gibt die Möglichkeit für ein 'serverseitiges Formularfeld', das fix ein SQL-Statement ausführt, welches serverseitig direkt vor dem Insert ausgeführt wird.
Diese Möglichkeit gibt es in Visforms allerdings nicht als eine einfache Konfiguration.

Eine Möglichkeit für Entwickler gibt es in Form der Erstellung eines Custom-Plugins.
In der Dokumentation wird beschrieben, wie ein 'Visforms Custom Plugin' erstellt werden kann:
docs.joomla-4.visforms.vi-solutions.de/d...-plugin-development/
docs.joomla-4.visforms.vi-solutions.de/d...-plugin-development/

Der Entwickler kann dann selbst entscheiden, was zusätzlich alles geschehen soll.
In deinem Fall,  die Ermittlung bzw Berechnung und Speicherung der neuen eindeutigen ID.
Zur Ermittlung der neuen eindeutigen ID kannst du alle nur denkbaren Mechanismen der 'best praxis' einsetzen, die du möchtest.
Das bleibt dir vollkommen offen.

Falls du die Datensatz-ID nutzen willst, musst dein Code selbstverständlich erst aktiv werden, unmittelbar nachdem der Datensatz erzeugt und gespeichert wurde.
Die Erstellung eines Custom-Plugins erfordert etwas Erfahrung in der PHP-Entwicklung unter Joomla und dem SQL im Zusammenhang mit MySQL.

Folgende beide Events sind hierbei für dich interessant.
Event für den Zeitpunkt vor der Speicherung des Datensatzes:
Code:
public function onVisformsBeforeFormSave($context, $form, $fields)
Event für den Zeitpunkt nach der Speicherung des Datensatzes:
Code:
public function onVisformsAfterFormSave($context, $form, $fields)
Falls du Hilfe bei der Entwicklung des Plugins benötigst, dann können wir dich gerne dabei unterstützen - auch mit der kompletten Implementierung.
Bitte habe Verständnis dafür, dass wir diesen Aufwand zu unserem aktuellen Stundensatz berechnen müssen.

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum