OpenSense Labs: Drupal 8 End-of-life: FAQs

Drupal 8 End-of-life: FAQs
Fri, 10/22/2021 – 11:15

Neil Young once famously sang, “It’s better to burn out than to fade away”, and it still reverberates loud enough in our ears when we think of an end, end of something colossal. Drupal 8 is less than a month away from hanging up the boots. Drupal 8, by no stretch of imagination, has faded away though. Rather it has traversed an amazing journey and left behind a legacy that will be impactful for the future of Drupal 9 and later versions.

Like all great things, Drupal 8’s end of life date is nearing. Basically, when a version of Drupal reaches its end of life, the Drupal Community stops all the operations around it, that is, simply put, stops working on it and doesn’t provide free support. And, the core development comes to a halt where no new features are added and no bugs get fixed. So, we definitely have more than just a few questions to ponder over and make business critical decisions. Let’s jump on them right away.

November 2, 2021: Farewell Drupal 8!

On this day, Drupal 8 will be marked an end of life product before the release of Drupal 9.3.0. Drupal 8’s largest third party dependency is Symfony 3 which is going to be termed end of life in November 2021. Moving to Symfony 4 is not an option here since that would break the backward compatibility with previous versions of Drupal 8.

More on the reasoning behind Drupal 9’s release schedule here in the official documentation.

Why is Drupal 8 end of life before Drupal 7?

Simply put, upgrading from Drupal 8 to 9 is a cakewalk in comparison to upgrading from Drupal 7 to 8/9. Therefore, Drupal 7 end of life has been extended and will get community-based security coverage till November 28, 2022 so that Drupal 7 site owners will get ample amount of time to upgrade. Drupal 7 will also get vendor extended support till November 2025.

What if I don’t upgrade before the end of life date?

Your website will still function normally, but only for a certain period of time. With Drupal Community no longer releasing security updates for Drupal 8, and the symfony communities not updating the code your site depends upon, something or the other will break after a while and there will definitely be security vulnerabilities discovered.

After Drupal 8 end-of-life, will we get an extension to upgrade to Drupal 9?

That’s a big NO. You will simply not get a grace period. You travel to a place, make memories and everything seems like a fairytale until you need to bid goodbyes. Like everything else in life, you have to confront the end of a beautiful time spent and move on to the next chapter.

Is there any vendor extended support for Drupal 8?

There is no vendor extended support for Drupal 8 after its end of life.

Why upgrade to Drupal 9?

If you are still on Drupal 8, upgrade to Drupal 9.2 before November 2, 2021 to keep your website safe and secure as the Drupal 9.1 security coverage will end right after the Drupal 8 end of life. More on this ultimate guide to Drupal 9.

What’s the difference between upgrading from Drupal 7 to 8/9 and Drupal 8 to 9?

While previous major version upgrades like Drupal 7 to 8 had a bigger architectural change, migrating from Drupal 8 to 9 is more similar to a minor version of Drupal core except for the removal of long-planned deprecations.

How are Drupal 8 and Drupal 9 different?

While using the admin UI or updating content, you won’t see any difference between Drupal 8.9 and Drupal 9.0 as they have the same features. The underlying technology stack that Drupal relies upon has been updated thereby making your site more safe and secure.

How to upgrade from Drupal 8 to Drupal 9?

Migrating from Drupal 8 to 9 is only a matter of update.php if your codebase is not using deprecated APIs anymore. Drupal 9 upgrade tools can further help in recognising and solving the deprecated APIs in your codebase. Working on with the maintainers of contributed projects and themes can be helpful to make those projects Drupal 9 compatible.

Learn more on Drupal 9 upgrade here:

How long do we have before Drupal 9 reaches the end of life?

Symfony 4, which Drupal 9 currently uses, will reach its end of life in November 2023, and that will spell the end of life for Drupal 9 too. With the new minor release schedule in place, upgrades to new major releases of Drupal isn’t a hurdle anymore. Much like Drupal 8 to 9 migration, Drupal 9 to 10 and future major version upgrades will continue to be a no-big-deal affair.

'farewell drupal 8, end of an era' written in the centre to depict drupal 8 end of life story


Go to Source

OpenSense Labs: Drupal accessibility modules: The essentials

Drupal accessibility modules: The essentials
Maitreayee Bora
Mon, 10/18/2021 – 16:52

Web accessibility is always prioritized by Drupal to provide its potential users a decent user-experience. Without any fail, Drupal has succeeded in providing an extensive range of modules that can be downloaded according to user convenience. This platform has consistently put efforts in bringing significant improvements in all its versions when it comes to accessibility modules. So, with this article, I will try to give you an insight of some of the recently refreshed or newly released Drupal modules that will efficiently help you in your various challenging projects. You will also get the answer to a common question that often comes to your mind, “Why Drupal for accessibility”?

To begin with, for your better understanding, I am describing the Drupal web accessibility modules by categorizing them based on their different functionalities. 
Illustration diagram describing drupal logo and accessibility symbol

Accessibility Auditing

Under this category Drupal has a sufficient number of modules that help in offering you an enhanced accessibility audit for your ambitious projects.
Illustration diagram describing drupal accessibility auditing modules

Editoria11y Accessibility Checker

Editoria11y can be termed as a user-friendly checker that provides support to the content authors and editors. Compatible with Drupal 9, it also looks after the three most vital needs of the content authors. 

  • It makes sure that the spellcheck is constantly running and rectifies the content mistakes when it occurs.
  • It makes sure that no mistakes take place in terms of Views, Layout Builder, Media and other modules, as it runs in context with them and it’s checkers are also constantly on. 
  • It prioritizes content issues by fixing them, also ensuring that the page editors do not omit any issue that is easily rectifiable.

Monsido Tools

Monsido helps in smooth optimization of your website, also focusing on web governance, quality assurance, and accessibility compliance. Since accessibility laws differ from country and sector, this module helps in validating your site against the international standard, the WCAG 2.1. This module which is compatible with Drupal 9 provides your site with the scanning facility to identify any difficulties that might further hamper accessibility, and also enhances your search engine rankings by recognizing SEO errors. 


Known as the most comprehensive cloud-based Digital Presence Optimization (DPO) software, Siteimprove enables you in creating high quality content, editing efficiently, driving better traffic, measuring digital performance and working towards regulatory compliance. Siteimprove plugins help in filling the gap between Drupal and the Siteimprove Intelligence Platform, also empowering contributors to test, fix and optimize their work without any hurdles. This module has Drupal 9 compatibility which is an added advantage.

CKEditor Accessibility Auditor

CKEditor Accessibility Auditor is a module that has Drupal 9 compatibility and it functions by clicking a button which runs the HTML_CodeSniffer Accessibility Auditor on the source code of the current content. With this module, you get to access a detailed view on any type of specific error, convenient success criteria and suggestions of techniques, and also upon what exactly triggered the error, once you run the auditor. 

CKEditor Accessibility Checker

CKEditor Accessibility Checker helps in enabling the Accessibility Checker plugin from in your WYSIWYG. You can inspect the accessibility level of content that is generated in CKEditor, and resolve any accessibility concerns at the earliest. 

Sitemorse Lite – a11y Audit

Integrating Drupal with the inCMS service, this module enables to run the on-page accessibility audits and view results from the Drupal Administration interface. Sitemorse along with Ixis bring you a Drupal connector that provides the facility of checking your content quality before it gets published. Additionally, this module is compatible with Drupal 9 as well. With this module, the content editors can have more command over their content by making it more SEO friendly, accessible and resolving any issues that adversely affect the customer experience. 


The Accessibility module is a great support for the content authors and theme developers as it enables them to make their websites accessible to the users regardless of their capabilities and the technologies they prefer. It offers a set of available Accessibility tests that helps in scrutinizing the content for any accessibility errors that are published by the editors. Since this module uses the QUAIL jQuery plugin, it is not covered by Drupal’s security advisory policy.

Accessibility Scanner

The Accessibility Scanner module enables you to use Drupal along with Axe toolset to opt for web accessibility scans on local and remote websites within the Drupal admin interface. It is compatible with Drupal 9 but isn’t covered by Drupal’s security advisory policy.

USWDS Ckeditor Integration

The USWDS library has become an essential requirement for government websites. This module majorly focuses on making a user to smoothly utilize and inject USWDS classes and components into the ckeditor without even opening the source event for a single time. The USWDS Ckeditor Integration module is compatible with Drupal 9.

