Blog: The most important thing in an agency partnership

Planet Drupal - Tue, 2020/03/31 - 1:23pm

In this post, we'll discuss the most important element to an agency partnership: communication. We'll explain why it's so essential, provide examples of good and bad communication practices, and finish with some tips for more effective communication with partners.


Specbee: How to create a Custom Drupal 8 Theme in 9 Simple Steps

Planet Drupal - Tue, 2020/03/31 - 1:06pm
How to create a Custom Drupal 8 Theme in 9 Simple Steps Neslee Canil Pinto 31 Mar, 2020 Top 10 best practices for designing a perfect UX for your mobile app

Drupal 8 gives developers and site owners the flexibility of creating bespoke components that can be put together to build compelling digital experiences. Themes are Drupal’s design blocks that represent the visual appearance of a website. Drupal 8 comes with choices of core themes and third-party themes. However, if none of them cut it for you, you should probably be looking at Drupal 8 custom theme development. With Drupal 8 custom themes, you can tailor-fit your design to the exact requirements.

Drupal 8 provides Bartik as the frontend theme, but if you need a Drupal 8 custom theme then you can create your own Drupal 8 theme development, thus improving your Drupal theming skills. The easiest way to really understand Drupal 8 theme development is to practice and create one from the ground up.

Getting Started with Custom Drupal 8 Theme Development

Let’s get started with creating a Drupal 8 custom theme for our Drupal website.
STEP 1 : First, we need to create a custom theme under ‘web/themes/custom’ folder. We will name the folder as custom_theme.  

      Create Custom Drupal 8 Theme folder

STEP 2 :Next, we will need to create an info.yml file. We need to specify the basic keys for it. Let us specify it over here.

       Create an info.yml file CODE: name: Custom Theme type: theme description: 'Custom Theme for My Website.' package: Other core: 8.x

STEP 3 : Now,let’s create alibraries.yml file to specify all the libraries we need (CSS AND JS) for our custom Drupal 8 theme.We will also create CSS and JS directory and its files to link it in here. We are going to name the library as global-styling.

       Create a libraries.yml file CODE: global-styling: version: 1.x js: js/script.js: {} css: theme: css/style.css: {}

STEP 4 : After creating the libraries.yml file, we need to link it to our theme.For this, we are going to add it in the info.yml file which will then apply it to the whole theme. 

        Linking the libraries.yml with the custom Drupal 8 theme CODE: libraries: - custom_theme/global-styling

So, the key will be libraries and path will be the theme name - ‘custom_theme’ / library name - ‘global-styling’.

STEP 5 : Next, we need to inherit the ‘Base Theme’.In our case, we will inherit ‘classy’ theme which is a Drupal core theme. So, the key will be base theme in info.yml. 

        Inheriting the Base theme - classy CODE: base theme: classy

STEP 6 : Now, we will define the‘regions’ for our theme. In info.yml, we have to define under the ‘regions’ key.

         Defining 'regions' CODE: regions: branding: Branding navigation: Main navigation search: Search featured: Featured content: Content right_sidebar: Right sidebar footer_first: Footer First footer_second: Footer Second footer_third: Footer Third footer_bottom: Footer Bottom

Under ‘regions’ key you can define your regions for the custom theme. Here,
branding: Is the id of the region which should be lowercase letter.
Branding: Is the name of the region which can be Uppercase letter.

STEP 7 : After we have defined our regions for our custom theme, we need to override page.html.twig to grab our ‘regions’instead ofthe classy theme’s. We will create templates/system directory under which we will create the page.html.twig.

       Override the page.html.twig CODE: <header aria-label="Site header" class="header" id="header" role="banner"> {{ page.branding }} {{ page.navigation }} {{ }} header> <section class="featured" id="featured" role="complementary"> {{ page.featured }} section> <section class="main" id="main"> <main aria-label="Site main content" class="content" id="content" role="main"> {{ page.content }} main> <aside class="right--sidebar" id="sidebar" role="complementary"> {{ page.right_sidebar }} aside> section> <footer aria-label="Site footer" class="footer" id="footer" role="contentinfo"> <div class="footer--top"> {{ page.footer_first }} {{ page.footer_second }} {{ page.footer_third }} div> <div class="footer--bottom"> {{ page.footer_bottom }} div> footer>

 In page.html.twig, we will create html structure for our regions. As you see in{{ page.branding }} –Here,

