function field_ui_widget_type_options

Returns an array of widget type options for a field type.

If no field type is provided, returns a nested array of all widget types, keyed by field type human name.

5 calls to field_ui_widget_type_options()
field_ui_field_overview_form in modules/field_ui/field_ui.admin.inc
Form constructor for the 'Manage fields' form of a bundle.
field_ui_field_type_options in modules/field_ui/field_ui.admin.inc
Returns an array of field_type options.
field_ui_widget_type_form in modules/field_ui/field_ui.admin.inc
Form constructor for the widget selection form.
_field_ui_field_overview_form_validate_add_existing in modules/field_ui/field_ui.admin.inc
Validates the 'add existing field' row of field_ui_field_overview_form().
_field_ui_field_overview_form_validate_add_new in modules/field_ui/field_ui.admin.inc
Validates the 'add new field' row of field_ui_field_overview_form().

File

modules/field_ui/field_ui.admin.inc, line 1475

Code

function field_ui_widget_type_options($field_type = NULL, $by_label = FALSE) {
    $options =& drupal_static(__FUNCTION__);
    if (!isset($options)) {
        $options = array();
        $field_types = field_info_field_types();
        foreach (field_info_widget_types() as $name => $widget_type) {
            foreach ($widget_type['field types'] as $widget_field_type) {
                // Check that the field type exists.
                if (isset($field_types[$widget_field_type])) {
                    $options[$widget_field_type][$name] = $widget_type['label'];
                }
            }
        }
    }
    if (isset($field_type)) {
        return !empty($options[$field_type]) ? $options[$field_type] : array();
    }
    if ($by_label) {
        $field_types = field_info_field_types();
        $options_by_label = array();
        foreach ($options as $field_type => $widgets) {
            $options_by_label[$field_types[$field_type]['label']] = $widgets;
        }
        return $options_by_label;
    }
    return $options;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.