function field_ui_fields_list in Drupal 7
Menu callback; lists all defined fields for quick reference.
1 string reference to 'field_ui_fields_list'
- field_ui_menu in modules/
field_ui/ field_ui.module - Implements hook_menu().
File
- modules/
field_ui/ field_ui.admin.inc, line 11 - Administrative interface for custom field type creation.
Code
function field_ui_fields_list() {
$instances = field_info_instances();
$field_types = field_info_field_types();
$bundles = field_info_bundles();
$modules = system_rebuild_module_data();
$header = array(
t('Field name'),
t('Field type'),
t('Used in'),
);
$rows = array();
foreach ($instances as $entity_type => $type_bundles) {
foreach ($type_bundles as $bundle => $bundle_instances) {
foreach ($bundle_instances as $field_name => $instance) {
$field = field_info_field($field_name);
// Initialize the row if we encounter the field for the first time.
if (!isset($rows[$field_name])) {
$rows[$field_name]['class'] = $field['locked'] ? array(
'menu-disabled',
) : array(
'',
);
$rows[$field_name]['data'][0] = $field['locked'] ? t('@field_name (Locked)', array(
'@field_name' => $field_name,
)) : $field_name;
$module_name = $field_types[$field['type']]['module'];
$rows[$field_name]['data'][1] = $field_types[$field['type']]['label'] . ' ' . t('(module: !module)', array(
'!module' => $modules[$module_name]->info['name'],
));
}
// Add the current instance.
$admin_path = _field_ui_bundle_admin_path($entity_type, $bundle);
$rows[$field_name]['data'][2][] = $admin_path ? l($bundles[$entity_type][$bundle]['label'], $admin_path . '/fields') : $bundles[$entity_type][$bundle]['label'];
}
}
}
foreach ($rows as $field_name => $cell) {
$rows[$field_name]['data'][2] = implode(', ', $cell['data'][2]);
}
if (empty($rows)) {
$output = t('No fields have been defined yet.');
}
else {
// Sort rows by field name.
ksort($rows);
$output = theme('table', array(
'header' => $header,
'rows' => $rows,
));
}
return $output;
}