page - Is the key to render ‘regions’ in the page

branding- Is the region which we have defined in info.yml file.

So now, we have created our regions and rendered it in the page, now let’s start.

Step 8 : Go to Appearance in your Drupal site.You can see your custom theme present in the Uninstalled themes section.

        Uninstalled Themes Section

You need to click ‘Install and set as default’ option to install your theme in the site.

After it is installed,go to Structure -> Block Layout.Your Custom Theme will appear under the Block Layout.


You will see a link for ‘Demonstrate block regions (Custom Theme)’.Click on the link.You can see all the regions that you had declared in theinfo.yml and added in page.html.twig

       Regions added in info.yml and page.html.twig

Step 9 :Now, you need to apply styles in the CSS for each region as per your design.We will use cssin this case;You can even use SCSSif you’d like. Just inspect the branding region - you shouldsee the region class and then add the CSS to that class. 


Add CSS in style.css as per your requirement.

.header{ display: flex; justify-content: space-between; padding: 10px; }

.header.region { padding: 5px; }

.header.region-branding { flex: 0 1 20%; }

.header.region-navigation { flex: 0 1 50%; }

.header.region-search { flex: 0 1 30%; }

.region.block-region { padding: 15px; }

.featured{ padding: 40px 20px; background-color: indianred; }

.main{ padding: 50px 0; display: flex; justify-content: space-between; }

.main.content { flex: 0 1 65%; }

.main.right--sidebar { flex: 0 1 30%; }

.footer--top { display: flex; justify-content: space-between; padding: 10px; }

.footer--top .region { padding: 5px; }

.region-footer-first, .region-footer-second, .region-footer-third { flex: 0 1 30%; }


The Result: Your Drupal 8 Custom Theme is ready!


If you need to write any hooks or create suggestions for your twig file, you could add the .theme file in your custom theme (shown below).

      Adding the .theme file

Custom theme development gives you freedom to design themes that are bespoke to an organization. Here’s hoping this brief guide helps you get started with developing Drupal 8 custom themes for your future projects. Looking for expert Drupal developers to help you build unique custom Drupal themes for your next Drupal 8 website? Contact us now.

Drupal Planet Shefali ShettyApr 05, 2017 Subscribe For Our Newsletter And Stay Updated Subscribe

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image How to create a Custom Drupal 8 Theme in 9 Simple Steps Image How to Create a Covid-19 Response Announcement on your Drupal 8 website Image A Peek into the UI/UX Universe (with examples) Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Know more about our technology driven approach to recreate the content management workflow for [24]


Find out how we transformed the digital image of world’s largest healthcare provider, an attribute that defined their global presence in the medical world.


Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.


Srijan Technologies: Drupal 9 is Backward Compatible - Why Should You Care?

Planet Drupal - Tue, 2020/03/31 - 8:26am

As Drupal 9 release has already become a buzzword in the Drupal community, people have been anticipating its new features since long alongside the after-effects of end of lives for Drupal 7 & 8 in 2021.


clemens-tolboom pushed to master in KennisnetwerkDataScience/Wifi-punten-in-Leeuwarden

On github - Mon, 2020/03/30 - 10:25pm
clemens-tolboom pushed to master in KennisnetwerkDataScience/Wifi-punten-in-Leeuwarden Mar 30, 2020 2 commits to master
  • 77b3899 Merge pull request #10 from KennisnetwerkDataScience/dependabot/pip/G…
  • 803b732 Bump bleach from 3.1.1 to 3.1.4 in /Groep 5

clemens-tolboom merged a pull request in KennisnetwerkDataScience/Wifi-punten-in-Leeuwarden

On github - Mon, 2020/03/30 - 10:25pm
clemens-tolboom merged a pull request in KennisnetwerkDataScience/Wifi-punten-in-Leeuwarden Mar 30, 2020 Bump bleach from 3.1.1 to 3.1.4 in /Groep 5 #10

