You are here

function views_fieldsets_hierarchy_info in Views fieldsets 7

Same name and namespace in other branches
  1. 7.2 views_fieldsets.module \views_fieldsets_hierarchy_info()

Helper to ...

4 calls to views_fieldsets_hierarchy_info()
views_fieldsets_form_views_ui_rearrange_form_alter in ./views_fieldsets.module
Implements hook_form_FORM_ID_alter() for views_ui_rearrange_form().
views_fieldsets_preprocess_views_view_fields__2 in ./views_fieldsets.module
Implements template_preprocess_views_view_fields().
views_fieldsets_rearrange_form_submit in ./views_fieldsets.module
Submit handler for views_ui_rearrange_form().
views_fieldsets_views_ui_display_tab_alter in ./views_fieldsets.module
Implements hook_views_ui_display_tab_alter().

File

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

Code

function views_fieldsets_hierarchy_info($display_handler, $fieldsets, $get_parent = '', $depth = 0) {
  $hierarchy = array();
  foreach ($fieldsets as $field_name => $parent) {
    if ($get_parent == $parent) {
      $hierarchy[$field_name] = (object) array(
        'info' => (object) array(
          'fieldset_weight' => count($hierarchy),
          'total_weight' => 0,
          'depth' => $depth,
          'parent' => $parent ? $parent : '',
        ),
      );
      if (views_fieldsets_field_is_fieldset($field_name, $display_handler)) {
        $hierarchy[$field_name]->children = views_fieldsets_hierarchy_info($display_handler, $fieldsets, $field_name, $depth + 1);
      }
    }
  }
  if (!$depth) {
    $fields = array();
    $weight = 0;
    views_fieldsets_hierarchy_total_weights($hierarchy, $fields, $weight);
    return array(
      'total_weights' => array_keys($fields),
      'fields' => $fields,
      'tree' => $hierarchy,
    );
  }
  return $hierarchy;
}