Quail API

This module is a complete rework of parts of the Drupal 6 project known as “Accessible Content”. It offers an API for the 3rd-party Quail Library to Drupal modules. Quail API has Drupal 8 alpha version as well.

Site builders

This is the second category under which Drupal offers exclusive modules to its users which enable them to design and create functional sites without the need of manual code editing.
Illustration diagram describing drupal site builders modules

Automatic Alternative Text

Automatic Alternative Text module allows you to automatically generate an image caption, while none of the Alternative Text has been given by the users. It is made possible by using the Microsoft Azure Cognitive Services API. This module offers one or even more descriptions of an image that are ordered as per their confidence. Although the default descriptions are in English, there is an option of translating them into other languages. This module is also compatible with Drupal 9. 

iFrame Title Filter

To comply with WCAG guidelines, the iFrame Title Filter helps in ensuring that embedded

Text field formatter

Text field formatter module which is compatible with Drupal 9 can be termed as the extension of the plain text formatter. The main concept of creating this module came from another similar module known as String field formatter. The main features of Text field formatter include: 

  • Adding additional wrapper to the text field.
  • Adding classes to this wrapper.
  • Adding any of the attributes to this wrapper and 
  • Ability to override a link label (tokens are supported).

This module is compatible with Linked Field and Layout Builder. 

Field Display Kit

The Field Display Kit module enables fine tune rendering of any field in the system. The main features of this module consist of:

  • Independently changing title (label) of the field in every display (identified as view mode).
  • Ability to change the title (label) element tag, along with adding classes and some other attributes to the wrapper.
  • Ability to change the wrapper element of the field, and also add classes and other attributes to the wrapper.
  • Ability to change the wrapper element of every individual field item, and also add classes and other attributes to the wrapper and
  • Ability to link any field item. Therefore, to build the link, tokens like [node:url] can be used. 

When authorized, this module helps in facilitating configurations for each field on each entity of your site. It works with fields which are normally displayed or with Layout Builder as well. It is compatible with Drupal 9 but isn’t covered under Drupal’s security advisory policy.

Block ARIA Landmark Roles

Taking inspiration from Block class, the Block ARIA Landmark Roles module prioritizes on adding additional elements to the block configuration forms that helps users to assign a ARIA landmark role and/or ARIA labels to a block. It is compatible with Drupal 9.

A11Y Paragraphs Tabs

With the A11Y Paragraphs Tabs module, you get the authority to smoothly add tabs through paragraphs to your content which complies with the standards of Accessibility (A11Y). The paragraphs which are already configured, to provide you tabs on desktop and an accordion on mobile are added by this module. There is no need to configure anything from your end. The three new paragraphs created by this module consist of:

  • A11Y Paragraphs Tabs Wrapper
  • A11Y Paragraphs Tabs Panel
  • A11Y Paragraphs Tabs Content

The wrapper (A11Y Paragraphs Tabs Wrapper) consists of the tab panel (A11Y Paragraphs Tabs Panel) that enables you to add tabs according to your convenience. On the other hand, the tabs panel (A11Y Paragraphs Tabs Panel) consists of a paragraph in which you are able to add the paragraphs you would prefer to use inside the tab panel. It is compatible with Drupal 9.

Decorative Image Widget

The Decorative Image Widget proves to be a solution for the site builders that prefers the option of leaving an image’s alternative text blank explicit (by checking a new “Decorative” checkbox) instead of implicit (by simply leaving the alt text field blank). To put it simply, the editors are made to affirm the reason behind leaving alt text empty, which is because of the decorative image that needs to be hidden from the screen readers. The primary features of this module consist of: 

  • Providing an option of a “Decorative” checkbox to image widgets that has to be checked if the user chooses to leave the alt text empty.
  • Forcing users to focus upon alternative text instead of leaving it blank. 
  • Working with any existing image widget which extends from core’s default. For example, it can be used with the default image widget or the one offered by Image Widget Crop.
  • Lastly, there is no need for any kind of data model changes, since the position of the state of the “Decorative” checkbox is completely inferred from the value of the alt text.

This module is compatible with Drupal 9 but isn’t covered under Drupal’s security advisory policy.

A11Y: Form helpers

A11Y: Form helpers module helps you to make forms more accessible in Drupal. Following are the modules features: 

  • You do not need any HTML5 validation.
  • You can include readable inline error messages for screen readers.
  • You can also put in pre-filled attributes to certain form elements.

This module is compatible with Drupal 9 but isn’t covered under Drupal’s security advisory policy.

CKEditor Abbreviation

CKEditor Abbreviation module helps you in adding a button to CKEditor for inserting and editing abbreviations. This module also has an added benefit i.e., the availability of a link to edit the abbreviation. It is compatible with Drupal 9.

Node Link Report

Since links within content can take various forms in WYSIWYG, such as link fields, free text, entity reference fields and many more. It might be a difficult task to ensure that links are not broken in your content. But the Node Link Report module offers you a block which displays a link report also including all the links in the rendered note. It enables you to display the links on node view, node edit, and node preview as well. Also, it is compatible with Drupal 9.

Devel Accessibility

The Devel Accessibility module offers support to the module developers by providing them an API for aria-live region update announcements. It is compatible with Drupal 9.

CKEditor Balloon Panel

CKEditor Balloon Panel module allows the Ballon Panel plugin from in your WYSIWYG editor. The Balloon Panel plugin offers the capacity for creating a floating, balloon-shaped container that is capable enough of presenting content at the preferred position in the document. The CKEditor Accessibility Checker uses this module to create the floating panels with accessibility tips. 


Under the third category, Drupal provides significant modules to the developers that helps in enhancing their experience in building well-designed and user-friendly websites. 
Illustration diagram describing drupal developers modules

WCAG Drawer

The WCAG Drawer module is compatible with Drupal 9 and has Drupal 8 alpha version. Although it isn’t covered under Drupal’s security advisory policy, you can take the benefit of utilizing the framework offered by this module in order to create easily accessible drawers.

Color Swatch

Color Swatch module is considered as an alternative to the Drupal Core color module and color scheme. This module prioritizes supplying a css with the preferred colors. And it is also said to be flexible as the generated css isn’t compiled in the form of a file but rather added as an inline css. Additionally, the css operates via rendering of a twig file with a theme function that provides more control from preprocess functions, and also twig template overrides on a theme level. This module is compatible with Drupal 9 but isn’t covered under Drupal’s security advisory policy.


Under this category, the end-users of Drupal are offered with some unique modules that enable them to witness an excellent experience while building their respective projects.
Illustration diagram describing drupal end users modules

Accessibility Enabler

People with any kind of disability can easily consume and navigate sites in a very effective way with Accessibility Enabler. It also meets the differently abled population in using the preferred content, enhancing accessibility, and increasing the sales and conversation. It helps in making your site more compliant with accessibility regulations of your country, preventing lawsuits and heavy penalties. You get an opportunity to build your brand among your customers, and also exhibit social responsibility by increasing accessibility via this module. The key features includes:

  • Availing accessibility tools for each and every disability.
  • Providing intelligent design for mobile.
  • Availing accessibility presets for each persona.
  • Option to put accessibility triggers anywhere.
  • Ability to change accessibility trigger button position.
  • Facility of making your own custom trigger.
  • Multiple color theme options.
  • Freedom to express your commitment towards accessibility.
  • Enhancing your site navigation to the best of its ability and
  • Ability to return to the top of the page easily.

This module isn’t covered under Drupal’s security advisory policy.

Civic Accessibility Toolbar

Civic Accessibility Toolbar facilitates a block with accessibility utilities to enable end-users switch theme versions with higher color contrast and also change font size of text. You can create a block with both or one of the utilities to allow visually impaired users access Drupal sites without any difficulty. It is further tested with Bartik, Garland, Zen Starterkit, Stark, Oliveiro themes and is compatible with Drupal 9.

Text Size

For a better web accessibility, the text size module exhibits an adjustable text size changer or a zoom function on the page. Although, in Firefox 3, the zoom function is comparable to the text zoom function, this module also resizes vector images, variable pixel images and variable media objects. 

Text Resize

The Text Resize module provides a great support for the visually impaired people by increasing the accessibility of the pages with necessary text size adjustments. By using jQuery and the jQuery Cookie plugin, this module creates a Drupal block which can be themed. Moreover, it gives the option to resize  images as well. Also, never forget to enable the “Text Resize” block of your theme to help the block appear.