Bumps bleach from 3.1.1 to 3.1.4. Changelog Sourced from bleach's changelog. Version 3.1.4 (March 24th, 2020) Security fixes bleach.clean behav…

+1 -1

Kalamuna Blog: Web Design for Disaster - Part 1: Alert Your Users

Planet Drupal - Mon, 2020/03/30 - 7:26pm
Web Design for Disaster - Part 1: Alert Your Users Mike McCaffrey Mon, 03/30/2020 - 10:26

As the world navigates through a public health crisis, and everyone is forced to respond to unprecedented conditions, it is a good time to evaluate how well your website is working to communicate urgent information to your stakeholders, and how it might be improved going forward. 

The designers and developers at Kalamuna have helped many organizations prepare and respond to emergency situations, and in this series of posts, we are going to share the lessons we have learned and the best practices we are now recommending to our clients.

Categories Articles Community Drupal Guidance Responsive Design Security Author Mike McCaffrey

Web Omelette: Automated testing in Drupal 8

Planet Drupal - Mon, 2020/03/30 - 4:07pm

This is an excerpt from my book: Drupal 8 module development - second edition. Do check out the rest of the book/chapter to see how you can write automated tests in Drupal 8.

Automated testing is a process by which we rely on special software to continuously run pre-defined tests that verify the integrity of our application. To this end, automated tests are a collection of steps that cover the functionality of an application and compare triggered outcomes to expected ones.

Manual testing is a great way to ensure that a piece of written functionality works as expected. The main problem encountered by most adopters of this strategy, especially those who use it exclusively, is regression. Once a piece of functionality is tested, the only way they can guarantee regressions (or bugs) were not introduced by another piece of functionality is by retesting it. And as the application grows, this becomes impossible to handle. This is where automated tests come in.

Automated testing uses special software that has an API that allows us to automate the steps involved in testing the functionality. This means that we can rely on machines to run these tests as many times as we want, and the only thing stopping us from having a fully-working application is the lack of proper test coverage with well-defined tests.

There's a lot of different software available for performing such tests and it's usually geared toward specific types of testing. For example, Behat is a powerful PHP-based open source behavior testing framework that allows the scripting of tests that mirror quite closely what a manual tester would do—interact with the application through the browser and test its behavior. There are other testing frameworks that go much lower in the level of their testing target. For example, the PHP industry standard tool, PHPUnit, is widely used for performing unit tests. This type of testing focuses on the actual code at the lowest possible level; it tests that class methods work properly by verifying their output after providing them with different input. A strong argument in favor of this kind of testing is that it encourages better code architecture, which can be (partly) measured by the ease with which unit testing can be written for it.

We also have functional or integration tests which fall somewhere in between the two examples. These go higher than code level and enlist application subsystems in order to test more comprehensive sets of functionality, without necessarily considering browser behavior and user interaction.

It is not difficult to agree that a well-tested application features a combination of the different testing methodologies. For example, testing the individual architectural units of an application does not guarantee that the entire subsystem works, just as testing only the subsystem does not guarantee that its individual components will work properly under all circumstances. Also, the same is true for certain subsystems that depend on user interaction—these require test coverage as well.

Testing methodologies in Drupal 8

Like many other development aspects, automated testing has been greatly improved in Drupal 8. In the previous version, the testing framework was a custom one built specifically for testing Drupal applications—Simpletest. Its main testing capability focused on functional testing with a strong emphasis on user interaction with a pseudo-browser. However, it was quite strong and allowed a wide range of functionality to be tested.

Drupal 8 development started with Simpletest as well. However, with the adoption of PHPUnit, Drupal is moving away from it and is in the process of deprecating it. To replace it, there is a host of different types of tests—all run by PHPUnit—that can cover more testing methodologies. So let's see what these are.

Drupal 8 comes with the following types of testing:

  • Simpletest: exists for legacy reasons but no longer used to create new tests. This will be removed in Drupal 9.
  • Unit: low-level class testing with minimal dependencies (usually mocked).
  • Kernel: functional testing with the kernel bootstrapped, access to the database and only a few loaded modules.
  • Functional: functional testing with a bootstrapped Drupal instance, a few installed modules and using a Mink-based browser emulator (Goutte driver).
  • FunctionalJavaScript: functional testing like the previous, using the Selenium driver for Mink that allows for testing JavaScript powered functionality.

