Overview

The Drupal WxT distribution is designed for organizations that must meet accessibility and bilingualism standards. It attempts to integrate with the design patterns found in the WET-BOEW and Canada.ca design system, including the mandatory Content and Information Architecture (C&IA) Specification for the Government of Canada.

To make working with Drupal WxT easier, there are potentially three ways you can approach it.

Distribution

The Drupal WxT distribution method stands out as a preferred choice for web developers and organizations seeking a robust web development solution.

Unlike a standalone installation, the distribution provides a comprehensive package of features and workflows that have been vetted and tested by the Drupal WxT community based on real world use cases.

This means users can leverage a well-established framework with proven capabilities, saving time and effort in development while ensuring stability and reliability.

By opting for the distribution method, teams gain access to shared resources, ongoing support, and a community-driven ecosystem, hopefully helping to build accessible, and bilingual web experiences with confidence.

Benefits

  • Many canadian departments and organizations have contributed features and improvements
  • Has received several security and accessibility audits to the codebase and markup
  • Will stay on top of security releases within a maximum of 72 hours of posting
  • Creation of many plugins in order to more fully integrate with the WET-BOEW and Canada.ca design system
  • Best effort open source support from a community of developers
  • Provides upgrade paths for all supported components
  • Additional functionality is provided by WxT Extend modules which target a specific feature
  • Stays on top of performance related issues taking into account both MySQL and PostgreSQL

Components

ComponentFeaturesMachine NameType
WxT (Installation Profile)
  • Provides a custom installation profile
wxtDistribution
WxT Bootstrap (Theme)
  • Provides Templates to adhere to the WET-BOEW and Canada.ca Design System and C&IA Specification
wxt_bootstrapStandalone
WxT Library (Module)
  • Integrates Drupal with WET-BOEW Framework Assets (CSS/JS)
wxt_libraryStandalone
WxT Admin (Module)
  • Provides the default configuration and various helper methods for administrative tasks
wxt_adminDistribution
WxT Core (Module)
  • Provides the core configuration and all update related hooks for WxT as a whole
wxt_coreDistribution
WxT Extend (Module)
  • Provides 40+ modules where many target a specific feature within the WET-BOEW and Canada.ca design system:
    • Archived (#3097228): Creates an archived alert block triggered by a checkbox field on a entity
    • Blocks: Creates custom blocks of type Basic, Search, and Spotlight
    • Blog (#3306505): Creates a default Blog listing layout page
    • Book (#3219195): Configures book module to support GC Subway functionality
    • Breadcrumb (#3203791): Configures breadcrumb and related functionality
    • Carousel (#3313685): Creates custom block of type Carousel
    • Comment: Creates comment functionality for entities
    • Editor (#3255971): Provides CKEditor 4/5 integration along with several plugins (WET Alert, Panels)
    • Font Awesome: Adds Font Awesome support
    • Group: Provides Group functionality and mappings to all departments through Migrate
    • Landing Page: Provides Landing Page related functionality
    • Layout: Provides Layout related functionality and enhancements
    • Media: Provides Media related functionality and enhancements
    • Media Audio: Provides an Audio entity type for Media
    • Media Bulk Upload: Provides improvements to Bulk Upload for Media
    • Media Document: Provides a Document entity type for Media
    • Media Image: Provides an Image entity type for Media
    • Media Image Responsive: Provides responsive image support for Media
    • Media Instagram: Provides an Instagram entity type for Media
    • Media Slideshow: Provides a Slideshow entity type for Media
    • Media Twitter: Provides a Twitter entity type for Media
    • Media Video: Provides a Video entity type for Media
    • Metatag: Configures Metatag and related functionality
    • Migration: Provides Migration related functionality along with a plethora of plugins and default content
    • Page: Provides customizations and defaults for the Page content type
    • Paragraph: Provides Paragraph and related functionality
    • Password Policy: Provides a strong ISM password policy
    • Queue: Provides Queueing and related functionality
    • Search: Provides a default setup for Search API
    • Search DB: Provides a default setup for Search w/Database Backend
    • Sitemap: Provides a default sitemap
    • Taxonomy: Provides taxonomy vocabularies used for categorizing content
    • Theme: Provides theming and related functionality
    • User: Provides User and related enhancements
    • Webform: Provides enhanced functionality and custom plugins (Report a Problem, Did you Find)
    • Workflow: Provides enhanced functionality to improve your content workflow
wxt_extendDistribution
WxT Translation (Module)
  • Ensures that both of the official languages for Canada are setup correctly
  • Provides additional functionality for interacting with Drupal Core’s language subsystem:
    • Translation helper class for importing translations for a given module
    • Various other helper methods for enabling, importing and updating translations
    wxt_translationDistribution

    Standalone Installation

    A standalone installation allows you to install and configure the standalone components type discussed in the previous section separately without relying on a pre-packaged distribution (composer project).

    A composer project will often include multiple modules whether both custom and contributed along with the various configuration and dependencies they will rely on.

    Drupal WxT offers a standalone installation as an alternative for those users who don’t want the full weight of a distribution and prefer more control over their setup while still conforming to the Government of Canada C&IA Specification.

    Instead users can opt to create their own distribution (composer project) and install only the specific modules and themes required for their needs.

    At a minimum and to comply with the WET-BOEW and Canada.ca design system you only need use 2 components.

    Benefits

    Components

    ComponentFeaturesMachine NameType
    WxT Bootstrap (Theme)
    • Provides Templates to adhere to the C&IA Specification
    wxt_bootstrapStandalone
    WxT Library (Module)
    • Integrates Drupal with WET-BOEW Framework Assets (CSS/JS)
    wxt_libraryStandalone

    For the WET-BOEW Framework Assets it is mandatory that you follow the expected naming convention and that these files be placed within the /libraries folder.

    For you convenience all of these components are already part of a composer repository that can be added very easily to your new or existing composer project.

    {
        ...
        "require": {
            ...
            "drupal/wxt_bootstrap": "7.1",
            "drupal/wxt_library": "7.1",
        },
        ...
        "repositories": [
            {
                "type": "composer",
                "url": "https://drupalwxt.github.io/composer-extdeps/"
            }
        ],
        ...
    }
    

    Note: It is still recommended to use the distribution method, as the standalone option receives limited support and you will lose out on some of the functionality / plugins that help to more fully integrate with the WET-BOEW and Canada.ca design system.

    Leverage as a Reference Implementation

    If you prefer full control over your codebase and want to reduce external dependencies, you can use Drupal WxT as a reference implementation.

    This means that, as long as you provide proper attribution, you have the freedom to copy or fork any part of the codebase and incorporate it into your own project.

    The main drawback of this approach is that you won’t receive community support and also won’t have the same tight integration of features with the WET-BOEW and Canada.ca design system.

    However you can selectively choose exactly what you need for your project, potentially saving some time and reducing additional external dependencies.

    Our advice at the end of the day is you must consider what is best for your department or organization in the long term.