Drupal is a registered trademark of Dries Buytaert
cms 2.1.3 Update released for Drupal core (2.1.3)! drupal 10.5.11 Update released for Drupal core (10.5.11)! drupal 11.3.11 Update released for Drupal core (11.3.11)! drupal 11.2.13 Update released for Drupal core (11.2.13)! drupal 10.6.10 Update released for Drupal core (10.6.10)! cms 2.1.2 Update released for Drupal core (2.1.2)! drupal 11.1.10 Update released for Drupal core (11.1.10)! drupal 10.5.10 Update released for Drupal core (10.5.10)! drupal 10.4.10 Update released for Drupal core (10.4.10)! drupal 11.2.12 Update released for Drupal core (11.2.12)! drupal 11.3.10 Update released for Drupal core (11.3.10)! drupal 10.6.9 Update released for Drupal core (10.6.9)! drupal 10.6.8 Update released for Drupal core (10.6.8)! drupal 11.3.9 Update released for Drupal core (11.3.9)! drupal 11.3.8 Update released for Drupal core (11.3.8)! drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)!

vocabulary_catalog

9 sites No security coverage
View on drupal.org

The Vocabulary Catalog is a taxonomy display suite for Drupal 10 and 11. It provides a highly configurable block system to display vocabularies and their terms with real-time entity reference counts, supporting everything from standard Nodes to Media, Commerce Products, and custom entities.

Key Features

  • Universal Entity Counting: Go beyond nodes. Count references from Media, Commerce, Users, or any entity type using entity_reference fields.
  • Multi-Layout Engine: Switch between Vertical Lists, Responsive Card Grids, Collapsible Accordions, or Horizontal Tabs with a single click.
  • Granular Filtering: Filter counts by specific content bundles (e.g., only count "Article" nodes) and hide terms that fall below a minimum count threshold.
  • Advanced Tree Logic: Support for deep nesting with configurable max-depth limits, weight-based sorting, and alphabetical or count-based ordering.
  • Interactive Toolset: Integrated AJAX live search for instant client-side filtering and one-click CSV exporting for data analysis.
  • Developer Friendly: Full REST API support, comprehensive Twig theme suggestions, and CSS Custom Properties (Variables) for easy styling.

Installation

Install the module via Composer to automatically manage dependencies and library definitions:

composer require drupal/vocabulary_catalog

Enable the module using Drush:

drush en vocabulary_catalog -y

Configuration & Usage

  1. Placement: Navigate to Structure » Block Layout and place the "Vocabulary Catalog" block in your desired region.
  2. Selection: Choose the vocabularies you wish to display. The block supports multiple vocabularies simultaneously.
  3. Entity Settings: Under the Entity Counting tab, select the entity types you want to track. If selecting "Node," you can further refine the count by Content Type.
  4. Permissions: Manage access at People » Permissions:
    • Administer vocabulary catalog: Configure block settings.
    • Export vocabulary catalog: Download CSV data.
    • View unpublished vocabulary catalog terms: Visibility of status = 0 terms.

Architecture & Performance

The module is engineered for high-performance enterprise environments where taxonomy trees can scale to thousands of terms:

  • Smart Cache Invalidation: Uses a sophisticated cache tag system (vocabulary_catalog_counts and taxonomy_term_list:[VID]) to ensure data is only recalculated when terms or referenced entities change.
  • Optimized Queries: Utilizes the taxonomy_index for high-speed node counting, falling back to optimized Entity Queries for non-core entity types like Media or Commerce.
  • Decoupled Ready: The REST API endpoint allows you to pull the entire catalog structure into headless applications (React/Next.js) with clean, markup-free JSON.

Theming & Customization

The module provides granular template suggestions and CSS variables for seamless integration:

  • Twig Templates: Override the base layout using vocabulary-catalog-block--[block-id].html.twig.
  • CSS Variables: Customize the visual identity without writing complex overrides:
    :root {
      --vc-color-primary: #007bff;
      --vc-color-badge-bg: #e9ecef;
      --vc-radius: 8px;
    }

REST API Endpoint

Access the catalog data programmatically via the following route:

GET /api/vocabulary-catalog/{block_id}?vocabularies=tags,categories

The API supports filtering by min_count, max_depth, and sort_by parameters, returning a structured JSON tree of terms and metadata.

Similar Projects

  • Facets: Ideal for search-driven filtering, whereas Vocabulary Catalog is designed for dedicated navigation and landing pages.
  • Taxonomy Menu: Converts vocabularies into Drupal Menu items; our module offers deeper entity-counting logic and modern AJAX filtering.
  • Term Condition: Provides visibility controls, while Vocabulary Catalog focuses on visual presentation.

Support & Contribution

If you encounter bugs, need assistance with complex entity reference setups, or have ideas for new layouts—such as a "Masonry" grid or "Tag Cloud" view—please contribute to the official issue queue.

Activity

Total releases
2
First release
Feb 2026
Latest release
3 months ago
Release cadence
0 days
Stability
50% stable

Releases

Version Type Release date
2.0.0 Stable Feb 20, 2026
2.0.x-dev Dev Feb 20, 2026