You are here

function views_fieldsets_form_views_ui_rearrange_form_alter in Views fieldsets 7.2

Same name and namespace in other branches
  1. 8.3 views_fieldsets.module \views_fieldsets_form_views_ui_rearrange_form_alter()
  2. 7 views_fieldsets.module \views_fieldsets_form_views_ui_rearrange_form_alter()

Implements hook_form_FORM_ID_alter() for views_ui_rearrange_form().

File

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

Code

function views_fieldsets_form_views_ui_rearrange_form_alter(&$form, &$form_state, $form_id = 'views_ui_rearrange_form') {
  $actions = array_filter(explode('/', $form['#action']));
  if (!isset($form['fields']) || 'field' != end($actions)) {
    return;
  }
  $view = $form_state['view'];
  $display_handler = $view->display_handler;
  $fields = $display_handler
    ->get_option('fields');
  $fieldsets = views_fieldsets_field_options_to_fieldsets_1d($fields);
  $hierarchy = views_fieldsets_hierarchy_info($display_handler, $fieldsets);
  $fields = $hierarchy['fields'];

  // Add tabledrag related elements
  foreach (element_children($form['fields']) as $field_name) {
    if (views_fieldsets_field_is_fieldset($field_name, $display_handler)) {
      $form['fields'][$field_name]['name']['#markup'] = '<strong>' . $form['fields'][$field_name]['name']['#markup'] . '</strong>';
    }
    $form['fields'][$field_name]['weight']['#size'] = 3;
    $form['fields'][$field_name]['field_name'] = array(
      '#type' => 'hidden',
      '#value' => $field_name,
      '#attributes' => array(
        'class' => array(
          'field-name',
        ),
      ),
    );
    $form['fields'][$field_name]['hierarchy'] = array(
      '#type' => 'hidden',
      '#default_value' => !empty($fields[$field_name]->info->parent) ? $fields[$field_name]->info->parent : '',
      '#attributes' => array(
        'class' => array(
          'hierarchy',
        ),
      ),
      '#size' => 5,
    );
    $form['fields'][$field_name]['depth'] = array(
      '#type' => 'hidden',
      '#default_value' => !empty($fields[$field_name]->info->depth) ? $fields[$field_name]->info->depth : '',
      '#attributes' => array(
        'class' => array(
          'depth',
        ),
      ),
      '#size' => 5,
    );
  }

  // To add TableDrag and visual specialties.
  $form['#theme'] = 'views_fieldsets_rearrange_form';

  // To be used in the theme function (for views_fieldsets_field_is_fieldset()).
  $form['#display_handler'] = $display_handler;
  array_unshift($form['buttons']['submit']['#submit'], 'views_fieldsets_rearrange_form_submit');
}