Apart from Simpletest, all of these test suites are built on top of PHPUnit and are, consequently, run by it. Based on the namespace the test classes reside in, as well as the directory placement, Drupal can discover these tests and know what type they are.


Drupal 8 uses PHPUnit as the testing framework for all types of tests. In this section, we will see how we can work with it to run tests.

On your development environment (or wherever you want to run the tests), make sure you have the composer dependencies installed with the --dev flag. This will include PHPUnit. Keep in mind not to ever do this on your production environment as you can compromise the security of your application.

Although Drupal has a UI for running tests, PHPUnit is not well integrated with this. So, it's recommended that we run them using the command line instead. Actually, it's very easy to do so. To run the entire test suite (of a certain type), we have to navigate to the Drupal core folder:

cd core

And run the following command:

../vendor/bin/phpunit --testsuite=unit

This command goes back a folder through the vendor directory and uses the installed phpunit executable (make sure the command finds its way to the vendor folder in your installation). As an option, in the previous example, we specified that we only want to run unit tests. Omitting that would run all types of tests. However, for most of the others, there will be some configuration needed, as we will see in the respective sections.

If we want to run a specific test, we can pass it as an argument to the phpunit command (the path to the file):

../vendor/bin/phpunit tests/Drupal/Tests/Core/Routing/UrlGeneratorTest.php

In this example, we run a Drupal core test that tests the UrlGenerator class.

Alternatively, we can run multiple tests that belong to the same group (we will see how tests are added to a group soon):

../vendor/bin/phpunit --group=Routing

This runs all the tests from the Routing group which actually contains the UrlGeneratorTest we saw earlier. We can run tests from multiple groups if we separate them by a comma.

Also, to check what the available groups are, we can run the following command:

../vendor/bin/phpunit --list-groups

This will list all the groups that have been registered with PHPUnit.

Finally, we can also run a specific method found inside a test by using the --filter argument:

../vendor/bin/phpunit --filter=testAliasGenerationUsingInterfaceConstants

This is one of the test methods from the same UrlGeneratorTest we saw before and is the only one that would run.

Registering tests

There are certain commonalities between the various test suite types regarding what we need to do in order for Drupal (and PHPUnit) to be able to discover and run them.

First, we have the directory placement where the test classes should go in. The pattern is this: tests/src/suite_type, where suite_type is a name of the test suite type this test should be. And it can be one of the following:

  • Unit
  • Kernel
  • Functional
  • FunctionalJavascript

So, for example, unit tests would go inside the tests/src/Unit folder of our module. Second, the test classes need to respect a namespace structure as well:

namespace Drupal\Tests\[module_name]\[suite_type]

This is also pretty straightforward to understand.

Third, there is a certain metadata that we need to have in the test class PHPDoc. Every class must have a summary line describing what the test class is for. Only classes that use the @coversDefaultClass attribute can omit the summary line. Moreover, all test classes must have the @group PHPDoc annotation indicating the group they are part of. This is how PHPUnit can run tests that belong to certain groups only.

So now that we know how to register and run tests, let's order the book and start by looking at unit tests first.


Droptica: How to find and hire the best Drupal agency

Planet Drupal - Mon, 2020/03/30 - 11:41am
There are almost a million websites built on Drupal. The websites built on Drupal are growing ever bigger. In fact, Drupal is the main CMS contender if you want to build a big website and don't want to use expensive proprietary platforms. Website generators, headless CMSes and Digital Experience Platforms architected by massive corporations, all are built on Drupal. Drupal, however, is a complex framework.

DrupalEasy: DrupalEasy Podcast 227 - Pivoting to Virtual Midcamp with Avi Schwab

Planet Drupal - Mon, 2020/03/30 - 4:23am

Direct .mp3 file download.

Mike speaks with Avi Schwab, one of the organizers of MidCamp, on how the organizing team quickly shifted from an in-person camp to a virtual camp. In addition, Chris Weber also has three new change records for us.

