summaryrefslogtreecommitdiff
path: root/includes/form.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/form.inc')
-rw-r--r--includes/form.inc25
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