You are here

function views_fieldsets_preprocess_views_view_fields__2 in Views fieldsets 7

Implements template_preprocess_views_view_fields().

See also

views_fieldsets_preprocess_views_view_fields().

1 call to views_fieldsets_preprocess_views_view_fields__2()
views_fieldsets_preprocess_views_view_fields in ./views_fieldsets.module
Implements template_preprocess_views_view_fields().

File

./views_fieldsets.module, line 38
Hooks, helpers and theming for the Views Fieldsets module.

Code

function views_fieldsets_preprocess_views_view_fields__2(&$vars) {
  $view = $vars['view'];
  $display_handler = $view->display_handler;
  $fields = $display_handler
    ->get_option('fields');
  $fieldsets = views_fieldsets_field_options_to_fieldsets_1d($fields);
  if ($fieldsets && array_filter($fieldsets)) {

    // Fix separators.
    $last_in_fieldset = FALSE;
    foreach ($vars['fields'] as $id => $object) {
      $in_fieldset = views_fieldsets_field_is_in_fieldset($id, $display_handler);
      if (@$object->separator && !$in_fieldset && $last_in_fieldset) {
        $object->separator = '';
      }
      $last_in_fieldset = $in_fieldset;
    }

    // Add collapse.js for actual fieldsets.
    drupal_add_js('misc/collapse.js');
    drupal_add_js('misc/form.js');
    $hierarchy = views_fieldsets_hierarchy_info($display_handler, $fieldsets);
    $vars['hierarchy'] = $hierarchy;
    $new_fields = array();
    foreach ($hierarchy['tree'] as $field_name => $info_field) {
      if (isset($vars['fields'][$field_name])) {
        $views_field = $vars['fields'][$field_name];
        if (views_fieldsets_field_is_fieldset($field_name, $display_handler)) {

          // Save fieldset field name for next recursion.
          $sub_vars = $vars;
          $sub_vars['fieldset_field'] = $field_name;

          // Render fieldset + children.
          $content = views_fieldsets_render__simple($info_field->children, $sub_vars);
          $views_field->content = $content;
          $views_field->label_html = $views_field->wrapper_prefix = $views_field->wrapper_suffix = '';
          $new_fields[$field_name] = $views_field;
        }
        else {

          // Render single field.
          $new_fields[$field_name] = $views_field;
        }
      }
    }
    $vars['fields'] = $new_fields;
  }
}