URLs mentioned DrupalEasy News Sponsors Subscribe

Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher.

If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.


Droptica: Drupal Agency Working Remotely

Planet Drupal - Fri, 2020/03/27 - 1:04pm
More and more software development companies (and not only those) start to move to a remote work setup. On one hand, it is the mark of current times, on the other - a result of recent global changes. The Covid19 pandemic is just a catalyst of the changes. It is also a test of how well the companies are prepared for the new situation. Remote work setup is something completely different to companies for which it was always part of the culture and something else for those who suddenly have to redefine all their working habits.  

Srijan Technologies: Managing Multi-Site Configurations in Drupal 8 Part II

Planet Drupal - Fri, 2020/03/27 - 10:51am

In the previous blog, “Know-How To Manage Multi-Site Configurations in Drupal 8” (link of the same), we learned about managing configurations across multiple sites and acquiring features from the common core platform. 


Srijan Technologies: How to Prepare a Business For Migrating to Drupal

Planet Drupal - Fri, 2020/03/27 - 8:48am

With modern software, it's easier than ever to build a website, load it with content, and maintain it. Software packages are more secure, much faster, and more user-friendly than they were just a decade ago!


Tandem's Drupal Blog: There and Back Again

Planet Drupal - Fri, 2020/03/27 - 1:00am
March 27, 2020 NERD Summit, Amherst, MA to MidCamp, Chicago, IL and back again virtual events in the covid-19 era. Covid-19 In the wake of the covid-19 world pandemic the NERD Summit and MidCamp both decided to go virtual in 2020. This in turn led me to a heretofore inconceivable possibility; to attend BOTH NERD Summit and MidCamp! Coffee I star...

Drupal blog: Get involved: Participate in the beta test process for Drupal 9

Planet Drupal - Thu, 2020/03/26 - 11:48pm

Drupal 9.0.0-beta1 has been released, and we are expanding the scope of our beta testing program for minor releases of Drupal core, to include this major release as well.

We need help testing the following upgrade paths:

Agencies and other organizations who are supporting ambitious Drupal 8 sites are invited to be part of the beta testing program. By participating, you can help core maintainers by following the guidelines of the Beta Testing Program to install the beta core release on real-world examples of Drupal websites, in their staging environments. Beta testers can then provide feedback to the core maintainers about any issues they see running the beta core release in a structured way.

Being part of the Beta Testing Program is a key contribution to the Drupal project and also helps organizations to be very aware of any changes relevant to their supported websites.

Would your organization, and the Drupal project, benefit from participating in the Beta Testing Program? We'd like to get as many organizations involved as possible, so we can have a robust test of Drupal 9 before the release date. 

You can apply to join here:

Apply to participate in the program

Who should apply?

Agencies and site owners who maintain large and complex Drupal 8 production sites. In particular, sites that use a wide range of contributed and custom modules or have large volumes of content.

How can I get ready? 

To prepare for testing these upgrade paths, the best thing to do is to install and run the Upgrade Status module. This module will tell you which of your installed modules are already ready for Drupal 9. You can also check your custom code using the Drupal Check command line tool, and even generate fixes for common incompatibilities using Drupal Rector

How will participants benefit from contributing in this way?
  • All organizations and individuals taking part in the testing will receive contribution credit for both testing the update and fixing any issues that arise.
  • Updating early helps find issues beforehand, rather than after the release is out.
  • Reporting issues encountered lets you tap the wealth of experience of the Drupal core contributors that you'd not have the same level of access to if you update on your own after the release.
  • You'll have satisfaction in the knowledge that you helped shape the next major release of Drupal core.

Kalamuna Blog: How to work from home: Top tips from our remote team

Planet Drupal - Thu, 2020/03/26 - 10:17pm
How to work from home: Top tips from our remote team Patricia Rodriguez Thu, 03/26/2020 - 14:17

Working from home (aka telecommuting) can be great for productivity and employee happiness. But not everyone is used to it – or prepared to do it (and many have been forced to recently because of COVID-19). At Kalamuna, we work on a distributed team, which means that most of us already work from home – and some of us are also used to setting up temporary workstations while travelling. It’s not always easy (or ideal), but a few small adjustments can make a big difference. Here are some of our team’s top tips for working effectively from the homefront.