High contrast

With the High contrast module, you are able to smoothly switch the active theme and a high contrast version of it. You will only need to press the tab on the keyboard after installing the module and will then get the high contrast pop-up link on the screen. It is compatible with Drupal 9.

Voice Search Redirect

The Voice Search Redirect module enables you to redirect on any page with the help of voice command. And there is no need to click manually on the menu. This module isn’t covered under Drupal’s security advisory policy.

Fluidproject UI Options

Fluidproject UI Options offers accessibility options to its users to modify a page’s font size, font style, link style, line height and contrast using cookies. But there are some limitations such as:

  • Internationalization is done through JSON files within the module folder instead of the Drupal interface. 
  • Although this module is tested successfully with the most popular themes, some of the themes like Bootstrap require additional CSS for font-sizing or line heights to work. 
  • The contrast settings do not prefer working for elements that use CSS gradients.

 It is compatible with Drupal 9.

Style Switcher

The Style Switcher module empowers themers to create themes with alternate stylesheets, and site builders to add other alternate stylesheets in the admin section. It provides all those styles to site visitors in the form of a list which consist of links in a block. This helps the site visitors to select the style of the site they prefer. Cookies are being used by this module so that when people return to the site or even visit a different page they still get their preferred style. It is compatible with Drupal 9.

Generic HTML validations

The modules under this category enhance the overall accessibility for screen readers and other non-browser devices.
Illustration diagram describing drupal generic HTML validations


Along with accessibility, the htmLawed module also provides you security. This module restricts and purifies HTML code for compliance with the site administrator policy and standards and for security by using the htmLawed PHP library. In addition to that, you are allowed to autocorrect and beautify HTML markup, restrict HTML elements, attributes and URL protocols in the input. It helps in balancing tags and ensuring that HTML elements are well nested, , transforms deprecated tags and attributes, and many more. It is compatible with Drupal 9.

HTML Purifier

Similar to the htmLawed module, the HTMLPurifier library is a great mix of both accessibility and security. Along with removing malicious code from your site, it also ensures your site with W3C standards compliance. Since this module works perfectly with WYSIWYG editors, it proves to be a great fit for Drupal as well. Also, options like custom fonts, tables, inline styling, and many more are offered by this module. It is compatible with Drupal 9.

Now, what do you think, is Drupal accessible? Undoubtedly, YES, as all the above Drupal accessibility modules prove so. 

Learn more about accessibility and what Drupal has to offer:


With the above mentioned Drupal module list, I tried providing you the essential modules that can efficiently help your developers, content editors and site visitors with better web accessibility. So, now it’s completely up to you how you choose the right modules that fits your project needs and expectations. Without waiting further, take your pick!

blog banner
An image with an accessibility symbol

blog image
A window image

Blog Type
Is it a good read ?

Go to Source

Specbee: A Deep Dive into the Webform Module for Drupal 8/9

A Deep Dive into the Webform Module for Drupal 8/9
12 Oct, 2021

The Webform module is the most powerful and flexible form builder and submission manager for Drupal. It gives  site builders the power to easily create complex forms instantly. It comes with a certain level of default settings, also letting you customize it as per your requirements.

Check out this amazing blog – Drupal 8 Webform Module – A Brief Tutorial to help you get started with the Webform module in your Drupal 8/9 site. This will help you understand the basics easily. 

The Webform module ships with a lot of interesting features and I’d like to mention a few here.
Web Form Module

Webform Features

1. Altering form & elements

Any form, element and its related settings can be altered by using their respective hooks. Below are few hooks that are available to use and you can find more in the webform.api.php file:

  • Form hooks

        ◦ hook_webform_submission_form_alter()    
        ◦ Perform alterations before a webform submission form is rendered.

  • Element hooks

        ◦ hook_webform_element_alter()
        ◦ Alter webform elements.

  • Option hooks

        ◦ hook_webform_options_alter()
        ◦ Alter webform options.

  • Handler hooks

        ◦ hook_webform_handler_invoke_alter()
        ◦ Act on a webform handler when a method is invoked.

  • more hooks…

        ◦ hook_webform_access_rules_alter() etc..
        ◦ Alter list of access rules that should be managed on per webform level.

2. YAML Source

The Webform module started as a YAML Form module, which allowed people to build forms by writing YAML markup. At some point, the YAML Form module started to have UI and became the Webform module for Drupal 8.

  • YAML provides a simple & easy to learn markup language for building & bulk editing a webform’s elements.
  • The (View) Source page allows developers to edit a webform’s render array using YAML markup. Developers can use the (View) Source page to hand-code webforms to alter a webform’s labels quickly, cut-n-paste multiple elements, reorder elements, as well as add custom properties and markup to elements.
  • Here’s an example of a Contact form and its corresponding YAML source code:

Contact Form with Drag and Drop UI

A Contact form with drag-n-drop UI


YAML Source Code

The Contact form’s YAML source code

3. Conditional fields

Webform lets you add conditional logic to your elements within your form. Let us consider a small example, wherein we need to conditionally handle the visibility of elements based on the value of another element within the form.

Here’s an example form with two-step fields, STEP 1 (Radios element) with options ‘Email’ and ‘Mobile Number’. STEP 2 (Fieldset) with two elements, ‘Email’ and ‘Mobile Number’.
Build Page

Form Build page

Form View Page

Form View page

In the above example, I would like to show the ‘Email’ field if the ‘Email’ option is chosen in Step 1, else show the ‘Mobile Number’ field if the ‘Mobile Number’ option is chosen in Step 1.

To achieve that, edit your ‘Email’ field, click on the ‘Conditions’ tab, choose the ‘State’ as ‘Visible’ and set the ‘Trigger/Value’ as ‘STEP 1 [Radios] value is email’. Similarly, follow the same steps to add conditional logic to your ‘Mobile Number’ field and set the ‘Trigger/Value’ as ‘STEP 1 [Radios] value is mobile_number’. Here’s the final look of the Webform:
Edit Email Element

Setting up conditional logic


Form when ‘Email’ is chosen on STEP 1

Step 2

Form when ‘Mobile Number’ is chosen on STEP 1

4. Custom options properties

Webform lets you add custom option properties to your from elements.

Imagine a scenario where you would want to conditionally handle the options of a radio element based on the value of a different element within the form. How would you do that?

Well, I did not find any way to handle it through the Conditional logic settings from the UI. But there is a provision to set ‘custom options properties’ to your element, wherein you write the required conditional logic targeting your options within the element using the YAML code.

Here is an example, where we can see two radio elements and based on the option I select in the first element, the visibility of the options within the second element should change.
Form Build Page

Form Build page

Custom Option

Form View page before adding any custom options properties:

  • If ‘Type A’ is chosen, then ‘Option 1’ and ‘Option 2’ should be visible from the second element. Similarly, if ‘Type B’ is chosen, then ‘Option 3’ and ‘Option 4’ should be visible. To achieve this edit the second element, go to the ‘Advanced’ tab, scroll down to the ‘Options (custom) properties’ sections and write the necessary logic in YAML.

Option ElementEdit option element

Setting up the options properties

Choose type

Form when ‘Type A’ is chosen

Choose Type B

Form when ‘Type B’ is chosen

5. Webform submission email handlers

  • Email handlers

          Email handlers sends a webform submission via email. To add email handlers to your webform, go to ‘Settings’ and then ‘Emails/Handlers’ tab. Next, click on the ‘Add Email / Add handler’ button.
Email handler

Add Email Handler

  • As shown in the below image, on the ‘General’ tab, add the ‘Title’ and set ‘Send to’  and ‘Send from’ details. Add the message ‘Subject’ and ‘Body ‘ as required and save the configuration form. 

Email ConfirmationConfirmation HandlerEmail Confirmation HandlerMessageTitle & Description 

