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
  • Provides a custom installation profile
wxtDistribution
WxT Bootstrap
  • Provides Templates to adhere to the WET-BOEW and Canada.ca Design System and C&IA Specification
  • #3393668 - Toggle webforms between “Report a Problem” and “Did you find what you were lolking for?” on a per page basis
wxt_bootstrapStandalone
WxT Library
  • Integrates Drupal with WET-BOEW Framework Assets (CSS/JS)
wxt_libraryStandalone
WxT Admin
  • Provides the default configuration and various helper methods for administrative tasks
wxt_adminDistribution
WxT Core
  • Provides the core configuration and all update related hooks for WxT as a whole
wxt_coreDistribution
WxT Extend
  • Provides 40+ micro modules where target only a specific feature within the WET-BOEW and Canada.ca design system:
    • Archived: Creates an archived alert block triggered by a checkbox field on a entity // #3097228
    • Blocks: Creates custom blocks of type Basic, Search, Spotlight, and Modal (ability to use blocks as modal for CKEditor // #3391443
    • Blog: Creates a default Blog listing layout page // #3306505
    • Book: Configures book module to support GC Subway functionality // #3219195)
    • Breadcrumb: Configures breadcrumb and related functionality // #3203791
    • Carousel: Creates custom block of type Carousel // #3313685
    • Comment: Default comment functionality
    • Editor: CKEditor integration with filters for Data Tables and addition of several plugins (WET Alert, Panels) // #3255971
    • Font Awesome: Default fontawesome functionality
    • Group: Default Group functionality along with mappings to import all departments through Migrate using the Open Data API
    • Landing Page: Default Landing Page functionality
    • Layout: Default Layout functionality and enhancements
    • Media: Default Media functionality and enhancements
    • Media Audio: Default Audio entity type for Media
    • Media Bulk Upload: Default improvements to Bulk Upload for Media
    • Media Document: Default Document entity type for Media
    • Media Image: Default Image entity type for Media
    • Media Image Responsive: Responsive image support for Media
    • Media Instagram: Default Instagram entity type for Media
    • Media Slideshow: Default Slideshow entity type for Media
    • Media Twitter: Default Twitter entity type for Media
    • Media Video: Default Video entity type for Media
    • Metatag: Allow setting GC Adobe Analytics metatag attributes // #3415924
    • Migration: Extensive Migration functionality along with numerous plugins and default content
    • Page: Customizations for the Page content type, including Lead Title // #3389645
    • Paragraph: Default Paragraph functionality
    • Password Policy: Default strong ISM password policy // #3252532
    • Queue: Queue functionality along with views argument plugins related to SubQueue support
    • Search: Default setup for Search API
    • Search DB: Default setup for Search w/Database Backend
    • Sitemap: Default Sitemap functionality
    • Taxonomy: Default taxonomy vocabularies used for categorizing content
    • Theme: Default Theme setup for frontend and backend
    • User: Default User functionality along with plugin for User Dropdown block
    • Webform: Webform enhancements along with custom plugins (Report a Problem, Did you Find) and SCCAI 2019 support // #3111375
    • Workflow: Workflow enhancements to improve content editing experience
wxt_extendDistribution
WxT Translation
  • 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": "^8.0",
            "drupal/wxt_library": "^8.0",
        },
        ...
        "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.