1.20.x taxonomy.admin.inc taxonomy_overview_vocabularies()

Page callback at admin/structure/taxonomy to list all available vocabularies.

File

modules/taxonomy/taxonomy.admin.inc, line 10
Admin page callbacks for the Taxonomy module.

Code

function taxonomy_overview_vocabularies() {
  $vocabularies = taxonomy_vocabulary_load_multiple(FALSE);

  $header = array(
    array('data' => t('Vocabulary name'), 'class' => array('vocabulary-name')),
    array('data' => t('Description'), 'class' => array('vocabulary-description', 'priority-low')),
    array('data' => t('Number of terms'), 'class' => array('vocabulary-term-count', 'priority-medium')),
    array('data' => t('Operations'), 'class' => array('vocabulary-operations')),
  );

  $rows = array();

  foreach ($vocabularies as $vocabulary) {
    $term_count = db_query("SELECT count(tid) FROM {taxonomy_term_data} WHERE vocabulary = :vocab", array(':vocab' => $vocabulary->machine_name))->fetchField();
    if (taxonomy_vocabulary_access(FALSE, $vocabulary)) {
      $row = array();
      $row[] = array(
        'data' => theme('label_machine_name__vocabulary', array(
          'label' => $vocabulary->name,
          'machine_name' => $vocabulary->machine_name,
        )),
        'class' => array('vocabulary-name'),
        'data-label' => t('Vocabulary name'),
      );
      $row[] = array(
        'data' => theme('taxonomy_vocabulary_description', array('vocabulary' => $vocabulary)),
        'class' => array('vocabulary-description'),
        'data-label' => t('Description'),
      );
      $row[] = array(
        'data' => $term_count,
        'class' => array('vocabulary-term-count'),
        'data-label' => t('Number of terms'),
      );
      $row[] = array(
        'data' => array(
          '#type' => 'operations',
          '#links' => _vocabulary_get_operations($vocabulary),
        ),
        'class' => array('vocabulary-operations'),
        'data-label' => t('Operations'),
      );

      $rows[] = $row;
    }
  }

  backdrop_add_css(backdrop_get_path('module', 'taxonomy') . '/css/taxonomy.css');

  $table = array(
    'header' => $header,
    'rows' => $rows,
    'empty' => t('No vocabularies available. <a href="@link">Add vocabulary</a>.', array('@link' => url('admin/structure/taxonomy/add'))),
    'attributes' => array(
      'id' => 'vocabulary-list',
      'class' => array('vocabulary-list'),
    ),
  );

  return theme('table', $table);
}