And that’s about it. Your handler gets fired whenever the form is submitted.

  • You can also set conditional email handlers to your webform i.e., trigger different email handlers based on the value of certain elements within the form.
  • For example, let us consider a ‘Select’ element with values ‘Type 1’ and ‘Type 2’. If the user submits ‘Type 1’, trigger the ‘Email – Type 1’ handler that has set ‘To’ address to ‘’. If the user submits ‘Type 2’, trigger the ‘Email – Type 2’ handler that has set ‘To’ address to ‘’.
  • To add conditional logic to your email handler, create one handler and name it ‘Email – Type 1’. Set ‘To’ address to ‘’, switch to the ‘Conditions’ Tab, choose the ‘State’ as ‘Visible’ and set the ‘Trigger/Value’ as ‘Select Type [Select] value is type_1’. 
  • Similarly, create the second handler and name it ‘Email – Type 2’. Set ‘To’ address to ‘’, switch to the ‘Conditions’ Tab, choose the ‘State’ as ‘Visible’ and set the ‘Trigger/Value’ as ‘Select Type [Select] value is type_2’.

Email type 

  • Scheduled email handlers

    • It extends the Webform module’s email handler to allow emails to be scheduled. To use this feature, enable the ‘Webform Scheduled Email Handler’ sub-module. 
    • To schedule sending an email of the form submissions, click on the ‘Add handler’ button. Select ‘Scheduled Email’ handler here.

Select Handler 

There is only one extra config setting in the ‘Scheduled Email’ handler compared to the normal ‘Email handler’. And that is to add Schedule email date under the General settings tab.

Schedule email Handler

Scheduled email handler

Set the date to trigger your handler and when the next cron is run, your email will be sent!

Finding Help

There are different ways through which you can seek help with the webform module. Here is a list of a few sources:


Go to Source

OpenSense Labs: Drupal 8 end-of-life is just around the corner, what’s your next step?

Drupal 8 end-of-life is just around the corner, what’s your next step?
Maitreayee Bora
Fri, 10/08/2021 – 08:23

Drupal 8 was launched on November 19, 2015 to support the Drupal community with advanced features and functionalities. But now there is only three months left for it’s end-of-life (EOL) since we already have the end date fixed i.e. November 2nd, 2021. Well, what does Drupal end of life mean? End of life basically is the official date after which Drupal Community stops supporting a certain version of Drupal. This article can be considered as a guide where we will be able to clear all our queries in regards to Drupal 8 end-of-life (EOL). 
Illustration diagram describing the end of life of Drupal 8

When’s Drupal 8 going to be End-of-life

As we have discussed above, Drupal 8’s end-of-life is just a few months away, so are we making our necessary plans for migrating to Drupal 8’s later version? Let us get into a little more detail about Drupal 8’s end-of-life as it will help you in taking any major decisions about the migrating process. So, basically, after November 2nd, 2021, the end date of Drupal 8 version, no security patches will be available to you and along with that you won’t be receiving any vendor extended support program for Drupal 8. 

You will be surprised to know that Drupal 8’s End of Life happens before Drupal 7. Since, now you have an idea about Drupal 7 and 8 end of life, let us now look into the reasons why Drupal 8’s end of life takes place before Drupal 7. The first reason is that there was not much effort needed in the transition from Drupal 8 to Drupal 9. Since, Drupal 9 was not a reinvention of Drupal but rather it consists of two major differences i.e. updated dependencies and deprecating APIs. Second, Drupal 8 is majorly dependent on Symfony 3 and Symfony 3’s end of life is November 2021.

Is it still safe to stay on Drupal 8 even if the end of life is approaching?

If you decide to stay on Drupal 8 even after it’s end-of-life then you will have to go through some difficult consequences. Your website has to be compromised in terms of the security as the community support finishes with Drupal 8 end-of-life. You will have to purchase a vendor extended support program for Drupal 8 instead of depending upon the Drupal community to identify exploits and release patches. Additionally, as the developer community will no longer prioritize on enhancing the Drupal 8 version, so consequently, the existing modules will not receive any further necessary updates from the community as they will be busy focusing on Drupal 9 modules. Let me also tell you that with the growing time Drupal 8 sites tend to disappear and as a result, very few agencies will be available to offer Drupal support for these versions. Therefore, the best option you have is to upgrade to Drupal 9 without any further delay and get the maximum benefits out of it for your aspiring projects. 

What benefits will I get after migrating to Drupal  9? 

This section will give you a clarity about the important features that Drupal 9 offers. Once you take a look at them, you won’t regret migrating to this version from your present familiarised version of Drupal 8. 
Illustration diagram describing the benefits of migrating to Drupal 9

Availability of intuitive tools

Enhancing Drupal’s ease-of-use is something that is prioritized in this version of Drupal 9. Some of the promising improvements in regards to the strategic initiatives for Drupal core include automatic updates, Drupal 10 readiness and, decoupled menus.

Improving future upgrades

Drupal 9 focuses on making the upgrades smooth for future releases. There won’t be any need to replatform as new versions get released. 

Enabling you to stay close to innovation

With Drupal 9, you get access to the latest new feature releases that happen twice a year.

Front-end facilities

Drupal’s API-First initiative provides your site more versatility, allowing much better integrations, and also availing the much needed front-end flexibility. 

Providing richer media management

Drupal 9 enables you to embed remote content like YouTube and Vimeo videos. Additionally, it also features a Media Library module that helps users to add existing media assets. 

Accessibility of powerful visual design

Drupal 9 provides an improved Layout Builder which exclusively offers a single, powerful visual design tool for:

  • Layouts for templated content
  • Customization for templated layouts
  • Custom pages

Is migrating to Drupal 9 difficult?

By far we have got familiar with some of the important aspects of Drupal 8’s end-of-life, but now we will get through the most significant aspect i.e. the nature of the migrating process to Drupal 9. Is it easy or difficult? This question might be at the back of your mind, so here I am with the answer you are looking for. Since, Drupal 9 is built on Drupal 8, the technology in Drupal 9 is to be surely, convenient and effective as it has already been used in Drupal 8. Therefore, it gives an understanding that the upgrade to Drupal 9 will be easy. Let me explain this to you in a more detailed way. 

For Drupal core contributors, it means that there is a limited set of tasks to be done in Drupal 9 itself even before its release. Releasing Drupal 9 solely, depends on removing deprecated functionality and upgrading Drupal’s dependencies, for instance, Symfony. This further helps in making the release timing more predictable and the release quality extremely robust.

For contributed module authors, the new technology is already available at their service, so they can easily work on Drupal 9 compatibility even before time (e.g., they can start with updating their media modules to use the new media library even before Drupal 9 gets released). Eventually, their Drupal 8 know-how remains extremely relevant in Drupal 9, since there won’t be any major change in building Drupal 9.

Finally, for Drupal site owners, it means that the upgrading process to Drupal 9 should be much easier in comparison to upgrading to Drupal 8. As Drupal 9 happens to be the last version of Drupal 8, with its deprecations being removed. So, there is no need to introduce new, backwards-compatibility breaking APIs or features in Drupal 9 except for the dependency updates. Until modules and themes stay up-to-date with the latest Drupal 8 APIs, the upgrade to Drupal 9 is set to be easy. Moreover, a 12 to 18 month period is enough for a smooth upgrade. 

Learn more about Drupal 9 upgrade approaches here:

What about Drupal 9 end-of-life?

With all the above discussion, you must be clear about the Drupal 8 end-of-life. But is that all you wanted to know? Or do you have any more curiosity to take a step forward and know about Drupal 9 end-of-life? Well, I’ll give you a little information about it. Drupal 9 support ends in November 2023. Since, Drupal can be seen using a lot of Symfony code, the end of life for Drupal 9 will be when Symfony 4 reaches its end of life in November 2023.

The Drupal community is planning to release Drupal 10 ahead of the end date of Drupal 9. Therefore, Drupal 10 is estimated to be released in the mid of 2022. But they still haven’t fixed the Drupal 10 release date. And also we are far away from Drupal 10 end of life for sure. 

You can also see the release cycle overview to get more information on the possible release dates. 

Learn more about Drupal 9 here:

Illustration diagram describing Drupal End of Life Cycle


With this article, I tried giving you a clear picture of the various risks which you will come across if you choose to stick around Drupal 8 even after it’s end of life (EOL).  You could also possibly see all the important benefits that Drupal 9 has to offer. So, now hopefully, it can be expected that you will take the right step towards Drupal 9 upgrade. But yes, I do agree that upgrading comes with a lot of challenges. Therefore, the first convenient step for you will be to perform a readiness audit. As audit helps in recognizing the work and effort needed on your website, along with recommending you a seamless migration to Drupal 9.

blog banner
Autumn leaf

blog image

Blog Type
Is it a good read ?

Go to Source

Specbee: How to Migrate Content from XML files to Drupal 8 (or 9)

