Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). Varbase Media Header 9.2.1 Minor update available for module varbase_media_header (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Content Translation Redirect Module content_translation_redirect crossed 1,000 active installs.

This module allows you to customize taxonomy term pages. You can alter the content of these pages for specific vocabularies or terms by subscribing to events and writing custom code.

The Taxonomy Custom Controller module is a default Taxonomy Term entity canonical controller override with event.

It will help you to subscribe to event and change content of term page. You can change it for specific vocabularies, or specific term with conditions you want!

USAGE

Simple example:

/**
 * Provides subscriber for term page build.
 */
class TermPageBuildSubscriber implements EventSubscriberInterface {

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    return [
      TaxonomyCustomControllerEvents::PAGE_BUILD => 'onTermPageBuild',
    ];
  }

  /**
   * Reacts on term page build.
   *
   * @param \Drupal\taxonomy_custom_controller\Event\TermPageBuildEvent $event
   *   The event.
   */
  public function onTermPageBuild(TermPageBuildEvent $event) {
    $taxonomy_term = $event->getTaxonomyTerm();
    if ($taxonomy_term->bundle() != 'tags') {
      return;
    }

    // Adds term description on top of the default views.
    $build = [];
    if (!$taxonomy_term->get('description')->isEmpty()) {
      $build['description'] = [
        '#type' => 'container',
        '#attributes' => [
          'class' => ['wrapper-for-custom-added-description'],
        ],
        'description' => $taxonomy_term->get('description')->view(),
      ];
    }
    $build['view'] = views_embed_view('taxonomy_term', 'page_1', $taxonomy_term->id());
    $event->setBuildArray($build);
  }

}

See taxonomy_custom_controller_example module for full example.

SIMILAR PROJECTS

  • TVI — does the same thing. The main difference. With TVI you can use only Views and configure it via UI. With TCC you can do whatever you want, but you need to write Event Subscriber.

Activity

Total releases
1
First release
Jan 2025
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 1
Maintenance
Dormant

Releases

Version Type Release date
8.x-1.6 Stable Jan 28, 2025