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.

php-code in Email

More
11 months 3 weeks ago #9254 by hcohl
php-code in Email was created by hcohl
Ich möchte in der Email den code etwas verändern mit php.
Jetzt heißt es im Forum:
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.
Aber wo finde ich diese Plugins?

More
11 months 3 weeks ago #9257 by Administrator AV
Replied by Administrator AV on topic php-code in Email
Hallo hcohl,

das Custom Plugin musst du selbst erstellen.
Bitte siehe dir hierzu zuerst die Anleitung in der Dokumentation an (auch die Verlinkten Seiten):
docs.joomla-4.visforms.vi-solutions.de/d...-plugin-development/

Wir arbeiten kontinuierlich darin, die den Zugang zur Entwicklung eines Custom Plugins zu verbessern.
Deshalb ist auch die Dokumentation noch nicht perfekt.
Es gibt mittlerweile in der Visforms Installation selbst eine Vorlage für ein Custom Plugin.

Statt den "Plugin-Masters", wie er in der Dokumentation zum Download verlinkt ist, herunterzuladen, kannst du auch das "Visforms Customs Plugin", das in der Visforms Installation mit geliefert wird, kopieren und umbenennen und dann als dein eigenes Custom Plugin ausbauen.
Das Visforms Custom Plugin liegt im Verzeichnis plugins/visforms/vfcustomplugin.
Umbenennen heißt, einen eigenen Namen verwenden und alle Dateien und Klassen wie in der Dokumentation beschrieben anzupassen.
Du musst ein eigenes Plugin mit eigenem Namen machen, ansonsten wird dir alles bei einem Visforms-Update überschrieben.
Das Visforms Custom Plugin ist wirklich als Vorlage anzusehen.

In diesem Plugin kannst du dann die Events verwenden.
Eine Beschreibung der Events gibt es ebenfalls in der Dokumenation
docs.joomla-4.visforms.vi-solutions.de/d...-plugin-development/

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

More
11 months 3 weeks ago #9265 by hcohl
Replied by hcohl on topic php-code in Email
Ich will es dazu nutzen, um die Ausgabe einer Checkboxgruppe nicht inline und Komma-getrennt zu haben sondern als Liste. Gibt es hierzu eine konkrete Anleitung oder können sie mir helfen.
Ich dachte mir ich schreibe einfach in die Email
${firstname}
${lastname}
und dann
<div><!--?php
    ${spezialisierungen|DISPLAYOPTIONVALUE};
    $arr = explode(',', ${spezialisierungen|DISPLAYOPTIONVALUE};); // String $str an jedem Komma (",") trennen
    var_dump($arr);
?--></div>
Aber das funktioniert nicht.

More
11 months 3 weeks ago - 10 months 3 weeks ago #9269 by Administrator AV
Replied by Administrator AV on topic php-code in Email
Hallo hcohl,

nein, das geht tatsächlich nicht.
Eigenes PHP kann man in Visforms nur in einem  Custom Plugin verwenden.
(Ich glaube übrigens, dass dieser Ansatz ein wichtiger Grund dafür ist, dass es überhaupt kein Problem war, Visforms mit Joomla 4 kompatibel zu machen).

Visforms hat einen Mechanismus um Platzhalter in E-Mails, Pdf' u.ä. zu ersetzen.
Es ist aber nicht vorgesehen, dass man den Wert, mit dem der Platzhalter ersetzt wird, in einem Custom Plugin verändern kann.

Dies wäre eine mögliche Umsetzung für den Featurerequest
Issue [VF-800]: Felder mit Optionslisten: Ausgabe als Liste
den ich ja bereits angelegt habe.

Allerdings glaube ich, dass das so tief im Code, keine gute Umsetzunge wäre.
Deshalb werde ich für Selects und Checkboxgruppen einen neuen Platzhalterparameter DISPLAYOPTIONVALUEASLIST hinzufügen.

