summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Drumm <drumm@3064.no-reply.drupal.org>2006-10-20 20:55:03 +0000
committerNeil Drumm <drumm@3064.no-reply.drupal.org>2006-10-20 20:55:03 +0000
commit2ac86c8862ddbe3cd4435708d61842caa2ea7960 (patch)
tree8438622ce441ce0dc223f7f7907cfee23a5c8c52
parent8306444494c9fd69dc3df04904fe9a2b1f56e39f (diff)
downloadbrdo-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.inc3
-rw-r--r--modules/taxonomy/taxonomy.module4
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) {