1 field_ui.admin.inc | field_ui_widget_type_options($field_type = NULL, $by_label = FALSE) |
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.
File
- core/
modules/ field_ui/ field_ui.admin.inc, line 1518 - Admin page callbacks for the Field UI module.
Code
function field_ui_widget_type_options($field_type = NULL, $by_label = FALSE) {
$options = &backdrop_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($options[$widget_field_type])) {
asort($options[$widget_field_type]);
}
}
}
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;
}