1 admin_bar.map.inc | field_ui_admin_bar_map() |
Implements hook_admin_bar_map() on behalf of Field UI module.
@todo Figure out how to fix the comment entity bundle mappings.
File
- core/
modules/ admin_bar/ admin_bar.map.inc, line 91 - Implements hook_admin_bar_map() on behalf of core modules.
Code
function field_ui_admin_bar_map() {
$map = array();
foreach (entity_get_info() as $entity_type => $entity_info) {
if (!$entity_info['fieldable']) {
continue;
}
foreach ($entity_info['bundles'] as $bundle => $bundle_info) {
// @see field_ui_menu()
if (!isset($bundle_info['admin'])) {
continue;
}
// Check access to this bundle.
$bundle_info['admin'] += array(
'access callback' => 'user_access',
'access arguments' => array('administer site configuration'),
);
if (!call_user_func_array($bundle_info['admin']['access callback'], $bundle_info['admin']['access arguments'])) {
continue;
}
if ($fields = field_info_instances($entity_type, $bundle)) {
$path = $bundle_info['admin']['path'];
$argument = array();
if (isset($bundle_info['admin']['bundle argument'])) {
$bundle_arg = arg($bundle_info['admin']['bundle argument'], $path);
$argument[$bundle_arg] = array($bundle);
}
$argument['%field_ui_menu'] = array_keys($fields);
if (!isset($map["$path/fields/%field_ui_menu"])) {
$map["$path/fields/%field_ui_menu"] = array(
'parent' => "$path/fields",
'arguments' => array(),
);
}
$map["$path/fields/%field_ui_menu"]['arguments'][] = $argument;
}
}
}
return $map;
}