Same name and namespace in other branches
  1. 4.6.x modules/taxonomy.module \taxonomy_get_vocabularies()
  2. 4.7.x modules/taxonomy.module \taxonomy_get_vocabularies()
  3. 6.x modules/taxonomy/taxonomy.module \taxonomy_get_vocabularies()
  4. 7.x modules/taxonomy/taxonomy.module \taxonomy_get_vocabularies()

Return an array of all vocabulary objects.

Parameters

$type: If set, return only those vocabularies associated with this node type.

2 calls to taxonomy_get_vocabularies()
taxonomy_form_all in modules/taxonomy/taxonomy.module
Generate a set of options for selecting a term from all vocabularies.
taxonomy_overview_vocabularies in modules/taxonomy/taxonomy.module
List and manage vocabularies.

File

modules/taxonomy/taxonomy.module, line 659
Enables the organization of content into categories.

Code

function taxonomy_get_vocabularies($type = NULL) {
  if ($type) {
    $result = db_query(db_rewrite_sql("SELECT v.vid, v.*, n.type FROM {vocabulary} v LEFT JOIN {vocabulary_node_types} n ON v.vid = n.vid WHERE n.type = '%s' ORDER BY v.weight, v.name", 'v', 'vid'), $type);
  }
  else {
    $result = db_query(db_rewrite_sql('SELECT v.*, n.type FROM {vocabulary} v LEFT JOIN {vocabulary_node_types} n ON v.vid = n.vid ORDER BY v.weight, v.name', 'v', 'vid'));
  }
  $vocabularies = array();
  $node_types = array();
  while ($voc = db_fetch_object($result)) {
    $node_types[$voc->vid][] = $voc->type;
    unset($voc->type);
    $voc->nodes = $node_types[$voc->vid];
    $vocabularies[$voc->vid] = $voc;
  }
  return $vocabularies;
}