From f8fa114a8e4acb886a24573dd08240f65a9e5fd4 Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Mon, 17 May 2010 21:23:32 +0000 Subject: [PATCH] - Patch #67439 by sun, effulgentsia: #tree in hook_element_info() does not work. --- includes/form.inc | 13 +++++++------ modules/system/system.module | 1 - 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/includes/form.inc b/includes/form.inc index 75722874328b..affd82b0e30b 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; diff --git a/modules/system/system.module b/modules/system/system.module index 621c7e1462e6..f50d6f1c4eb3 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -384,7 +384,6 @@ function system_element_info() { ); $types['checkboxes'] = array( '#input' => TRUE, - '#tree' => TRUE, '#process' => array('form_process_checkboxes'), '#theme_wrappers' => array('checkboxes'), '#pre_render' => array('form_pre_render_conditional_form_element'), -- GitLab