Categories Community Fun Guidance Project Management Responsive Design Author Patricia Rodriguez

Redfin Solutions: Support the Drupal Association During Uncertain Times

Planet Drupal - Thu, 2020/03/26 - 3:59pm
The Drupal Association faces a lot of uncertainty regarding DrupalCon Minneapolis due to the COVID-19 pandemic. As one of the community-elected members of the Drupal Association Board of Directors, I am reaching out to the Drupal community for your support. So how can you and the rest of the Drupal Community help?

clemens-tolboom commented on issue obsproject/obs-studio#2565

On github - Thu, 2020/03/26 - 3:17pm
clemens-tolboom commented on issue obsproject/obs-studio#2565 Mar 26, 2020 clemens-tolboom commented Mar 26, 2020

@OBSPlus thanks for your reply. Now we have a discussion :-) It would be great to have a banner on your site making clear and linking to the offici…

Specbee: How to Create a Covid-19 Response Announcement on your Drupal 8 website

Planet Drupal - Thu, 2020/03/26 - 12:24pm
How to Create a Covid-19 Response Announcement on your Drupal 8 website Akshay Devadiga 26 Mar, 2020 Top 10 best practices for designing a perfect UX for your mobile app

The Covid-19 pandemic has shaken the entire world. The future seems uncertain and things aren’t going the way as planned. Yet, businesses must hang in there and assure their users on what they should expect from them. We have helped some of our clients create banner announcements on their Drupal websites to let their customers know –

  • They are still operational 
  • Their working hours
  • How they can help better in these uncertain conditions
  • Precautionary actions that are underway
  • Restrictions on available services
     Great Southern Homes' Covid-19 Response Announcement

Of course, these announcement banners can be leveraged for any kind of informational messages that need to be displayed for a certain period of time. Let’s take you through this in two different ways. One is by creating a custom pop-up for announcements using Bootstrap modal in Drupal 8. This method offers more flexible customizations and detailing. The other option is a simpler one using the Drupal 8 Site Alert module.

Creating a custom pop-up for announcements using Bootstrap modal In Drupal 8

For a fully customized announcement banner with a decent theming, editable announcement based on the user’s selection, we can go with this option. Showing banners to the visitors depends on the selection made in the configuration form.

Step 1: Since we are building a custom announcement banner, we need to have a custom module as every feature in Drupal is a module. Build the custom module according to these instructions

Step 2: Also, the announcement needs to be configurable. We need to create an editable configuration form with required field. Follow these instructions to create configuration forms.  

Step 3: Create a plugin block for fetching the configuration form values in a custom module. Follow these instructions to create the custom block. All the validations and access should be handled within the plugin block. We will need to attach the configuration value to Javascript to build a modal pop-up in JS.

Step 4: Create a libraries.yml for defining the libraries for displaying the modal popup using bootstrap. Also Write a Javascript logic to render the announcement data into the modal. Follow these instructions to add JS to the Drupal 8 module. 

Step 5: Create a menu link for easy navigation in the custom module according to these instructions

Step 6: Place the created block in a region for the configurations provided in custom configuration form.

Now you should be able to see the pop-up in the region for the specified path based on the configuration selection.

   Custom pop-up for announcements using Bootstrap modal In Drupal 8Creating site announcement banners using the Site Alert Drupal module

This Drupal module has been around since Drupal 7. The Site Alert Drupal module is lightweight and simple which lets you create a site-wide informational message. It allows you to specify a start date and expiration date, severity of the alert message that is symbolized by the background color of the announcement and the content. 

Setup –

1.Enable the Site Alert module

Configuration->System->Manage Site Alerts in path

 2.Create the announcement/alert


3. Place and configure the Site alert block from block layout according to your requirements

Structure -> blocks
              Image source -


                                 Site Alert


We hope this information helps developers and site owners in keeping their customers informed on the changes that Covid-19 has brought about to their business operations. 

