function _field_info_collate_fields

_field_info_collate_fields($reset = FALSE)

Collates all information on existing fields and instances.

Deprecated. This function is kept to ensure backwards compatibility, but has a serious performance impact, and should be absolutely avoided. See http://drupal.org/node/1915646.

Use the regular field_info_*() API functions to access the information, or field_info_cache_clear() to clear the cached data.

Related topics

File

modules/field/field.info.inc, line 76
Field Info API, providing information about available fields and field types.

Code

function _field_info_collate_fields($reset = FALSE) {
  if ($reset) {
    _field_info_field_cache()->flush();
    return;
  }

  $cache = _field_info_field_cache();

  // Collect fields, and build the array of IDs keyed by field_name.
  $fields = $cache->getFields();
  $field_ids = array();
  foreach ($fields as $id => $field) {
    if (!$field['deleted']) {
      $field_ids[$field['field_name']] = $id;
    }
  }

  // Collect extra fields for all entity types.
  $extra_fields = array();
  foreach (field_info_bundles() as $entity_type => $bundles) {
    foreach ($bundles as $bundle => $info) {
      $extra_fields[$entity_type][$bundle] = $cache->getBundleExtraFields($entity_type, $bundle);
    }
  }

  return array(
    'fields' => $fields,
    'field_ids' => $field_ids,
    'instances' => $cache->getInstances(),
    'extra_fields' => $extra_fields,
  );
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!field!field.info.inc/function/_field_info_collate_fields/7.x