diff options
author | Neil Drumm <drumm@3064.no-reply.drupal.org> | 2006-10-20 20:55:03 +0000 |
---|---|---|
committer | Neil Drumm <drumm@3064.no-reply.drupal.org> | 2006-10-20 20:55:03 +0000 |
commit | 2ac86c8862ddbe3cd4435708d61842caa2ea7960 (patch) | |
tree | 8438622ce441ce0dc223f7f7907cfee23a5c8c52 | |
parent | 8306444494c9fd69dc3df04904fe9a2b1f56e39f (diff) | |
download | brdo-2ac86c8862ddbe3cd4435708d61842caa2ea7960.tar.gz brdo-2ac86c8862ddbe3cd4435708d61842caa2ea7960.tar.bz2 |
#24023 by chx. Allow multiple select options with the same value and implement it for taxonomy selection.
-rw-r--r-- | includes/form.inc | 3 | ||||
-rw-r--r-- | modules/taxonomy/taxonomy.module | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/includes/form.inc b/includes/form.inc index d0a72c9b9..76ab0000f 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -890,6 +890,9 @@ function form_select_options($element, $choices = NULL) { $options .= form_select_options($element, $choice); $options .= '</optgroup>'; } + elseif (is_object($choice)) { + $options .= form_select_options($element, $choice->option); + } else { $key = (string)$key; if ($value_valid && ($element['#value'] == $key || ($value_is_array && in_array($key, $element['#value'])))) { diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index e75b9f08c..86795cae5 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -1101,7 +1101,9 @@ function _taxonomy_term_select($title, $name, $value, $vocabulary_id, $descripti if ($tree) { foreach ($tree as $term) { if (!in_array($term->tid, $exclude)) { - $options[$term->tid] = str_repeat('-', $term->depth) . $term->name; + $choice = new stdClass(); + $choice->option = array($term->tid => str_repeat('-', $term->depth) . $term->name); + $options[] = $choice; } } if (!$blank && !$value) { |