Wenn du das Feature tatsächlich jetzt sofort unbedingt brauchst, sehe ich nur die Möglichkeit, dass du die Datei, die die Platzhalterersetzung macht jetzt selbst, anpasst.
Das ist allerdings eine Datei, die bei einem Visforms Update überschrieben wird.
Ich gehe davon aus, dass ich das oben beschriebene Feature in folgender Form unsetzen werden und das dann mit den nächsten Release kommt.
100% garantieren kann ich es allerdings nicht.
Falls es eine Änderung gibt, werde ich das hier in diesen Post mitteilen.

Nun die Änduerugnen:
administrator/components/com_visforms/lib/placeholderentry/select.php

Alt:
Code:
protected static $customParams = array (         'DISPLAYOPTIONVALUE' => 'COM_VISFORMS_PLACEHOLDER_PARAM_OPTION_VALUE'     );

Neu:
Code:
protected static $customParams = array (         'DISPLAYOPTIONVALUE' => 'COM_VISFORMS_PLACEHOLDER_PARAM_OPTION_VALUE',         'DISPLAYOPTIONVALUEASLIST' => 'COM_VISFORMS_PLACEHOLDER_PARAM_OPTION_VALUE_ASLIST'     );

Das fügt den Platzhalterparameter hinzu.

Code zur Auswertung des Platzhalterparameters hinzufügen

public function getReplaceValue()

Nach Zeile 31 neues case hinzufügen, (vor default: )
Code:
 case 'DISPLAYOPTIONVALUEASLIST' :   $inline = HTMLHelper::_('visformsselect.removeNullbyte', $this->rawData); // das ist der Komma-separierte String, wie er jetzt zurück gegeben wird ... Dein Code hier return $listHtml;

Als Rückgabewert musst du das formatierte Listenhtml, das du in "Dein Code" erzeugst, verwenden.

Falls du diese Umsetzung wählst, schreibe hier bitte, wie "Dein Code" aussieht.
Ich werde dann schauen, dass dieser in Visforms kommt.

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 :-).
Last edit: 10 months 3 weeks ago by Administrator IV.
The following user(s) said Thank You: MaliRaj

More
11 months 1 week ago - 11 months 1 week ago #9310 by MaliRaj
Replied by MaliRaj on topic Felder mit Optionslisten: Ausgabe als Liste
In Detailansichten werden Checkboxgruppen übrigens jetzt schon als Liste angezeigt.
Dieses Art der Anzeige wäre auch gut in Mails und auf der Zusammenfassungsseite zu gebrauchen.
Hänge mich daher mit ein ... wegen der ReleaseInfo

Freundliche Grüße aus PM
Heinz
Last edit: 11 months 1 week ago by MaliRaj.

More
9 months 2 weeks ago - 9 months 2 weeks ago #9564 by MaliRaj
Replied by MaliRaj on topic Felder mit Optionslisten: Ausgabe als Liste
Hallo Aicha,
in select.php und selectsql.php habe ich für DISPLAYOPTIONLABELASLIST lediglich den Implode-Separator ersetzt:
Das funktioniert problemlos gut. So kann ein Komma auch im Label enthalten sein. 
Für DISPLAYOPTIONVALUEASLIST musste statt des Entfernen des 'Nullbyte', auch 'nur' das 'Nullbyte-Komma' durch '<br />' ersetzt werden.
Weitergehende HTML-Listenelemente (ul/dl/ol) habe ich getestet, aber für mich als überflüssig empfunden.
So lautet der komplett funktionierende Code:
Code:
case 'DISPLAYOPTIONVALUEASLIST' :       // data string as list       $dataString = HTMLHelper::_('visformsselect.removeNullbyte', str_replace('\0, ','<br />',$this->rawData));       $list = $this->getListHtml($dataString);       return $list; case 'DISPLAYOPTIONLABELASLIST' :       // data string as list       $dataString = implode('<br />', HTMLHelper::_('visformsselect.mapDbValueToSqlOptionLabel', $this->rawData, $this->field->sql));       $list = $this->getListHtml($dataString);       return $list;


Das ist jetzt aber nicht wirklich updatesicher.  Vielleicht findet das in dieser (oder besser passender) Form Berücksichtigung.

Freundliche Grüße aus PM
Heinz
Last edit: 9 months 2 weeks ago by MaliRaj. Reason: Nullbyte-Komma innerhalb str_replace korrigiert

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum