You are here

function field_group_field_group_build_pre_render_alter in Field Group 7.2

Same name and namespace in other branches
  1. 8.3 field_group.module \field_group_field_group_build_pre_render_alter()
  2. 8 field_group.module \field_group_field_group_build_pre_render_alter()
  3. 7 field_group.module \field_group_field_group_build_pre_render_alter()

Implements hook_field_group_build_pre_render_alter().

Parameters

Array $elements by address.:

File

./field_group.module, line 992
Fieldgroup module.

Code

function field_group_field_group_build_pre_render_alter(&$element) {

  // Someone is doing a node view, in a node view. Reset content.
  // TODO Check if this breaks something else.
  if (isset($element['#node']->content) && count($element['#node']->content) > 0) {
    $element['#node']->content = array();
  }
  $display = isset($element['#view_mode']);
  $groups = array_keys($element['#groups']);

  // Dish the fieldgroups with no fields for non-forms.
  if ($display) {
    field_group_remove_empty_display_groups($element, $groups);
  }
  else {

    // Fix the problem on forms with additional settings.
    field_group_remove_empty_form_groups('form', $element, $groups, $element['#groups'], $element['#entity_type']);
  }

  // Add the default field_group javascript and stylesheet.
  $element['#attached']['js'][] = drupal_get_path('module', 'field_group') . '/field_group.js';
  $element['#attached']['css'][] = drupal_get_path('module', 'field_group') . '/field_group.css';

  // Move additional settings to the last multipage pane if configured that way.
  // Note that multipages MUST be in the root of the form.
  foreach (element_children($element) as $name) {
    if (isset($element[$name]['#type']) && $element[$name]['#type'] == 'multipage' && isset($element['additional_settings'])) {
      $parent_group = $element['#groups'][$name];
      $move_additional = isset($parent_group->format_settings['instance_settings']['move_additional']) ? $parent_group->format_settings['instance_settings']['move_additional'] : 1;
      $last_pane = NULL;
      foreach (element_children($element[$name], TRUE) as $pane) {
        $last_pane = $pane;
      }
      $element[$name][$last_pane]['additional_settings'] = $element['additional_settings'];
      unset($element['additional_settings']);
    }
  }
}