Skip to main content

Drupal Planet

A cartoon dinosaur trying to plug two cords together but their arms are too short.

Drupal 9.4 installation with existing configuration fails because "unable to uninstall the MySQL module"!?

How to deal with the error "Unable to uninstall the MySQL module because: The module 'MySQL' is providing the database driver 'mysql'.."

Silhouettes of a people on soapboxes shouting through bullhorns at a crowd, demonstrating stand / deliver, a portable dueling free speech unit, a mobile box equipped with two platforms and megaphones.

Uniting Visions: Kicking off Thursday 3pm ET planning & building sessions for democratic conversation scaling platform, Visions Unite

Hi friends and collaborators, join us today at 3pm ET (or any subsequent Thursday at 3) as we kick off a series of research, planning, discussion, and building sessions for Visions Unite.

Laptop with lock icon.

Create and use a custom permission in your module

You can define your own permissions for the Drupal permissions page (/admin/people/permissions in modern Drupal, Drupal 8, 9, 10, and beyond) and then add conditional options to your code to do different things based on the role of the user and the permissions configured by a site administrator.  See how!

A drawing of a laptop with open tabs extending outside of the laptop as horizontally tiled windows.

Drupal toolbar not working in dev environments in Firefox? Here's why.

Drupal's toolbar not showing due to Uncaught DOMException quota has been exceeded may be due to sites sharing a top-level domain (default for some local development environments like DDEV) combined with a Firefox bug.

""

Upgrade from Drupal 6 or 7 when it is right for you: In the era of modern Drupal, release cycles of major versions have only minor importance

Drupal 7 has a much longer lifespan than the (already pushed back) official date, and Drupal 8 has an essentially infinite lifespan because it can update in-place to Drupal 9 easily and the same will be true of Drupal 10, 11, ∞. There's no reason to rush an upgrade— but there's no reason to wait either.

A plain two-edged razor blade (for a pun on double-edged raiser).

Double-edged Raiser: Past time to ditch Blackbaud

I have watched in sadness and sometimes anger as large non-profit after large non-profit collectively poured enough money into Raiser's Edge and other Blackbaud licenses and consulting services to fund massive feature enhancements for the main FLOSS alternative, CiviCRM— improvements which would then be free for everyone, forever.

A chart showing children's health outcomes.

Are you building communities of practice for community health in this time of public recognition of injustice?

The struggle to take seriously the impact of racism on public health during the covid-19 crisis spotlights the importance of health communities of practice and their need to have high-quality, data-driven discussions. How do we have and expand these conversations well?

List of configuration options for destination plugins

Drupal migrations reference: List of configuration options for destination plugins

In the previous article we provided a reference of available configuration options for migrate source plugins. In today’s article we are doing something similar for destination plugins. We will present a reference of available configuration options for migrate destination plugins provided by Drupal core and some contributed modules. Knowing which options are available might require some Drupal development knowledge. By providing this reference it should make the process of writing migrations easier.

List of configuration options for source plugins

Drupal migrations reference: List of configuration options for source plugins

In a previous article we explained the syntax used to write Drupal migration. We also provided references of subfields and content entities' properties including those provided by the Commerce module. This time we are going to list the configuration options of many migrate source plugins. For example, when importing from a JSON file you need to specify which data fetcher and parser to use. In the case of CSV migrations, the source plugin configuration changes depending on the presence of a headers row. Finding out which options are available might require some Drupal development knowledge.

Example migrations mapping of content entity properties

Drupal migrations reference: List of properties per content entity

In a previous article we explained the syntax used to write Drupal migrations. When migrating into content entities, these define several properties that can be included in the process section to populate their values. For example, when importing nodes you can specify the title, publication status, creation date, etc. In the case of users, you can set the username, password, timezone, etc. Finding out which properties are available for an entity might require some Drupal development knowledge.