A Case for Drupal Community Support in the Open Source World

Share this post

Community isn’t a word many think about when they consider software. But many software solutions like Drupal, WordPress, and Laravel have their own communities of a wide range of people. From those that help build to those that use. These communities form methods of communicating, reporting issues, fixing issues, and supporting other members of the communities.

CommonPlaces believes in Open Source communities and I wanted to share a real example from the Drupal Community. This is the story of a module called User CSV Import.



The Situation

While working on a Customer Experience Portal, a client asked if they could import users from Excel rather than manually type each one in. This seemed like a great request that would save them lots of time.


Does the widget already exist?

No one wants to reinvent the wheel. And time spent on re-creating the wheel is time not spent doing cool things.


We began searching and quickly found the Drupal module User CSV Import. A drupal module is a piece of code that can be added to Drupal to expand its functionality. In this case, the Users page now had a button that allowed importing a list of users via CSV. CommonPlaces didn’t make this module. Another member of the Drupal community did.


Testing the New Widget

CommonPlaces likes to test. So that’s what I did. And I found that the module did what we needed… BUT, there was a problem. I found that the import would create new users even if the email address was in use. This would cause a headache for the client with their thousands of incoming users.


Making the Widget Better

Drupal is Open Source code. So I looked at the module’s code and created a patch to not allow duplicate emails. A patch is a modification to the code that can be reviewed and eventually become part of the code. I shared that patch to the Drupal community so that others could also have this new feature.


CommonPlaces benefited from someone else’s hard work that created the “User CSV Import” module. CommonPlaces gave back to the same community with a new feature of that module. The client benefited from the low cost (time) to bring this feature into their Portal since CommonPlaces didn’t have to build it from scratch and was able to leverage code existing in the Drupal community.


Re-using the Widget

This was a useful module for Portals. CommonPlaces found ourselves using this module again and again to help clients.


Uh-oh, need to take over the widget.

There was an issue, though. The original creator of the module was no longer active in the community. Who would upkeep the module and manage the bug fixes? Who would update the module to be compatible with newer versions of Drupal? Well, the Drupal Community has guidelines for when this situation happens. I followed them and was granted access to maintain the module.


With CommonPlaces’ support, I updated the module to support more modern Drupals, applied bug fixes, and added new features.


Someone else helped expand the widget!

We even had a stranger online want a new feature added. They wanted an example CSV to be downloadable. Then the user could populate that downloaded CSV with user information and import it while knowing it was the correct format. A great feature! They provided a patch to show the code changes they wanted. As the module maintainer, I reviewed the code. After some back and forths, the code became part of the module. And the whole Drupal Community benefitted. 



The Drupal Community

When agencies and Drupal programmers help one other, we all benefit. We share solutions, expand features, fix bugs, and raise up the quality of the platform. To learn if partnering with CommonPlaces and the Drupal Community is right for you, contact us.

New call-to-action

Related Posts

Config Sync Overview

Config Sync Overview

When Drupal 8 was released, it came with Configuration Syncing functionality. This has been a staple ever since for Drupal 9, Drupal 10, and beyond. Configuration Syncing was a game changer and one of my favorite features in Drupal Core.The days before config sync...