Drupal 7 end of life is coming! Now is time to consider a Backdrop upgrade

2024-02-29 04:55
Written by
herbdool - member of the CiviCRM community - view blog guidelines

Drupal 7 had been around for more than a decade, but it will have its "end of life" January 2025. During the pandemic, 7 received a handful of extensions to give folks more time to upgrade, but it will receive no more. Within less than a year from now, your Drupal 7 site will stop receiving all updates and it will become a potential security risk. But even long-term support (LTS) will only support core and some of the more popular modules.

If you're a CiviCRM site owner, or helping someone who is, you should have some kind of plan in place to get off Drupal 7, if you don't already. Soon. Like many of the CiviCRM experts, we at Freeform Solutions have experience helping site owners plan their moves off Drupal 7, whether it be to Drupal 10, WordPress, Backdrop or something novel. You can also start paying for Drupal 7 End of Life Support, but that option will only maintain the status quo.

In this post I'll be focusing on Backdrop CMS with CiviCRM, and its upgrade path from Drupal 7. Most of you are likely already familiar with either Drupal 10 or WordPress. But first, let's talk about Drupal 7 + CiviCRM numbers.

There are still a lot of CiviCRM installations using Drupal 7

Drupal 7 still runs 43% of all CiviCRM sites

Unfortunately, there are still quite a few Drupal 7 sites running CiviCRM. About 43% based on recent stats (as of March 2024)! That's a ratio of 1.9 to 1 of Drupal 7 to Drupal 8+ (8,9,10) sites. Compare that to the stats for all Drupal sites: a ratio of 0.8 to 1 of Drupal 7 to Drupal 8+. It looks like, for whatever reason, organizations on Drupal 7 and CiviCRM are not even keeping up with the already slow pace of upgrades of all Drupal sites.

Why are organizations slow to upgrade?

There are a few possible reasons. Some sites are complicated. They have complicated interactions between the CiviCRM side and the Drupal side. Maybe the site is using Drupal 7 Views, Rules and a few custom "glue" modules to work with a special workflow. This makes it hard to untangle. And the equivalent modules are not available in Drupal 10 or WordPress. In our experience this can get expensive quickly. The migrations can take a long time; especially if the nonprofit relies on their being no significant downtime. Migrating to Drupal 10 may still be their end goal, but it ends up being quite a slog.

Or, a nonprofit cannot afford a major change, like moving to Drupal 10. The original site might have been built by a volunteer who can no longer support it. Some nonprofits will stop using CiviCRM altogether. Others will wait until something like CiviCRM Standalone is mature. Even others are not sure of what they'll do.

Maybe the site has just enough integration with Drupal 7 so as to make it difficult to switch to WordPress, but they don't have the budget for moving to Drupal 10. For these clients, I've found that Backdrop CMS can be a sweet spot.

I'll go over some of the reasons why one would choose Backdrop; what's different or similar to Drupal 7; and a brief overview on how to go about upgrading.

Why choose Backdrop CMS?

Backdrop has an active community of folks who are improving Backdrop CMS with a focus on affordability. Backdrop's mission is for small to medium-sized businesses, nonprofits and individuals who would like to build highly customized websites affordably. Backdrop continues making modern improvements but ensures that are backwards-compatible so as to make sure upgrades don't consume your budget. Backdrop focuses on making it easier to upgrade from Drupal 7, and not break your site when there are updates.

Backdrop receives regular releases of new features and bug fixes. It has a modern look and feel (unlike Drupal 7, which is really beginning to show its age). Backdrop is surprisingly nimble to use as a site builder. I've found it faster than Drupal 10. Backdrop folks also ensure it meets accessibility standards; stays up to date with new PHP versions and other libraries; that it look good on mobile; and gets security fixes and bug fixes quickly.

There are hundreds of contributed modules available for Backdrop. Many of them are ported from Drupal 7, and also some new ones only available for Backdrop.

Backdrop and CiviCRM work well together. As seen in the graphic above, there are over a hundred Backdrop sites using CiviCRM currently (as of March 2024). Backdrop's integration with CiviCRM is also actively maintained. And folks are adding new features to the integration with CiviCRM.

In our experience it is often easier to upgrade a Drupal 7 site to Backdrop CMS than to Drupal 10. Even if some modules need to be ported, those ports tend to be easier. Though we recommend understanding the complexity of your site, and your goals, first to see if it's a good candidate.

What's different?