How to Migrate Content from XML files to Drupal 8 (or 9)
Maithri Shetty
05 Oct, 2021

Pulling data from different sources to your Drupal CMS is what migration is all about. Your migration source can be anything – a database, another CMS, CSV, XML files. Drupal always gives you the flexibility to migrate data from anywhere into the CMS. We have written extensively on Drupal migrations before like migrating from a database source, migrating multilingual content from CSV, from an SQL source, a complete how-to-guide to migrations and more! If you are looking for a guide to migrating data from XML files to Drupal 8 or Drupal 9, you have arrived at the right place as that is what we are going to discuss about here!

If you’re looking to import external feeds to your Drupal 9 website using the Drupal Feeds module, check out this article.
XML to Drupal Migration

Drupal 8/9 Migration Modules

Here, we will be using the whole set of Drupal migrate modules

After installing these modules, you will need to create a custom module where you will write the script for migration. So first, create a custom module and then create an info.yml which will include the module’s details. Next, enable the module.

name: test migration
type: module
description: Migrating data from the csv files.
core_version_requirement: ^8 || ^9
package: Migration
 - drupal:migrate_source_csv
 - drupal:migrate_plus
 - drupal:migrate_tools
   - migrate_plus.migration_group.test_migration
   - migrate_plus.migration.test_migration_sessions
   - migrate_plus.migration.test_migration_paper
   - migrate_plus.migration.test_migration_user

Once the info.yml file is created, you need to create a migration group for this migration. You will need to create this migration group in the path: test_migration> config > install. These details are needed while running the migration:

id: test_migration
label: test Migration
description: Migrating xml data 

After creating the migration group, install this group in your info.yml file.

   - migrate_plus.migration_group.test_migration 

Now, you need to write a migration script for the content type. This script should be inside config > install and file name should be migrate_plus.migration.test_migration_paper.yml

id: test_migration_paper
label: 'Migrate Paper data from the xml file'
migration_group: test_migration
 plugin: url
 # Full path to the file.
 data_fetcher_plugin: file
 data_parser_plugin: xml
 urls: private://xml/session.xml
 item_selector: /program/session/papers/paper
   - name: title
     lable: 'Paper title'
     selector: papertitle
   - name: abstract
     lable: 'Paper abstract'
     selector: abstract
   - name: first_name
     label: 'Author first name'
     selector: authors/author/name/givenname
   - name: last_name
     label: 'Author last name'
     selector: authors/author/name/surname
   - name: paper_id
     label: 'Paper identifier'
     selector: paperid
   - name: session_id
     label: 'Session identifier'
     selector: sessionid
   - name: start_time
     label: 'Paper presentation start time'
     selector: starttime
   - name: end_time
     label: 'Paper presentation end time'
     selector: endtime
   - name: author_name
     label: 'Author name'
     selector: authors/author/name/fullname
   - name: session
     lable: 'Session name'
     selector: session
     type: string
 # Adding the mapping between the fields and the csv columns.
   - plugin: skip_on_empty
     method: process
     source: title
 field_abstract/value: abstract
   plugin: default_value
   default_value: "full_html"
   plugin: format_date
   from_format: 'Y-m-dTH:i:s'
   to_format: 'Y-m-dTH:i:s'
   source: start_time
   plugin: format_date
   from_format: 'Y-m-dTH:i:s'
   to_format: 'Y-m-dTH:i:s'
   source: end_time
 field_paper_identifier: paper_id
 field_session_identifier: session_id
   - plugin: skip_on_empty
     method: process
     source: author_name
   - plugin: paper_user_migration_import_process
     no_stub: true
   - plugin: skip_on_empty
     method: process
     source: session
   - plugin: node_migration_import_process
     no_stub: true
 plugin: 'entity:node'
 default_bundle: paper
 required: { }
dependencies: { }

Ad Label 

  • id: Will be unique for each yaml file and displayed in the migration list.
  • label: Will contain description for the migration.
  • migration_group: This is the main group that contains all the migrations.
  • source: Will contains all source details for this migration.
  • urls: Will contain the file for migration. In the above code, source is placed inside the private directory.
  • item_selector: Item selector is the path from which the entire set of data is taken. Basically inside this tag there should be one set of data.
  • fields: Here we are assigning tag values to some variables.
  • name: Which gives variable names.
  • label: A short description.
  • selector: In which we are telling which tag value should be assigned to the variable.
  • ids: Which should be unique for each content.
  • process: In which we are mapping variable and field machine names.
  • destination: In which we are mentioning the entity name to which data should be migrated.

Based on your data you can now write plugins for migration as well. The above code plugin is written for the field_author field.

After this go to Structure, there you will see Migration – click on that. You can now see all the migration groups.
Add Migration Group 

Click on List migration. There you can see the list of migration yaml we have created.
Paper DataClick on the Execute button. You can see the migrating options.
Import Operation 

Here you can run any option you want:

  • Import: This will migrate the data.
  • Rollback: Will roll back all migrated data.
  • Stop: Will stop the migration in the middle of the process.
  • Reset: Will change the status to an idle state.

You can also migrate the contents through the terminal with these drush commands.

  • drush ms – Migration status
  • drush mim – Migration import
  • drush mr – Migration rollback
  • drush mrs – To make migration status idle.


Go to Source

OpenSense Labs: The Ultimate Guide To Open Source Strategy

The Ultimate Guide To Open Source Strategy
Sat, 09/25/2021 – 19:00

In this growing era of technology, it is very important to have a smooth and trouble-free working environment. Today, all companies are enhancing their workflow and management in different ways. Keeping everything in line with the innovations, most of the tech companies are adopting open-source software strategies. Open-source software not only makes your work easier but cost-effective and adaptable for business growth. 

Open-source software is released under an open-source license so that anyone can use it. Popular companies like Github host many open source projects, Linux, Ansible, and Kubernetes are examples of open source projects.  

Likewise, thousands of companies using open source platforms experience a sustainable approach with a large user base. These companies use open-source software tremendously, and it is increasingly shaping enterprise software architectures. The use of open-source software has become imperative for their business growth. In this article, you will discover why companies are using open-source software strategies for their development. 

Why do companies go open source  

Knowledge is meant to be shared and the best way to learn is to teach. Open-source software is a free platform that allows its users to share experiences with others. Sharing your work can lead to better quality and helps to get constructive feedback. One of the best qualities of open source software is that the source code of a piece of software is kept open and free to download, also you can modify and incorporate it into third-party projects which helps to enhance the software itself. And that is why many companies are choosing open-source software strategies. 

Every company either VMware, Dell, Nordstrom, or Home depot, relies on open-source software. It all started with Red Hat, who was an initiator in the open-source software market and investors always had this doubt whether other companies would be significant for open source or not. But we have seen rapid growth in the open-source software market and now an open-source has a good presence in the industry. A lot of big companies have now been putting a lot of emphasis on open source strategies.
Talking about the up-gradation in the field of the open-source software environment, in 2019, Red Hat was taken by IBM for $32 billion, Mulesoft for $6.5 billion after going public, and MongoDB for worth $4 billion. In addition, there was a growing unit of remarkable open-source software companies working their way through the growth stages of their evolution like Confluent, HashiCorp, DataBricks, Kong, Cockroach Labs, and many more in the business world. These changes in the tech industry towards open space have given a lot of preference to open source software strategies and improved its occupancy in the industry.

different boxes consisting of statistical information on open source strategy
Source: Boston Consulting Group

Business use of open-source software is rising at a rapid speed. With an increase in the number of users, we can now see a magnificent development in the open-source market. Open Source has become a community where people from different backgrounds work together and it gives companies the flexibility to choose the right staff and save money. Some of the very important reasons for choosing open-source software strategies of these companies are:
'reasons to choose open source strategy' written on top and different icons below consisting of textual elements explaining open source strategy basics
With open-source software, one of the major advantages is that you can check and track your code without having to rely on vendors. Which creates a sense of flexibility in workflow. Peer programmers can also help to improve the source code and you can have an open collaboration with them on a project basis. With no vendor lock-in system, you can take your open source code anywhere and use it accordingly. All these perks of open source software give an upper hand to companies to choose open source software strategies. 

Open Source in numbers

