Für die Addon-Entwicklung wollte ich noch wissen, wie den die Syntax von XForm in der Erstellung eines Backend-Formulars heisst. Das ist zwar nicht mehr XForm; trotzdem brauchts mans bei Erstellung eines Addons mit formularbefüllter Tabelle im Frontend, das vom Redaktor dann aber editierbar sein soll (z.B. für Kommentare, Mitgliederanmeldungen, Eventagendas etc.). Hier was ich zum Laufen gebracht habe als select_sql
Pipe:
Code: Alles auswählen
select_sql|label|Bezeichnung:|SELECT row1 AS id, row1 AS name FROM rex_table ORDER BY row1
im Frontend/Modul direkt via PHP:
Code: Alles auswählen
$xform->setValueField('select_sql', array("label","Bezeichnung","SELECT row1 AS id, row1 AS name FROM rex_table ORDER BY row1","","","1","bitte wählen","0"));
im Backend, z.B. für Formular-Ausgabe in einer Addon-Page:
Code: Alles auswählen
$field = &$form->addSelectField('label');
$field->setLabel($I18N->msg('prefix_label'));
$select = &$field->getSelect();
select->setSize(1);
$select->addOption($I18N->msg('prefix_pleasechoose'),0);
$query = 'SELECT row1 AS label, row1 as id FROM rex_table ORDER BY row1';
$select->addSqlOptions($query);
$select->setAttribute('style','width: 150px');
Bzw. mit Concat, wenn man gleich mehrere Werte braucht, um Z.B. einen Serienbrief-Export vorzubereiten oder ähnliches:
Code: Alles auswählen
$field = &$form->addSelectField('label');
$field->setLabel($I18N->msg('prefix_label'));
$select = &$field->getSelect();
select->setSize(1);
$select->addOption($I18N->msg('prefix_pleasechoose'),0);
$query = 'SELECT CONCAT(row1, ", ", row2) AS label, CONCAT(row1, ", ", row2) as id FROM rex_table ORDER BY row1';
$select->addSqlOptions($query);
$select->setAttribute('style','width: 150px');
Achtung: doppelte Anführungszeichen sind entscheidend.
Hinweis: redaxo/include/classes/class.rex_form.inc.php kann Hinweise geben.