One of the biggest differences of Backdrop to Drupal 7 is Layouts, though the new functionality is worth it. In Backdrop, Layouts help divide up the entire page into columns and regions. There is a drag and drop GUI that allows site builders to make flexible layouts for one or more types of pages. Layouts are agnostic to themes. And the Drupal 7 to Backdrop upgrade will convert most of the old regions and blocks to the equivalent layouts.

The default CiviCRM admin layout

Drupal, on the other hand, depends on themes for defining regions. It is not nearly as flexible, nor is it possible to create unique layouts from the web interface. People who used Drupal 7 may recognize some of Layouts from the Panels module. It is, in fact, related to Panels, but it has been integrated deeply into Backdrop whereas Panels was never able to completely replace Drupal's theme-based templates.

The Backdrop module for CiviCRM supports Layouts--it includes a CiviCRM administration layout--and provides some special blocks and CiviCRM contexts to check for access and visibility, such as URLs, and the checksum of the logged-in user (or if the checksum is passed via the URL).

A visibility condition on a layout block, displaying if a valid contact views the page.

What's the same?

Quite a bit! Views is in core but it is almost identical to the Drupal version. Your CiviCRM Views should probably just work. Likewise the link between users and contacts is the same. CiviCRM profiles and links to the contact dashboard can be displayed on user profiles.

Using Backdrop Views to display a list of members.

Webform CiviCRM is available in Backdrop and is equivalent to the Drupal 7 module. They both integrate with Backdrop's Webform module.

CiviCRM processing with Backdrop Webform.
The CiviCRM processing options for Backdrop Webform.

Like Drupal 7, rules can be set up in Backdrop to sync CiviCRM groups and CiviCRM membership types with user roles (for the contact that matches with the user). And there is a CiviCRM integration with the Rules module for Backdrop to provide even more actions and conditions.

CiviCRM Afform Block can be used to display forms created with CiviCRM FormBuilder in a Backdrop block in a layout.

Selecting a Form Builder form to display in a layout.

And there are more modules that help you integrate your CiviCRM data, such as integrating with Ubercart, or syncing CiviCRM groups with a Backdrop content type. And, finally, your custom modules may require only small tweaks to keep working, as most of the API is quite similar to Drupal 7.

How to upgrade to Backdrop

I recommend that the first thing you do is create a spreadsheet to map out the functionality and structure of your site; what functionality can be removed; what functionality is necessary; the modules; content types; Views; custom code; and the possible upgrade paths. You could use our starting example or create your own. Not every site is the same. This can help you decide if Backdrop would be a good candidate, or if something else would work better. Also check out the Drupal 7 Migration Resource Center for more help in making your decision.

If you'd like to try an upgrade to Backdrop, the following steps may prove to be useful:

Step 1: Read the Backdrop upgrade guide. The guide goes into much more detail on the upgrade process, though it doesn't cover CiviCRM integration.

Step 2: On your Drupal 7 site make sure all your modules have their latest updates.

Step 3: Uninstall and remove any modules which you no longer need. Don't make things harder for you than you need to; so don't try to upgrade those.

Step 4: Check to see which modules have Backdrop versions. Install the Backdrop Upgrade Status module on your Drupal 7 site to get a report. Even if there are modules with no current Backdrop version, don't despair. Often it is not too much work to port the module to Backdrop.

Step 5: Backup your database, files and code. It pays have that around so you can test the upgrade a few times with a fresh installation of your backups. Even better, use a development tool like Lando or DDEV on your local computer to make the upgrade process faster.

Step 6: Replace the old code base with Backdrop code base and the Backdrop modules you want to keep.

Step 7: Replace the CiviCRM module with the equivalent version packaged for Backdrop. The modules can be placed under /modules; they no longer have to be under sites/all/modules.

Step 8: Run the update script, either by going to the URL for your site (or development environment): https://MYSITE.org/updatedb.php or by using the command line tool: bee (equivalent to drush). This will run a lot of updates on the old Drupal 7 database.

If you're lucky they'll all go smoothly and you'll be able to log in and start configuring things the Backdrop way. If they don't you may need to figure out what is breaking. It can help to take away the offending module code and rerun the update (you may need to reimport the backup Drupal 7 database).

Reach out to an expert in Backdrop and CiviCRM if you get stuck! There is a Backdrop channel on the CiviCRM chat. Or you can ask in the main Backdrop chat. I loiter in both chats. And don't forget to consult the Backdrop guide for more specific Backdrop guidance.

In the end, regardless of the platform that someone is moving to, it's important to move off of Drupal 7. So reach out to a CiviCRM expert to learn more about your options.

Filed under