tricks icon indicating copy to clipboard operation
tricks copied to clipboard

Yform: Selectdefinition (kommasepariert) auch im Modul auszulesen, wenn ich dieselben Werte wie im Backend angezeigt bekommen möchte

Open cukabeka opened this issue 7 years ago • 2 comments

habe ich in YFORM eine Möglichkeit, die Selectdefinition (kommasepariert) auch im Modul auszulesen, wenn ich dieselben Werte wie im Backend angezeigt bekommen möchte? monatlich=monthly,unregelmäßig=occasional Hier im Beispiel steht in der DB "monthly", ich möchte aber gerne das "monatlich" aus der Definition haben. Geht das?

rex_yform_manager_table::get('my_table')->getValueField('my_field')->getElement('options') ich lese es aus dem Cache! :slightly_smiling_face:

Mir hat übrigens noch ein rex::getTablePrefix() geholfen, um das sauber zu machen, also

rex_yform_manager_table::get(rex::getTablePrefix().'my_table')->getValueField('my_field')->getElement('options')

cukabeka avatar Sep 04 '18 21:09 cukabeka

Um den erhaltenen String nun verwertbar in ein Array umzuformen, bringt YFORM auch eine Funktion mit: rex_yform_value_abstract::getArrayFromString((rex_yform_manager_table::get(rex::getTablePrefix().rex::getProperty('current_table'))->getValueField('my_field')->getElement('options')));

cukabeka avatar Sep 05 '18 23:09 cukabeka

Nochmal angepasst, da getArrayFromString nicht mehr statisch aufgerufen werden sollte. (YForm Version: 3.1.1)

Für das neue Choice Feld würde der Code so aussehen:

$choice = new rex_yform_value_choice();
$options = $choice->getArrayFromString((rex_yform_manager_table::get(rex::getTable('current_table'))->getValueField('my_field')->getElement('choices')));

pschuchmann avatar May 08 '19 12:05 pschuchmann