You are here

function field_extractor_views_data_alter in Field Extractor 7

Implements hook_views_data_alter().

File

views/field_extractor.views.inc, line 11
Views integration for the Field Extractor module.

Code

function field_extractor_views_data_alter(&$data) {

  // Expose generally usable entity-related fields.
  foreach (entity_get_info() as $entity_type => $info) {

    // Prepare a list of supported reference fields.
    $found_fields = array();
    foreach (field_info_instances($entity_type) as $bundle => $instances) {
      foreach ($instances as $field_name => $instance) {
        $field = field_info_field($field_name);
        if (in_array($field['type'], array(
          'commerce_product_reference',
          'entityreference',
          'taxonomy_term_reference',
        ))) {
          $found_fields[$field_name] = field_extractor_settings($field, $instance);
        }
      }
    }

    // Now add an extractor field for each reference field.
    foreach ($found_fields as $field_name => $settings) {
      $field_label = field_extractor_field_label($field_name);
      $data['views_entity_' . $entity_type]['field_extractor_' . $field_name] = array(
        'title' => t('Field extracted from entity referenced through field @field_label', array(
          '@field_label' => $field_label,
        )),
        'help' => t('Allows you to display a field with values from the referenced entities.'),
        'field' => array(
          'handler' => 'field_extractor_handler_field',
          'field_name' => $field_name,
        ),
      );
    }
  }
}