diff --git a/core/modules/filter/filter.admin.inc b/core/modules/filter/filter.admin.inc index f147766..fc7c705 100644 --- a/core/modules/filter/filter.admin.inc +++ b/core/modules/filter/filter.admin.inc @@ -249,6 +249,7 @@ function filter_admin_format_form($form, &$form_state, $format) { ); foreach ($filter_info as $name => $filter) { $form['filters']['order'][$name]['#attributes']['class'][] = 'draggable'; + $form['filters']['order'][$name]['#tree'] = TRUE; $form['filters']['order'][$name]['#weight'] = $filters[$name]->weight; $form['filters']['order'][$name]['filter'] = array( '#markup' => $filter['title'], @@ -263,6 +264,9 @@ function filter_admin_format_form($form, &$form_state, $format) { '#attributes' => array('class' => array('filter-order-weight')), ); } + // Make sure filters are in the correct order, since filter_get_filters() + // doesn't return sorted filters. + uasort($form['filters']['order'], 'element_sort'); // Filter settings. $form['filter_settings'] = array(