Allows to populate drop-down, radio- or checkbox list fields, which have been added with
core:onExtendUserForm event.
Usually you do not need to use this event for fields which represent
data relations. But if you want a standard
field (corresponding an integer-typed database column, for example), to be rendered as a drop-down list, you should
handle this event.
The event handler should accept 2 parameters - the field name and a current field value. If the current
field value is -1, the handler should return an array containing a list of options. If the current
field value is not -1, the handler should return a string (label), corresponding the value.
public function subscribeEvents()
{
Backend::$events->addEvent('core:onExtendUserModel', $this, 'extend_user_model');
Backend::$events->addEvent('core:onExtendUserForm', $this, 'extend_user_form');
Backend::$events->addEvent('core:onGetUserFieldOptions', $this, 'get_user_field_options');
}
public function extend_user_model($order, $context)
{
$order->define_column('x_gender', 'Gender');
}
public function extend_user_form($order, $context)
{
$order->add_form_field('x_gender')->tab('Contacts');
}
public function get_user_field_options($field_name, $current_key_value)
{
if ($field_name == 'x_gender')
{
$options = array(
'u' => 'Unknown',
'f' => 'Female',
'm' => 'Male'
);
if ($current_key_value == -1)
return $options;
if (array_key_exists($current_key_value, $options))
return $options[$current_key_value];
}
}