function views_fieldsets_rearrange_form_submit in Views fieldsets 7
Same name and namespace in other branches
- 7.2 views_fieldsets.module \views_fieldsets_rearrange_form_submit()
Submit handler for views_ui_rearrange_form().
1 string reference to 'views_fieldsets_rearrange_form_submit'
File
- ./
views_fieldsets.module, line 415 - Hooks, helpers and theming for the Views Fieldsets module.
Code
function views_fieldsets_rearrange_form_submit($form, &$form_state) {
$values =& $form_state['values'];
$view = $form_state['view'];
$display_handler = $view->display_handler;
$fields = $display_handler
->get_option('fields');
// Sort input by (hierarchical) weight.
uasort($values, 'drupal_sort_weight');
// Create simple hierarchy (field => parent) from sorted input.
$fieldsets = array();
foreach ($values as $field_name => $stuff) {
if (isset($fields[$field_name])) {
$fieldsets[$field_name] = $stuff['hierarchy'];
}
}
// Create advanced hierarchy from sorted simple hierarchy.
$fieldsets = views_fieldsets_hierarchy_info($display_handler, $fieldsets);
// Sort fields the Views way (no indentations/parents/relationships).
// Why? For Views' actual submit handler (which is the one after this one).
foreach ($fieldsets['total_weights'] as $weight => $field_name) {
$values[$field_name]['weight'] = $weight;
}
// Create simple hierarchy from new sort (sorted the Views way, with parents).
$hierarchy = $children = array();
foreach ($fieldsets['fields'] as $field_name => $field) {
// $hierarchy[$field_name] = $fields[$field_name]['views_fieldsets_parent'] = $field->info->parent;
// And create hierarchy per Views Fieldset field.
if (views_fieldsets_field_is_fieldset($field_name, $display_handler)) {
$fields[$field_name]['children'] = !empty($field->children) ? array_keys($field->children) : array();
}
}
$display_handler
->set_option('fields', $fields);
}