Compared to proprietary software where businesses must pay for them, open-source software is available for free in the market. Moreover, in proprietary software, vendors keep source code confidential but in open source software, it is developed publicly. These vendors rely a great deal on the open community. And not only vendors but employees, freelancers, and hobbyist programmers associated with open-source workspace participate in open source projects to get acknowledged for their technical skills. Because this platform gives global recognition as their work is accessible to all. 

Contribution of big companies, vendors, developers, and freelancing programmers helped the global market of open-source software services to increase at an exponential rate. Its flexibility to modify code and free availability is the topmost advantages to widen up its use.
'CAGR reports for the open source software market' written on top and different icons explaining statistical information on open source market forecast
The tremendous growth in the graph of the open-source software market indicates that companies are ready to invest more and more in the open-source space. These researches depict that open source adoption in organizations is expected to grow across all IT segments to accelerate business growth.

Merits and caveats of open source 

The demand for open source software services in the market has seen tremendous growth to accelerate businesses. There are many reasons why the open-source software strategy has become so popular. Let’s have a look: 

  • One of the important features of open-source software systems is that their code can be fully customized and vendors can change portions of the code or add components to alter it for different business needs.
  • Latest technologies like AI and ML use open-source software. Its proficiency and vitality provide an edge, with the community ensuring that applications are developed rapidly.
  • The community utilizes a collaborative approach to software development, which helps drive development. Enterprise-grade open source software faces a lower risk of inactivity because of the community’s involvement.
  • Finding developers is easier in an open-source system as it is supported by a large number of developers of diverse backgrounds. More on diversity, inclusion and equity in open source here.

Nothing is black and white there are greys in everything. For instance, licensing from commercial open source vendors may sometimes be pretty difficult to comprehend. If you see MIT and Apache licenses, they comprise only the barest of requirements vis a vis software redistribution. Hardly anything detailed can be seen in MIT license and apache license puts forth elaborative terms which means that the latter is most often seen with open source projects designed for enterprise-grade deployment. More on open source licensing here. Sometimes organisations find themselves on the crossroads when they have to strike the right chord between reaping the benefits of OSS and recognising the importance of bearing legal liability when anything goes downhill. Also, Open source security has the reputation of being the best in the business but under-funded open source projects can have serious repercussions.

Why create an open source strategy for your business?

An open-source software strategy is a collective approach towards innovation. It requires systematic flow and management to achieve its goals. According to Ibrahim Haddad at Samsung, hiring top-tier development talent that already has working knowledge in the area of open-source environments helps businesses to achieve their goals and also guides existing developers. An experienced person can easily supervise newcomers. 

Lee Congdon, former CIO of Red Hat, also echoes the same thought stating that “Open source is a pool of space for businesses to attract new talent.”

The business imperative

So far we have understood the importance of open-source software strategy in business growth but we need to figure out how to set these strategies to boost efficiency and minimize risk. To start with an idea, the very initial step is to create a plan and here in open source software strategy, one has to start documenting a strategy document. This will help in keeping you out of trouble that can arise from picking up wrong decisions. 

Strategizing your document will benefit you in many ways:

  • It will clearly explain your company’s approach to open source and its use. 
  • Helps in making decisions for multi-departmental organizations and builds a healthy community around inventions. 
  • The strategy document will give a clear-cut idea about the company’s investment and let more leaders and stakeholders be involved. Read more about open source leadership here.

What’s in it for stakeholders

Engaging stakeholders in your strategy is a crucial task. The goal of a company is to produce high-quality, secure, and reliable products. Open source platforms help each and everyone in the organization to grow and achieve their goals with high productivity and with a vision to achieve the desired result. What stakeholders look for is the best output for the business and sustainability in the market. 

One of the best features of open source is its high flexibility in modifying source code. Since it is an open platform, it gives you ample space to make changes in code from anywhere. It encourages developing new features along with replacing or improving existing features.  

Adding further to this, modification and development in source code becomes easy in open source software because you can take help and augment engineering resources from anywhere. Besides its contribution to code modification, the open-source platform is a great asset for cost reduction. It helps with consulting, training, and support costs because there is no exclusive access to the technology. And this helps in attracting third-party developers and contributors to your business. Learn more about open source being recession-free and how it thrives during economic slumps here.

Whether your organization chooses open source software for its high-quality source code, lower costs, flexibility, or because it lets you embrace digital innovation by making you try out disruptive technologies keeps you on the leading edge of technology, it provides a competitive advantage. Therefore, an open-source software strategy requires the collaboration of every member of the organization with the same vision to build an effective open-source environment. 

From the vantage point of Amazon Web Services

Amazon, one of the leading companies in the world today, heads more than 1,200 open source projects on Github. Like many other companies, Amazon Web Services is also making a significant contribution in open-source space and funding open source development specific to customer needs. Why have they invested so much in open source software strategy when it is not an open-source company like Red Hat? Matt Assay, head of open source strategy and marketing at AWS explained self-servicing is their main objective. As well as using a lot of open-source software in its own products, AWS provides promotional credits to open source developers to entice them to use AWS products. 

Their most recent open-source project is Babelfish for Aurora PostgreSQL. It is an open-source translation layer that makes it easy to migrate from Microsoft SQL Server to Amazon Aurora PostgreSQL.  

What to know before forming an open source strategy

We have gathered a lot about open-source software space in numbers and how to initiate the strategy. Now, two important aspects need to be kept in mind. These concepts will help businesses to determine a program framework and you can maximize your open source strategy. Let’s have a look,
'what to know before forming an open source strategy' written on top and two different icons below explaining the prerequisites on open source strategy 

  • Putting forth a standardised governance in place: A set of norms and guidelines is necessary while working on a project. As open-source software projects grow, contributions from different areas become more complex, if you do not have proper policies and procedures. Proper governance helps in setting up the same guidelines for everyone working on a particular project and reduces security and legal risks. It smoothes the transition when an internal project is open-sourced because then all the developers will work under a certain governance code. 
  • Putting forth a strategy for long-term, sustainable projects: For any business, it is important to have a sustainable approach for long-term relationships. A key driver to measure the success of open source software is that it builds a strategy around companies to take interest in your open source projects. Building a long-term relationship with contributors and partners in open source arises from feature-rich developer communities whose code is productized to get business profit and governance. The ultimate goal is to reinvest back into the project community lifecycle. More on open source sustainability here.

How to create an open source strategy

'how to create an open source strategy document' written on top and different icons below explaining open source guidelines in detail
Do you think your words are sufficient enough to portray your idea? Obviously not, because everything can’t be remembered just by words. You need something handy to recall things. Similarly in an open-source software strategy, a written document will help you to align your goals and objectives. The documented strategy assists everybody in the team to work in sync and helps them to understand the business objectives behind your open source project.

Document your goals and objectives

The most important step is documenting your goals and objectives in a way that can be understood by everyone. At a minimum, your document should explain the company’s approach and what’s the role of open-source software strategy in that. And to determine an approach it is vital to understand your vision towards any project, whether you are ready for open source strategy or not, which open source strategy is helpful for your company and many people you need to contribute to your project. 

Ian Varley, Software Architect at Salesforce shared his thoughts on open source strategy documentation, stating that at Salesforce, we have internal documents that we circulate to our engineering team, providing strategic guidance and encouragement around open source.

Determine how your employees can contribute to open source

The key element of any project is the workforce behind it. Determining the right amount of people and talent to shape your strategy is necessary for all businesses. Guiding your employees about how they can consume open source code and what contribution they can make in that. What acceptance, rejection, and exception policies should developers follow? How to manage if code comes into one of your products from a project with a different licensing setup? All these queries need to be kept in mind while producing an open-source strategy document. Learn more about the perks of contributing to open source here.

Decide upon the number of people you need and the skills required

The next step is to decide the strength for your project with the right amount of skills required. You might need to put in a lot of effort to gather the right workforce because in open source software strategy projects a developer has to be comfortable with an ambiguous ecosystem and should have the ability to take criticism and feedback. Not everybody is comfortable working under a public spotlight and that is why it becomes very important for any company to hire only those who have an intent to work in an open-source environment. 

External resources:

Open-source software strategy depends on many external and internal resources and these resources help you to determine the criteria to set your strategy. Talking about the external factors there are a lot of resources that help you flesh out your open source strategy and the majority of them are free. Have a look at some of them: 

  • Linux Foundation offers educational resources
  • Talk Openly Develop Openly practices on running open source strategy programs
  • Open Source Guide by GitHub helps on building open source community
  • Open source policy documentation by Google
  • InnerSource Commons founded by Paypal helps companies to pursue an open-source strategy in exchange 

