You are here

function fieldable_panels_panes_admin_menu_map_alter in Fieldable Panels Panes (FPP) 7

Implements hook_admin_menu_map_alter().

File

./fieldable_panels_panes.module, line 511
Maintains an entity that appears as panel pane content.

Code

function fieldable_panels_panes_admin_menu_map_alter(array &$map) {
  if (!module_exists('field_ui')) {
    return;
  }

  // Add mapping for the individual fields if the Field UI module is enabled,
  // and the mappings are not already added by field_ui_admin_menu_map().
  $bundles = array();
  $info = entity_get_info('fieldable_panels_pane');
  foreach ($info['bundles'] as $bundle_name => $bundle_info) {
    if (isset($bundle_info['admin'])) {
      $admin_path = $bundle_info['admin']['path'];

      // Fields mapping may already be supported by field_ui_admin_menu_map()
      // so only add it if it doesn't exist.
      if (isset($map["{$admin_path}/fields/%field_ui_menu"])) {
        continue;
      }
      $fields = array();
      foreach (field_info_instances('fieldable_panels_pane', $bundle_name) as $field) {
        $fields[] = $field['field_name'];
      }
      if (!empty($fields)) {
        $map["{$admin_path}/fields/%field_ui_menu"]['parent'] = "{$admin_path}/fields";
        $map["{$admin_path}/fields/%field_ui_menu"]['arguments'][] = array(
          '%ctools_export_ui' => array(
            $bundle_name,
          ),
          '%field_ui_menu' => $fields,
        );
      }
    }
  }
}