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?

Leere Formular-Felder in der Ergebnis Mail

More
8 years 1 month ago #3589 by Paul
Ich bräuchte Hilfe bei folgendem Szenario:

Formular auf der Webseite enthält viele bedingte Felder, diese werden, falls leer, auch nicht übermittelt.
Im "Ergebnis Mail Text" habe ich die Möglichkeit den Feldnamen aus dem Visforms-Dropdown einzufügen und dazu auch eine Feld-Bezeichnung als "Plain Text" einzutragen.

Problem ->
a) wenn das Feld leer ist steht die Bezeichnung ohne Wert im Formular und es sieht unprofessionell aus,
oder
b) ich lasse die Bezeichnung weg, was bei einem Formular mit ca. 200 Feldern sehr verwirrend aussieht, wenn nur die Ergebnisse dargestellt werden.

Lösung ->
Für jedes individuelle Feld im Formular ein weiteres Feld (wie z.B. Tips Text, individuelle Fehlermeldung usw.) als Feld-Bezeichner für das PDF Mail einfügen. Wenn der Wert leer ist wird die Feld-Bezeichnung auch weggelassen.

Leider erfüllt auch der unter "Erweitert" angebotene "Benutzerdefinierte Text" diese Anforderung nicht.

Es würde mich freuen falls sowas ermöglicht werden könnte.

Grüsse
Paul

More
8 years 1 month ago #3594 by Administrator AV
Replied by Administrator AV on topic Leere Formular-Felder in der Ergebnis Mail
Hallo Paul,

Visforms bietet dir doch die Möglichkeit einfach die Daten an die Mail anzuhängen. Diese werden dann automatisch als Label/Wert unterhalb deines Textes eingefügt. Es gibt eine Option mit der du leer Felder unterdrücken kannst (also auch alle bedingten Felder die im Formular nicht angezeigt wurden) und wenn du es so machst wird dann sowohl das Label als auch der Wert weggelassen. Außerdem gibt es in der Feldkonfiguration noch die Möglichkeit das jeweilige Feld aus den Mails ganz auszuschließen (Reiter Erweitert).
Evtl. wäre das in deinem Fall die bessere Lösung als zu versuchen, alle Felder in den Text den "Ergebnis Mail Text" manuell reinzupacken.

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 :-).

More
8 years 1 month ago - 8 years 1 month ago #3595 by Paul
Hallo Aicha,

ja, ich kenne die normalen Funktionen der Admin bzw. Kunden-Mail. Das mit den leeren Feldern hatten wir vor ca. einem 1/2 Jahr hier besprochen LINK zum Forumbeitag .

Hier geht es um eine formatierte PDF Antwortmail (inkl. Logo und Briefpapiervorlage) mit über 200 bedingten Feldern an den Admin und Kunden welche wiederum ohne weitere Bearbeitung vom Admin weitergeleitet werden muss. Daher die Notwendigkeit für die individuelle Vorlage als "Ergebnis Mail Text".