Their approach can differ according to their needs but a common agenda to contribute towards an open-source environment is the same. You can choose and adapt their practices and strategies that fit your business needs. 

The surprising fact is that Netflix, which is the biggest OTT platform, is a true standout in open source. They have an Open Source Software Centre that contributed many tools and applications to the open-source community

Internal resources:

While these kinds of external resources can give basic direction and fill in as a benchmark for your strategy, internal resources are key in setting your open source business system. Your open-source methodology ought to be custom-made to your interesting plan of action, and individuals inside your own organization are the best wellspring of data. Moreover, you need to incorporate every one of the stakeholders to arrive at an agreement to guarantee that everybody is in total agreement and put resources into seeing the endeavors succeed.

Chalk out policies and guidelines

Now once you understand goals, objectives, and employee contribution, you have to set some policies and guidelines before working on an open-source software strategy project. These bullet points need to be written down properly in your strategy document. 
'open source strategy document' written on top and different circles explaining them in detail

Incorporate open source program offices

It is important to have a center of all sources so that information becomes easily accessible to all. Companies and corporations mostly set up program offices that act as one-stop shops for open source-related activities. It helps to manage the process and to be a resource for your contributors to get help and guidance. An open-source program office can provide your contributors with a platform to share ideas, collaborate with other developers and spark innovation as well. Coordination between internal activities such as legal, technical, and marketing becomes with the program office. 

Companies with poor open-source software strategies will never find a way to execute a project in an open ecosystem. For them, it becomes very important to foster the workforce with the right governance and supervision to achieve their goals. And that is where open source plays an important role. It helps in finding out the contributors for your project and improves the company’s reputation for both marketing and recruiting purposes. Most importantly it helps to support employees on a great level because of the fact that source code is open and they can ask for help anytime anywhere. 

Measure your success

'how to improve your open source strategy' written on top and different icons below explaining them in detail
To summarize, by having a clear strategy you can justify your open-source projects and will be able to achieve the desired goals. Measuring metrics will go a long way to understand the success rates. But the bigger part is you need to understand how you are going to analyze which metrics to use? Eventually, you need to look at your strategies and plans to come up with criteria that will help you measure whether or not you are successful.

At last, If your open source strategy is not giving you results, consider restructuring your strategy. Develop a strategic plan and set your goal, this will help in making your project sustainable. If you’re ignoring changes in the industry and not getting aware of the current software trend then it would create chaos for your business. It becomes very important to understand what this project will do and how it’s going to solve a problem, so just open that README file and look for solutions. Appreciable feedback will help you to analyze the problems and give better solutions. 

Building a culture of psychological safety is necessary for an open-source ecosystem as developers can feel a sense of comfort while working and would not get worried about the results. All these points make open-source software strategy an important element to your business.

blog banner
front view of restaurant with open written on the door

blog image
front view of a shop at night with open written on a banner

Blog Type
Is it a good read ?

Go to Source

PreviousNext: Overview of our Front-end Stack

Front-end technology stacks tend to move quickly. At PreviousNext, we have been constantly evolving the tech stack to take advantage of best-practice.

In this post, we take a closer look at the front-end tools we use at PreviousNext in 2021 and some of the rationale behind the decisions.


Our front-end stack consists of the following tools:

  • npm, manages all our dependencies and runs our build scripts.
  • post-css to modernise our CSS.
  • kss-node builds the styleguide.
  • stylelint and eslint lints our CSS and JS.
  • Browsersync is used for testing and CSS live reloading.
  • babel and rollup.js are used to transpile and bundle ES6 js.


Modern front-end development leverages many open-source libraries for JavaScript. To manage all this, we use npm as the package manager. There was a period where frustrations with performance led to us switching to yarn, but these issues have been resolved in more recent versions of npm, so we switched back.

We also store a number of script aliases in package.json to simplify the day to day task. This includes compiling CSS/JS and generating a styleguide. For example:

$ npm start

will automatically watch for any changes to .css or .js files, will build the CSS, styleguide, and live reload Browsersync.


KSS Node is a Node.js implementation of Knyle Style Sheets (KSS), “a documentation syntax for CSS” that’s intended to have syntax readable by humans and machines.  We use KSS to generate our living styleguides.


We use Browsersync to speed up the feedback loop. Changes to CSS and JS are compiled and automatically sync’d with the browser, so you see changes immediately.

Maintaining coding standards

By default Linting is required for all custom CSS and JS files. This makes code reviews way easier, as we’re not having to pick up on style changes, and can focus on the meaningful changes.

We use Stylelint for CSS linting, and ESLint for JavaScript linting with


We follow the SMACSS approach to categorisation, breaking CSS down into modular components.

We also follow the basic BEM naming pattern.

When combined with DRY (don’t repeat yourself) approach to CSS in general, this ensures the Drupal theme meets current coding standards.

We use some alternative terminology as these are used in Drupal already (e.g. blocks and modules). They map to the original as follows:

module = component
submodule = variant
theme = variant

# From BEM
block = component
modifier = variant

CSS Structure and Categorisation

We like to compile CSS files into separate components:

# Custom variables; included in all other files.

# Base styles; resets, element defaults, fonts, etc.

# Layouts and grid systems.

# Form fields.

# Components; independently styled components that can live anywhere in a layout.

Testing for accessibility

We regularly run our Drupal theme through Nightwatch Axe to make sure we aren’t creating any accessibility errors.

This will review the following (and more):


On top of all this, PreviousNext has developed it’s own design system, Mixtape. This allows us to re-use common design components across the sites we develop.

Mixtape provides:

JavaScript ESM

Our JavaScript builds have evolved to leverage ES6 modules/imports and code splitting with  Rollup.

Entry points from custom profiles, modules, and themes are consumed and outputted with common chunks into site wide libraries. You can read more about our approach in our post on  Performance improvements with Drupal 8 Libraries.

All JavaScript uses ES6 syntax, which is transpiled using Babel. This allows us to develop using modern JavaScript while still supporting older browsers. See Using ES6 in your Drupal Components.


Front-end development is constantly evolving, but as you can see, we can keep the front-end development of Drupal sites up to date using the latest tools and techniques.

Go to Source

Acro Media: Getting started with BigCommerce for Drupal | Acro Media

Acro Media’s own Chithra K has put together this handy, step-by-step guide to integrating your BigCommerce store with the Drupal CMS.

The BigCommerce for Drupal module, created by Acro Media in partnership with BigCommerce, was released early this year and brings together two different platforms – BigCommerce, the open SaaS ecommerce platform, and Drupal, the open source content management system. The result provides a wonderful new way for retailers to implement an innovative and content-rich headless ecommerce strategy. If you use one and would like to have the capabilities of the other, the BigCommerce for Drupal module is the bridge you need. With this module, you can use Drupal as the powerful front-end CMS with BigCommerce as the easy-to-use and scalable ecommerce backend.

This post is a step-by-step guide for people who want to know how to install the BigCommerce for Drupal module and get started with both platforms. If you just want to know more about BigCommerce and Drupal together as an ecommerce solution, check out this post instead.

How this module works

Here’s a quick overview of how this all works. The BigCommerce for Drupal module integrates BigCommerce and Drupal together, but each platform is still used for different tasks.

In BigCommerce, you configure products, categories, shipping, taxes and everything else for the ecommerce side of your site. BigCommerce is also where you go to manage orders as they come in.

Drupal is then used for the website frontend and themeing. Product and category information from BigCommerce are synced to Drupal, importing them as Drupal Commerce products so that they can be displayed and used like any other Drupal-based content. Any non-commerce content is also managed within Drupal. When a customer goes to checkout, a BigCommerce checkout pane is embedded in the Drupal site to securely process payment and save customer and order information.

Setup BigCommerce and Drupal

On to the guide! Follow these steps and you’ll have your BigCommerce and Drupal store configured in no time!


