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.

Custom HTML/PHP Code in Erfolgstext / Ergebnis Mail

More
1 year 8 months ago - 1 year 8 months ago #8307 by tornado
Hallo,
Ist es möglich, im Erfolgstext, bzw. Ergebnis Mail eines Forms HTML / PHP Code einzufügen?
Oder gibt es eine andere Möglichkeit, die Ausgabe eines Ergebnis-, bzw. Email-Texts formatierungsmässig zu beeinflussen?

Hintergrund meiner Frage:
Ich möchte z.B. abhängig vom Inhalt eines Formular-Feldes das HTML-Attribut 'Font-Color' per function setzen.

Simples Beispiel: 
Code:
<tr style="vertical-align:top">        <td></td>         <td>Gender:</td>         <?php                 if ([Gender] == "male" {                         echo "<td style="color:blue">[Gender]</td>";                  }                 if ([Gender] == "female" {                         echo "<td style="color:red">[Gender]</td>";                  }          ?> >/tr>
  
Danke für jede Unterstützung
Felix Merz
Last edit: 1 year 8 months ago by tornado.
The following user(s) said Thank You: MaliRaj

More
1 year 8 months ago - 1 year 8 months ago #8310 by Administrator IV
Replied by Administrator IV on topic Custom HTML/PHP Code in Erfolgstext / Ergebnis Mail
Hallo Felix,

'Erfolgstext' und den 'Ergebnis Mail Text' kannst du in einem Custom Plugin nach deinen Wünschen beliebig manipulieren.
Im Plugin-Event 'onVisformsBeforeSuccessAction' kannst du den 'Erfolgstext' ändern.
Im Plugin-Event 'onVisformsEmailPrepare' kannst du den 'Ergebnis Mail Text' ändern.

Änderung des 'Erfolgstext':
Code:
public function onVisformsBeforeSuccessAction($context, $form, $fields): bool {     $form->textresult = "<div class=\"my-text-result-class\">Mein neuer Ergebnis-Text.</div>";     return true; }

Formular-Parameter entnimmst du direkt dem $form Objekt.
Feld-Werte sowie Feld-Parameter der Feld-Konfiguration entnimmst du dem $fields Array.

Änderung des 'Ergebnis Mail Text':
Code:
public function onVisformsEmailPrepare($context, $mail, $form): bool {     $mail->Body = '<p>Mein neuer Ergebnis Mail-Text.</p>';     return true; }

Formular-Parameter entnimmst du direkt dem $form Objekt.
Feld-Werte sowie Feld-Parameter der Feld-Konfiguration entnimmst du dem $form->fields Array.

Bei der Entscheidung über die Daten-abhängige Gestaltung des Textes greifst du auf die Feldwerte zurück.
Das passende Feld findest du über die entsprechende Feld-ID aus der Visforms Feld-Liste in der Administration:
Code:
fields[field]->fid
Bei Multiselektion suchst du die gewählte(n) Option(en) über den 'dbValue' des Feldes im Array (aller möglichen Optionen) 'opts' den passenden 'value':
Code:
fields[field]->opts->value = "1" fields[field]->dbValue = "1"

Siehe IDE-Beispiel im laufenden Debugger:
vi-solutions.de/forum-uploads/custom-plu...mail-result-text.jpg

Die Dokumentation mit einem Beispiel für die Entwicklung eines individuellen Visforms Plugins findest du hier:
docs.joomla-4.visforms.vi-solutions.de/d...-plugin-development/

Die Dokumentation mit den Plugin-Events (es sind leider noch nicht alle Events hier aufgelistet) findest du hier:
docs.joomla-4.visforms.vi-solutions.de/d...-plugin-development/

Gruß, 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 8 months ago by Administrator IV.
The following user(s) said Thank You: MaliRaj

More
1 year 8 months ago #8311 by tornado
Hallo Ingmar
Wow... das nenne ich mal eine professionelle, hilfreiche Antwort!
Hab mir schon gedacht, dass das wohl mit Plugin-Events gelöst werden kann, habe aber leider die Seite mit den Events nicht gefunden.

Visforms Events for Plugin Development

Herzlichen Dank für die rasche Unterstützung.

Grüsse,  Felix

More
1 year 8 months ago #8312 by Administrator IV
Replied by Administrator IV on topic Custom HTML/PHP Code in Erfolgstext / Ergebnis Mail
Hallo Felix,
sehr gerne geschehen!
Gruß, 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 8 months ago - 1 year 8 months ago #8314 by tornado
Hallo Ingmar,
Darf ich noch eine kleine Anschlussfrage stellen betr. "Daten-abhängige Gestaltung von Texten via Custom-Plugin".

Habe erfolgreich das Custom-Plugin installiert, und kann auch den entspr. Event abgreifen. Aber ich habe etwas Mühe mit dem korrekten Syntax, um direkt auf Feld-Werte zuzugreifen.
Kannst du mir ev. ein Beispiel geben, wie ich z.B. direkt auf den Wert von "userInput" des Form-Feldes mit dem Namen "form1Buchungsnummer" zugreifen kann?
Habe zwar etwas Ahnung von SW-Entwicklung und PHP und so. Aber ich stell mich grad etwas doof an....

Irgendwie so?
Code:
echo $form->fields->name["form1Buchungsnummer"]->userInput;


Herzlichen Dank
Felix
Last edit: 1 year 8 months ago by tornado.

More
1 year 8 months ago - 1 year 8 months ago #8317 by Administrator AV
Replied by Administrator AV on topic Custom HTML/PHP Code in Erfolgstext / Ergebnis Mail
Hallo Felix,

Visforms hat ja schon eine Menge eigener Plugins, deren Code du dir ansehen kannst unter:
.../plugins/...
und
.../plugins/visforms/...

Interessant für dich wäre etwa das Plugin plgVisformsVfcustommailadr:
.../plugins/visforms/vfcustommailadr/vfcustommailadr.php

$form enthält ein Array $fields.
Jedes Element in diesem Array ist ein field-Objekt.

Es kommt mit einer recht großen Menge an Parametern.
Identifizieren kannst du das Feld am besten über seine ID.

Der vom Benutzer eingegebene Wert steht in der Regel im Parameter dbValue.
Du kannst nicht direkt ein Feld aufrufen und dann den Wert eines Parameters abfragen.

Du musst durch das fields-Array loopen, das gewünschte Feld finden und dann den dbValue abfragen:

Code:
foreach ($form->fields as $field) {     // Feld mit id 1 ermitteln     if ($field->id == 1) {         // Userinput des Feldes         $userInput = $field->dbValue;     } }

Gruß,
Aicha

: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 8 months ago by Administrator IV.

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum