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