diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-05-17 21:23:32 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-05-17 21:23:32 +0000 |
commit | f8fa114a8e4acb886a24573dd08240f65a9e5fd4 (patch) | |
tree | 8be99a7922037c916021f219b876153ba0955718 /includes | |
parent | 9bab7f62f09da29fdf655a1bf46c99729bab57cf (diff) | |
download | brdo-f8fa114a8e4acb886a24573dd08240f65a9e5fd4.tar.gz brdo-f8fa114a8e4acb886a24573dd08240f65a9e5fd4.tar.bz2 |
- Patch #67439 by sun, effulgentsia: #tree in hook_element_info() does not work.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/form.inc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/includes/form.inc b/includes/form.inc index 757228743..affd82b0e 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -1291,6 +1291,13 @@ function form_builder($form_id, $element, &$form_state) { // Recurse through all child elements. $count = 0; foreach (element_children($element) as $key) { + // Prior to checking properties of child elements, their default properties + // need to be loaded. + if (isset($element[$key]['#type']) && empty($element[$key]['#defaults_loaded']) && ($info = element_info($element[$key]['#type']))) { + $element[$key] += $info; + $element[$key]['#defaults_loaded'] = TRUE; + } + // Don't squash an existing tree value. if (!isset($element[$key]['#tree'])) { $element[$key]['#tree'] = $element['#tree']; @@ -1312,12 +1319,6 @@ 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; |