Dort kann ich leider keine Feldbezeichnungen in Abhängigkeit von bedingten Felder hinterlegen. Entweder sind die Bezeichnungen dann immer sichtbar mit womöglich leerem Inhalt (bei 200 Felder sieht das nur dämlich aus) oder es kann nur der Inhalt angezeigt werden mittels dem Dropdown->Feldbezeichnung, was bei 200+ Feldern völlig unübersichtlich wird. Daher mein Lösungsvorschlag ob es denn möglich wäre ein zusätzliches Feld wie z.b. Tips Text, das die Feldbezeichnung(Text) beinhaltet für "Ergebnis Mail Text" und sichtbar wird je nachdem ob das Formularfeld bedingt (isset($fieldvalue) als TRUE zurückgibt.

if isset($fieldvalue) {
{
$mailBody .= $field->labelXXX . " : " . $fieldValue . "<br />";
}

In diesem Fall wird $mailBody aus der Vorlage "Ergebnis Mail Text" generiert und labelXXX ist das neue Feld mit dem Bezeichner für $fieldvalue.

Ich hoffe dass Du mein Problem lösen kannst oder denke ich hier zu einfach bei der Lösung. Danke Dir

Grüsse
Paul
Last edit: 8 years 1 month ago by Paul.

More
8 years 1 month ago #3597 by Administrator AV
Replied by Administrator AV on topic Leere Formular-Felder in der Ergebnis Mail
Hallo Paul,

ja da denkst du meines Erachtens zu einfach, denn die meisten Leute wollen wirklich nur den übertragenen Feldwert in den Text einsetzen z.B. Hallo [NAME]. Dies würde bei deinem Ansatz dann einfach zu Hallo Benutzername: xyz

D.h. die Businesslogik ist an dieser Stelle schon etwas komplizierte, bzw. der Usecase für die Platzhalter enfach anders als du es gerne hättest und eine Lösung, bei der man dann an- und abstellen kann, ob nur der Wert oder das Label und der Wert angezeigt wird und welcher Trenner dann verwendet wird und ob noch Zeilenumbrüche eingebaut werden oder nicht..... ist defniitiv aufwendig.

Wie gesagt, die Verwendung von Platzhaltern im Text dient dazu Benutzereingaben im Fließtext zu verwenden. Hierzu muss man sicherstellen, dass für das Feld eine Benuztereingabe vorliegt (Pflichtfeld)...

Für die Auflistung der Benutzereingaben am Ende der Mail sind die anderen Mailoptionen zuständig, die dann die Möglichkeit bieten sicherzustellen, dass nur nicht leere Felder übertragen werden.

Das Ersetzen der Platzhalter erfolgt in der Datei administrator\components\com_visforms\helpers\html\visforms.php in der Funktion replacePlaceholder, die allerdings von Visforms durchaus an mehreren unterschiedlichen Stellen verwendet wird. Diese Datei kann nicht updatesicher verändert werden, aber du kannst gerne auf eigene Gefahr schauen.....

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 :-).

More
8 years 1 month ago #3599 by Paul
Da ich natürlich nicht die gesamte Struktur von VisForms kenne könnte ich mir für meinen Kunden erstmal einen schnellen Hack vorstellen der ungefähr so aussehen könnte. Dazu bräuchte ich allerdings deine Hilfe.

Funktion replacePlaceholder
Zeile 475
else {$fieldValue = $ffield->dbValue;} // Hier wird m.E. der placeholder mit dem Forminhalt ersetzt ?

könnte man sowas bauen, ich würde z.B. ToolTipsText als Bezeicher zweckentfremden
else {$fieldValue = $field->TooltipText." :".$ffield->dbValue;}

Hierzu bräuchte ich deine Hilfe (gerne auch gegen Spende p.N.) um die Abfrage mit den echten Variablen und Objekten zu schreiben, da ich diese natürlich erstmal nicht kenne. Es wäre keinesfalls Updatesicher aber da mir die Zeit davonrennt muss ich erstmal eine Lösung anbieten.

Grüsse
Paul

More
8 years 1 month ago #3600 by Administrator AV
Replied by Administrator AV on topic Leere Formular-Felder in der Ergebnis Mail
Hallo Paul,

der Code von Visforms ist ziemlich umfangreich und alle Werte an allen Stellen habe ich auch nicht auswendig im Kopf.

Ich denke aber, dass, falls du mit Tool Tips Text die Option "Tips Text" in der Feldkonfiguration meinst, diese an dieser Stelle im Code über $ffield->customtext abgerufen werden können sollte. Du bist dir ja sicher im klaren darüber, dass dieser Text im Formular auch angezeigt wird, wenn er gesetzt ist.

Für "versteckte" Felder gibt es keinen Tips Text, deshalb musst du auf jeden Fall prüfen, dass dieser Parameter vorhanden ist.

Die Codestelle auf die du dich beziehst ist die richtige.
Code:
else { //gibt es einen Tips Text? if (!empty($ffield->customtext)) { $fieldValue = $field->customtext . ":" .$ffield->dbValue; } //wenn nicht else { $fieldValue = $ffield->dbValue; } }

Ja und über eine Spende würde ich mich sehr freuen.

Herzliche Grüße,
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 :-).

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum