diff options
Diffstat (limited to 'includes/form.inc')
-rw-r--r-- | includes/form.inc | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/includes/form.inc b/includes/form.inc index 4b8972a01..5c3b012fe 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -1237,7 +1237,7 @@ function form_builder($form_id, $element, &$form_state) { $element['#processed'] = FALSE; // Use element defaults. - if (isset($element['#type']) && ($info = element_info($element['#type']))) { + if (isset($element['#type']) && empty($element['#defaults_loaded']) && ($info = element_info($element['#type']))) { // Overlay $info onto $element, retaining preexisting keys in $element. $element += $info; $element['#defaults_loaded'] = TRUE; @@ -1315,6 +1315,12 @@ function form_builder($form_id, $element, &$form_state) { $array_parents[] = $key; $element[$key]['#array_parents'] = $array_parents; + // Prior to handling #weight, default element properties need to be applied. + if (isset($element[$key]['#type']) && empty($element[$key]['#defaults_loaded']) && ($info = element_info($element[$key]['#type']))) { + $element[$key] += $info; + $element[$key]['#defaults_loaded'] = TRUE; + } + // Assign a decimal placeholder weight to preserve original array order. if (!isset($element[$key]['#weight'])) { $element[$key]['#weight'] = $count/1000; @@ -2429,6 +2435,23 @@ function form_process_checkboxes($element) { } /** + * Processes a form actions container element. + * + * @param $element + * An associative array containing the properties and children of the + * form actions container. + * @param $form_state + * The $form_state array for the form this element belongs to. + * + * @return + * The processed element. + */ +function form_process_actions($element, &$form_state) { + $element['#attributes']['class'][] = 'form-actions'; + return $element; +} + +/** * Processes a container element. * * @param $element |