Drupal Planet Shefali ShettyApr 05, 2017 Subscribe For Our Newsletter And Stay Updated Subscribe

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image How to Create a Covid-19 Response Announcement on your Drupal 8 website Image A Peek into the UI/UX Universe (with examples) Image Drupal 8 Custom Modules – Creating efficient Drupal 8 modules with these best practices Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Know more about our technology driven approach to recreate the content management workflow for [24]


Find out how we transformed the digital image of world’s largest healthcare provider, an attribute that defined their global presence in the medical world.


Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.

Categories: Drupal website accessibility in review: key features & useful modules

Planet Drupal - Thu, 2020/03/26 - 12:23pm
Thinking about how to make a website accessible, you need to know that some CMSs are accessibility-focused from the start. We mean Drupal, and we invite you on a tour of its built-in accessibility features and add-on accessibility modules.

Dries Buytaert: Sustaining the Drupal Association in uncertain times

Planet Drupal - Wed, 2020/03/25 - 11:21pm

Today, I'm asking for your financial support for the Drupal Association. As we all know, we are living in unprecedented times, and the Drupal Association needs our help. With DrupalCon being postponed or potentially canceled, there will be a significant financial impact on our beloved non-profit.

Over the past twenty years, the Drupal project has weathered many storms, including financial crises. Every time, Drupal has come out stronger. As I wrote last week, I'm confident that Drupal and Open Source will weather the current storm as well.

While the future for Drupal and Open Source is in no doubt, the picture is not as clear for the Drupal Association.

Thirteen years ago, six years after I started Drupal, the Drupal Association was formed. As an Open Source non-profit, the Drupal Association's mission was to help grow and sustain the Drupal community. It still has that same mission today. The Drupal Association plays a critical role in Drupal's success: it manages, hosts Open Source collaboration tools, and brings the community together at events around the world.

The Drupal Association's biggest challenge in the current crisis is to figure out what to do about DrupalCon Minneapolis. The Coronavirus pandemic has caused the Drupal Association to postpone or perhaps even cancel DrupalCon Minneapolis.

With over 3,000 attendees, DrupalCon is not only the Drupal community's main event — it's also the most important financial lever to support the Drupal Association and the staff, services, and infrastructure they provide to the Drupal project. Despite efforts to diversify its revenue model, the Drupal Association remains highly dependent on DrupalCon.

No matter what happens with DrupalCon, there will be a significant financial impact to the Drupal Association. The Drupal Association is now in a position where it needs to find between $400,000 and $1.1 million USD depending on which scenario we are forced into.

In these trying times, the best of Drupal's worldwide community is already shining through. Some organizations and individuals proactively informed the Drupal Association that they could keep their sponsorship dollars or ticket price whether or not DrupalCon North America happens this year: Lullabot, Centarro, FFW,, Amazee Group and Contegix have come forward to pledge that they will not request a refund of their DrupalCon Minneapolis sponsorship, even if it will be cancelled. Acquia, my company, has joined in this campaign as well, and will not request a refund of its DrupalCon sponsorship either.

These are great examples of forward-thinking leadership and action, and is what makes our community so special. Not only do these long-time Drupal Association sponsors understand that the entire Drupal project benefits from the resources the Drupal Association provides for us — they also anticipated the financial needs the Drupal Association is working hard to understand, model and mitigate.

In order to preserve the Drupal Association, not just DrupalCon, more financial help is needed:

  • Consider making a donation to the Drupal Association.
  • Other DrupalCon sponsors can consider this year's sponsorship as a donation and not seek a refund should the event be cancelled, postponed or changed.
  • Individuals can consider becoming a member, increasing their membership level, or submitting an additional donation.

I encourage everyone in the Drupal community, including our large enterprise users, to come together and find creative ways to help the Drupal Association and each other. All contributions are highly valued.

The Drupal Association is not alone. This pandemic has wreaked havoc not only on other technology conferences, but on many organizations' fundamental ability to host conferences at all moving forward. Just this week, we learned that there will be no future O'Reilly conferences, including OSCON. For the many of us who attended OSCON in the past, this truly is the end of an era.

I want to thank all donors, contributors, volunteers, the Drupal Association staff, and the Drupal Association Board of Directors for helping us work through this. It takes commitment, leadership and courage to weather any storm, especially a storm of the current magnitude. Thank you!