This guide already assumes that you have the following ready.

  1. A BigCommerce account and store created
    You will need to create a BigCommerce account with at least one product, shipping method and payment method configured in your BigCommerce store. Do this here, not in Drupal.

    NOTE: BigCommerce currently offers a 14-day trial period, so anyone can go and create and configure a store easily for free. For this demo, I signed up for that and created some random products to use for testing.

  2. A working Drupal 8 site
    You should have a Drupal 8 site with the Commerce module enabled and a default store added (via Commerce > Configuration > Store > Stores). You don’t need to do any other setup here yet or enable any of the other Commerce modules like checkout or payment. BigCommerce is going to handle all of this for you.
  3. An SSL certificate for your Drupal site
    Your Drupal website needs to have an SSL certificate active for the BigCommerce checkout form to render. This is required because it ensures security for your customers at checkout, so make sure you install one.

BigCommerce for Drupal setup guide

With the prerequisites done, here’s what you need to do to the BigCommerce for Drupal connection made.

Step 1: Create a BigCommerce API account

  1. Go to your BigCommerce store admin page and navigate to Advanced Settings > API Accounts.
  2. Click on the “Create API Account” button and select “Create V3/V2 API Token”.

    BigCommerce Store API Accounts page
    Fig: BigCommerce Store API Accounts page

  3. Provide a name (i.e. Product Sync) and select the scope for each feature (i.e. if you don’t want the ability for the Drupal admin to modify the product information, you can set the scope for “Products” as “read-only”).

    API configuration in BigCommerce
    Fig: API configuration in BigCommerce

  4. Click “Save” to save your changes. Once saved, you will see a summary and a prompt to download a file. Download it and keep it safe. Once you create an API account, you can’t modify the keys (but you can always make a new one).

    BigCommerce API Credentials dialog box
    Fig: BigCommerce API Credentials dialogue box

Step 2: Download and configure the BigCommerce for Drupal module

  1. Get and install the BigCommerce for Drupal module.

    TIP: This module requires a bunch of other modules to work. To get the BigCommerce for Drupal module and all of its dependencies at the same time it’s recommended to use Composer instead of manually downloading it. Running the following command within your Composer-based Drupal project will get everything you need.

    composer require drupal/bigcommerce
  2. In Drupal, navigate to the module configuration page at Commerce > Configuration > BigCommerce > BigCommerce Settings.
    1. Fill in the API Path, Client ID, Secret Key, and Access Token that you received when creating the BigCommerce API.
    2. Hit “Save”. If everything is correct, you will see a message saying “Connected Successfully”.

      BigCommerce Configuration page in Drupal
      Fig: BigCommerce Configuration page in Drupal site

  3. Next, we configure the Channel Settings. This will create a storefront URL for you in BigCommerce which will match the one that is generated on the Drupal side.
    1. Select “Add new channel” from the select channel list.
    2. Provide a channel name.
    3. Click the “Create new BigCommerce channel” button. You will then see a Site ID and Site URL on the setting page.

      BigCommerce configuration page in Drupal - Channel settings
      Fig: BigCommerce configuration page in Drupal

  4. Now in the same Channel Settings area, click on the “Update BigCommerce Site URL” button. This lets you confirm that the URL generated is actually sent to BigCommerce, otherwise, the checkout form will not be loaded on your Drupal site.

    You can also confirm the channel connection from within the BigCommerce admin dashboard by visiting the Channel Manager admin page.

    Channel Manager storefront confirmation in BigCommerce
    Fig: Channel Manager storefront confirmation in BigCommerce

Step 3: Sync products, variations and taxonomies from BigCommerce

  1. In Drupal, navigate to the product synchronization page at Commerce > Configuration > BigCommerce > BigCommerce Product Synchronization.
  2. Click the “Sync Products from BigCommerce” button and ta-da, all the products, variations, and categories will be synced to your Drupal site in an instant.
    Alternatively, you can also synchronize via the following Drush command. Advanced Drupal users can use this command on cron to do automatic syncing.
    drush migrate:import --group bigcommerce

    Product Synchronization page
    Fig: Product Synchronization page

    Fig: Syncing from BigCommerce in progress

    NOTE: If you run into errors when syncing products, it is probably because you don’t have a store added in the Drupal Commerce module yet. Add one at Commerce > Configuration > Store > Stores.

    TIP: Any time you make changes to the products in BigCommerce, visit this page or use the Drush command to synchronize the changes. Before syncing, you’ll also see a message telling you that updates are available.

  3. Confirm the products have synced by visiting the Product page for Drupal Commerce at Commerce > Products. A list of all of the products brought in from BigCommerce will appear here.

Step 4: See the BigCommerce checkout in action

  1. Now that everything is set up, go to a product page, and it to your cart and proceed to checkout.

    If everything was done correctly, you will be able to see the BigCommerce checkout form embedded into your Drupal site! Hurray! All of the shipping methods, payment methods, tax calculations, and other BigCommerce store configurations will be seen in the embedded form here.

    If you don’t see the checkout form make sure that your channels settings are correct and that you have an SSL certificate installed.

    Drupal’s checkout page with embedded BigCommerce checkout form
    Fig: Drupal’s checkout page with embedded BigCommerce checkout form

    Drupal’s checkout page after order complete
    Fig: Drupal’s checkout page after order complete

  2. Once an order has been placed, the order information will be stored in Drupal (at Commerce > Orders) and will also be sent to BigCommerce (at Orders > View).

    BigCommerce backend View Orders page
    Fig: BigCommerce backend View Orders page

Additional notes

The BigCommerce for Drupal module is ready for production and available for all to use. When writing this guide, there were some additional notes that I wanted to share.

  • At this time, product management should always be handled within BigCommerce and then synced to Drupal. Currently, there is no option to bring back a product if you delete it on the Drupal side, so be careful.
  • A development roadmap for the module can be found here. It outlines future features and plans.
  • If you use the module and find any bugs or want specific features, please add them to the module issue queue here.

Acro Media is a BigCommerce Agency Partner

Acro Media is the development team partnered with BigCommerce that made the BigCommerce for Drupal module a reality. We have many, many years of ecommerce consulting and development experience available to support your team too.

If you’re interested in exploring Drupal, BigCommerce or both for your online store, we’d love to talk.

See our BigCommerce for Drupal solutions

Editor’s note: This article was originally published on December 2, 2019, and has been updated for freshness, accuracy and comprehensiveness.

Go to Source

Specbee: How to export data from Views using Drupal’s Views Data Export module

How to export data from Views using Drupal’s Views Data Export module
Akshay Devadiga
21 Sep, 2021

Oftentimes, we may need to export huge amounts of data from views into files so that it can be used for analysis or administration by non-technical or technical users. Instead of creating a custom module for this, we can leverage the Views Data Export module which is available with a stable release for Drupal 7, 8 and 9 versions.

The Views data export module was designed to provide a way to export the large amount of data from views. It also provides a plugin for progressive batch operations which will improve your website’s performance.
Views Data

When would you need the Views Data Export Module?

You would use the Views Data Export module for Drupal 8 and Drupal 9 if you want to:

  • Migrate content for different Drupal instances using migrate tools.
  • Perform a feeds migration – which basically does the migration with zero coding but using migrate tools we need to have a custom module with the migration scripts according to the business logic.
  • Generate reports using site data to analyse day-to-day interactions with the website.

Installing the module

It would be best to download the Views Data Export module using composer since the module has a dependency on the CSV Serialization module and other libraries. When you use composer for the installation, the dependencies will be automatically handled.

$ composer require drupal/views_data_export

Demo DrupalNext, install the module as you would install any contributed module. Quickest way is to use the drush command line tool to install the module.

$ drush en -y views_data_export

This will install all the required dependent modules.

Let’s Set it Up

After enabling the module, in order to export the views we will first need to create the views and set up the export display with the necessary configurations. Check the detailed explanations for each step that you can follow:

1. Creation of the Views :

Create a master views display according to the requirements with the necessary fields and filters as needed. In our case, we have created the views for listing all the users in the site. Check image below for reference.
Users Export 

2. Creating the Export display :

After enabling the module we will get one more button to add the Data export display in the +Add attachment dropdown. Using this, add the display as data export it will create the new data export display by copying all the fields and filters from the master display.
Add Data Export


3. Data export display configurations :

Export display has various configurations that will help in creating the data export of the views in various formats. See the below image that displays all the configurations.
Data Export


4. Displaying the page with download button :

Once all the setup is done, save the view and visit the page. Now you will be able to see the download button in the footer region of the views which will download the data export with all the necessary filters if applied. 
CSV Users download

Are there any Limitations to this module?

Yes. One of them is that the Drupal 9 version does not support Excel/Xlsx format. Also, batch operations are fully supported only with MySQL databases.


Go to Source