ich arbeite in einem Modul mit der dynamische Erzeugung von CMS_TYPEs mittels der cTypeGenerator-Klasse und der Funktion getGeneratedCmsTag.
Bei den Standard-Typen wie CMS_HTML, CMS_TEXT usw. funktioniert es tadelslos. Ich stoße jedoch beim PIFA-Plugin bzw. beim Type CMS_PIFAFORM an grenzen. Der Code wird nicht korrekt erzeugt sondern gibt wiederum einen PHP-Teil zurück, der ein anscheinend einen echo-Befehl ändert etwas ausführt und dann wieder PHP Echo aufruft. Das funktioniert dann nur, wenn der Code mit eval ausgeführt würde. Mit der Verwendung innerhalb von Variablen ist dann Schluss.
Ich habe mich dann bis zur Datei plugins/form_assistant/classes/class.content.type.pifa_form.php durchgearbeitet und dort die generateViewCode()-Funktion gefunden.
Code: Alles auswählen
$code = '";?' . '><' . '?php $form = new %s(\'%s\', %s, %s); echo $form->buildCode(); ?' . '><' . '?php echo "';
$code = sprintf($code, get_class($this), $this->_rawSettings, $this->_id, '[]');
return $code;
Andere CMS_Typen verwenden einen etwas anderen Code. Ich habe obige Zeilen in folgendes abgeändert:
Code: Alles auswählen
$classObject = get_class($this);
$form = new $classObject($this->_rawSettings, $this->_id, []);
return $form->buildCode();
Christian