drupal

Sluggish Drupal 8 Adoption Lags Even D6

We're just past the second anniversary of 8.0.0. To see how D8 is doing compared to prior releases, we put together the chart above, based on Drupal's usage stats page.

For versions 5.x, 6.x, and 7.x, each new release brought dramatically accelerated growth.

Comparatively, D8 has dropped off a cliff. Adoption is far below that of D7, and even behind D6.

Extending Drupal 8 Fields That Contain Data

The Exception

Data protection is one of the primary advantages of Drupal, but sometimes there are exceptions to the rule and you might need to modify a field to account for some change in business needs. There are a few rule bends (read hacks) that can be done to circumvent Drupal's checks and still maintain data integrity. You should only perform this when extending a field or changing something reasonable that is allowed by the database server. For example, expanding a varchar length or changing unformatted string into a formatted text field.

Search by Content Type in Drupal 8 - a custom module tutorial

Note: this code has been tested in Drupal 8.0 and 8.1

At the time of this writing, the Search API module is still in alpha phase. A note from the module maintainers warn that it is unstable. This blog post serves as a way to learn how to write a simple Drupal 8 module to modify Drupal 8's core search without using the Search API module.

Upgrading Drupal Media module to 7.x-2.x

I recently spent some time fighting against the Drupal Media and File Entity modules in order to upgrade them from version 7.x-1.x to 7.x-2.x. (To be specific, Media was upgraded from 7.x-1.4 to 7.x-2.0-beta1, and File Entity to 7.x-2.0-beta2). Through this post, I will share with you my trials and tribulations, with the hope that one day no one else will endure the pain and suffering that I have endured.

What I Learned Today: Check Your Default Google Analytics Settings

Google Analytics Module Settings

Drupal's Google Analytics Module is great. There are a few settings though that I recently found out you'll want to pay closer attention to. First is the "Pages" section of the configuration form, which allows you to only include/exclude Google Analytics tracking code on certain pages. The default settings are to exclude the code on the following pages.

Anatomy of a Drupalgeddon attack

Before working at Metal Toad, I saw an email from Acquia. A strange email.

It went something like this: 

On October 15th, we will be addressing a security concern at 9:00 am.

Hmm. That's interesting. I don't remember getting an email about security updates like this. As with any CMS, there are constant security updates as new (and sometimes exotic) vulnerabilities are found. 

Why Drupal 8 won't ship with REST content negotiation

Some friends on Twitter were alarmed by this Drupal change record: "Accept header based routing got replaced by a query parameter". This change replaces "Accept: application/hal_json" with "/node/1?_format=hal_json". The issues leading to this change are too lengthy to capture on Twitter, so I'll give my perspective here.

Drupal 7 Tutorial: Creating a Custom Entityqueue Handler

Entityqueue uses Ctools plugins for what we call an EntityQueueHandler. In this post we are going to see how to create a custom EntityQueueHandler. We will be looking at the Entityqueue Scheduler module as an example.

What is an EntityQueueHandler?

When you create a new Entityqueue, there is an option to select which handler to use.