diff options
Diffstat (limited to 'modules/taxonomy.module')
-rw-r--r-- | modules/taxonomy.module | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/modules/taxonomy.module b/modules/taxonomy.module index dc0600f96..29ccd3ae0 100644 --- a/modules/taxonomy.module +++ b/modules/taxonomy.module @@ -549,6 +549,26 @@ function taxonomy_form($vid, $value = 0, $help = NULL, $name = 'taxonomy') { } /** + * Generate a set of options for selecting a term from all vocabularies. Can be + * passed to form_select. + */ +function taxonomy_form_all($free_tags = 0) { + $vocabularies = taxonomy_get_vocabularies(); + $options = array(); + foreach ($vocabularies as $vid => $vocabulary) { + if ($vocabulary->tags && !$free_tags) { continue; } + $tree = taxonomy_get_tree($vid); + $options[$vocabulary->name] = array(); + if ($tree) { + foreach ($tree as $term) { + $options[$vocabulary->name][$term->tid] = _taxonomy_depth($term->depth, '-') . $term->name; + } + } + } + return $options; +} + +/** * Return an array of all vocabulary objects. * * @param $type |