You are here

function grid_field_formatter_field_attach_view_alter in Grid Field Formatter 7

Implements hook_field_attach_view_alter().

File

./grid_field_formatter.module, line 150
Module that gives you a field formatter, which enables field layout with Grid contents to a destination.

Code

function grid_field_formatter_field_attach_view_alter(&$output, $context) {
  foreach (element_children($output) as $field_name) {
    $enabled_field_formatter = array();
    $enabled_field_formatter = grid_field_formatter_get_enabled_field_formatter();
    $element = $output[$field_name];
    $instance = field_info_instance($element['#entity_type'], $field_name, $element['#bundle']);
    $display = isset($instance['display'][$context['view_mode']]) ? $instance['display'][$context['view_mode']] : $instance['display']['default'];
    $settings = $display['settings'];
    $type = $display['type'];
    $field = field_info_field($field_name);

    // Continue when no Grid Field Formatter settings were found.
    if (!isset($settings['grid_field_formatter']) || empty($settings['grid_field_formatter']['grid_enable']) || !in_array($type, $enabled_field_formatter)) {
      continue;
    }

    // Override field theme with grid_field_formatter.
    $output[$field_name]['#theme'] = 'grid_field_formatter';

    // Columns is a property so it should start with a #, see drupal_render.
    $output[$field_name]['#columns'] = isset($settings['grid_field_formatter']['columns']) ? $settings['grid_field_formatter']['columns'] : 1;
  }
}